(8 replies, posted in Circuit Bending)

That’s a nice looking setup!


(8 replies, posted in Circuit Bending)

Aha I see, sounds good then! Looking forward to see (and hear) the results smile


(8 replies, posted in Circuit Bending)

Maybe I misunderstood something but shouldn’t you put the Arduinoboy at the ”5din” place in your picture, or was that how you meant?

The MIDI clock signal (24ppqn) is not compatible with the GB link clock pin (toggles at up to 500khz I think).


(8 replies, posted in Circuit Bending)

Get one of those green link cables which has both DMG and pocket size connectors on each end (4 connectors in total). Then you can modify the cable instead of your DMG.

I have synced 3xLSDJ this way.


(325 replies, posted in Nintendo Handhelds)

Maybe a long shot, but make sure you use a GBP/GBC link cable and not GBA. The pins are in the wrong order on GBA cables.


(0 replies, posted in Releases)

I'm happy to share my new album with you. It's all created with LSDJ, last track uses MIDI out mode via an Arduinoboy. Enjoy!

Bandcamp: https://lunarizer.bandcamp.com/album/lunarium
SoundCloud: https://soundcloud.com/lunarizer/sets/lunarium
Spotify: https://open.spotify.com/album/3B4EfAWM … l_branch=1

PriMieon: I did like this on a 32 pin GBA: soldered the positive capacitor leg to the power switch pin with a C above it and the negative to the ground pad to the right next to the switch.

I guessed which holes to use (close to the ones on the 40 pin instructions) and traced them to the power switch with a multimeter. Not 100% sure it’s correct but it reduced the noise a bit I think. If this is wrong please let me know, see it as an experiment for now smile.

Here is another method that I think seems better, haven’t tried it though. https://support.retrosix.co.uk/support/ … -gba-audio

PriMieon wrote:

Since 32 pin and 40 pin GBAs are different does anyone know what holes to use with the 32 pin board? I included a pic of the boards. Upper one of 40, lower one is 32.


(5 replies, posted in General Discussion)

Check out Hypnogram:

herr_prof wrote:

would it be possible if you marked the last two zero, it works as a full range cc command with just one value?

Yes, I think that’s possible. If you want to disable the last two custom functions, change these lines like the comment says:

// Only 0-6 can be used. Set to 7 or greater to turn off a function and free up a CC.
#define VELOCITY_CC 3
#define TEMPO_CC 4
#define CHORD_CC 5
#define CHANNEL_CC 6

If you set CHORD_CC and CHANNEL_CC to greater than 7, these custom functions will be unavailable and the LSDJ commands X5_ and X6_ will send CC as usual. The CC# are configured in the midiCcNumbers list.

By default the CC values span the whole range 0-127 in steps of 8. So for your needs, send a value greater than 64 to enable, and less than 64 to disable something. E.g. X59=enable, X57=disable.

cyberic wrote:

@ledfyr I have a question: if I buy a teensyboy from Catskull, do you know if it will be able to send data to the GB too (using the USB port)?
I know I will have to code this, but I am asking if the hardware is supporting this

I’m sure the Teensyboy/Arduinoboy hardware supports simultaneous MIDI in/out.

LSDJ MIDI out mode doesn’t read any note input currently. It only sends out notes, CC etc.
Maybe the LSDJ rom can be changed to support simultaneous MIDI note in and output, but I think the performance won’t be any good (I suspect the Gameboy CPU will choke).

Did I understand your use case correctly?

toasterpastries wrote:

Can you elaborate on what the values in this line are? Are these the MIDI CCs that are sent if a custom function (e.g. tempo, chord) is disabled?

byte midiCcNumbers[7] = {1, 2, 3, 7, 10, 11, 12};

The values in that list are the MIDI CC numbers sent when you use the X command in LSDJ.
The four last ones cannot be used since they are overridden by my custom functions (velocity, clock, chords, channel).
The rest (1, 2, 3) can be used to send CC from LSDJ. You can change them if you want other CC numbers.
The second digit in the X command is the scaled CC value (will be multiplied with 8).
If you disable a custom function, then it will work as a regular CC.

X03  (CC#1 value: 3x8=24)
X12  (CC#2 value: 16)
X2F  (CC#3 value: 127)

Now with Teensy support! See readme for details.

toasterpastries wrote:

To be honest it's been at least 2 months since I last tried it so I might be remembering it completely wrong. Thanks for looking into it.

Also curious about the clock... If I edit MIN_BPM and MAX_BPM, will the values in between scale? Like if I edit it to being 80-140, I'll end up with smaller steps in tempo?

No prob, let me know if you still have issues with killing chords.

There is no scaling between MIN_BPM and MAX_BPM. These are the bounds for tap tempo (when you ”tap” command X4y every beat) to avoid setting undesired tempos by mistake.
MIN_BPM is also used to set tempo the first time you tap X4y like this:
tempo = MIN_BPM + y*8

So use the closest BPM value the first tap and then let the tap tempo function find the perfect BPM by sending X4y a few more times.

herr_prof wrote:

n00 sends ALL NOTES off.  This is a good way to kill stuck notes, or kill droning notes at the end of a phrase, so I wouldnt mess with its function.

You should consider making special note functions work at the Fx end of the spectrum, since those are probably less used?

herr_prof wrote:

I find it useful as a midi command being sent from a lsdj channel status at least.

Oh I just got an idea, since there arent any aboy modes in your fork, maybe have the pushbutton do a midi panic?

It does not look like N00 sends ALL NOTES OFF, and I also think I was wrong with my note ON idea. I checked the code and it looks like N00 just sends a regular note OFF of the previous played note, just like what happens with the K command (but K kills the sound in the GB channel too). If you check the code you see that the only way to send an ALL NOTES OFF is to stop the sequencer (this looks the same in my fork and the original code).
So sorry @toasterpastries, I have no good explanation why N00 doesn't work to kill notes/chords for you, it looks like it should work, and it works as expected for me.

Regarding using F (or any other existing command): the Fxx command (finetune) does not send any data from the Gameboy to the Arduinoboy, so a modified LSDJ rom would need to be used for this to work.
I want to keep my code compatible with the official LSDJ versions, and I don't know nearly enough about Gameboy development to attempt anything like that.
The signals sent from the Gameboy to the Arduionoboy are: start/stop seq, note on/off, CC and program changes.
My functions use 4 of the 7 available CC numbers (the X command), so there are still 3 CC numbers available to use normally. Sacrificing a few CCs felt better for me than sacrificing e.g. notes or program changes (though maybe I could live without program changes).
Though it would be cool with dedicated commands instead of using up some CC numbers, however much more work is needed for this to happen (it affects both LSDJ and Arduinoboy code).

I agree that the LED blinking is nice for status and just to see that it's working, but for me the "simplicity factor" is more important.

MIDI panic via the pushbutton is a good idea, I can see how this would be a useful function. Personally I use a panic button on my synth when needed, which is very rarely. I'll keep this in mind.

toasterpastries wrote:

Ahh just found my issue... I think I was trying to use N00 instead K00 to end the notes using chords.
Do you think it would be possible for chords to kill with N00? I've been trying to use NOI as a external drum sequencer as well as retaining the original NOI sounds. Using N00 would enable the MIDI notes to be killed without cutting of a longer NOI sound.

I tested this on my rig today, N00 actually does kill chords for me. I would guess the reason we get different results is this:
N00 generates a MIDI note ON with note value 0. Some synths/drum machines may recognize this as a note OFF, others may see this as the lowest possible note or filter it out as an invalid note.

If this is correct, I can change so that N00 generates a note OFF instead. Or does anyone use N00 to reach the lowest note? I wouldn't want to break things. If nobody seems to do that, I'll probably change this in the next few days.

catskull wrote:

Kind of might make an "arduinoboy lite" hardware that targets only this build.

If I send you a teensyboy, will you get it working on it? I know many people really like this fork.

Actually, thinking about it here, I'm pretty sure this will work on the GBA MIDI board I'll be releasing very soon with very little modifications to your code...

Hey, I saw your facebook posts about the GBA MIDI board. Looks way cool - I'll be sure to pick one up when they're ready. Using that board as an Arduinoboy for MIDI out would simply be awesome.

Thanks for the offer - I'll PM you!