How did we get here?

79 views
Skip to first unread message

morbank

unread,
Jun 1, 2011, 2:48:24 PM6/1/11
to Arduinoboy

Hi All, Just got my Arduinoboy up and running and all is good, but I
have a few questions...

How does the Arduinoboy's MIDI Out work? MIDI out is something I've
wanted for LSDJ since I first used it in 2001 so I'd be interested to
know a little bit about how this was finally achieved!

I'm using Logic to record MIDI out from LSDJ through the Arduinoboy
and I've tried assigning separate MIDI channels to multiple tracks in
Logic but all MIDI data comes in on one track. This could be my Logic
set up but I wondered... Are the Arduinoboy's MIDI Out channels set to
output on different channels from LSDJ by default or do they need to
be assigned via the Arduinoboy's Software Editor? And if so...

How do I use the Arduinoboy Software Editor? I've got MaxMSP Runtime
installed but I'm not clear on how to physically connect the
Arduinoboy to the computer.

Like most folks I often use more than one instrument in the same
phrase (e.g. WAV samples and WAV synthesis) so I was wondering if it
is possible to assign more than one MIDI channel to instruments
playing from the same LSDJ channel/voice?
-Clay

trash80

unread,
Jun 1, 2011, 4:28:52 PM6/1/11
to ardui...@googlegroups.com
On Wed, Jun 1, 2011 at 11:48 AM, morbank <mor...@cmsquared.net> wrote:

How does the Arduinoboy's MIDI Out work? MIDI out is something I've
wanted for LSDJ since I first used it in 2001 so I'd be interested to
know a little bit about how this was finally achieved! 

Each channel is mapped to midi channels 1 to 4. It's changeable via the software editor. 
 
I'm using Logic to record MIDI out from LSDJ through the Arduinoboy
and I've tried assigning separate MIDI channels to multiple tracks in
Logic but all MIDI data comes in on one track. This could be my Logic
set up but I wondered... Are the Arduinoboy's MIDI Out channels set to
output on different channels from LSDJ by default or do they need to
be assigned via the Arduinoboy's Software Editor? And if so...

Pu1 = midi channel 1
Pu2 = midi channel 2
Wav = midi channel 3
Noi  = midi channel 4 

How do I use the Arduinoboy Software Editor? I've got MaxMSP Runtime
installed but I'm not clear on how to physically connect the
Arduinoboy to the computer.

You need both midi in and midi out connected to the computer via midi interface. It should auto detect and the "disconnected" red box will turn green and say connected when everything is setup right.

If it doesnt auto detect make sure the midi cables are connected properly, also you can try switching the arduinoboy mode if it still doesnt work.

Like most folks I often use more than one instrument in the same
phrase (e.g. WAV samples and WAV synthesis) so I was wondering if it
is possible to assign more than one MIDI channel to instruments
playing from the same LSDJ channel/voice?

Due to the limitations of both program space in lsdj, and the data IO of the gamelink port only 4 channels are possible at this time. 


/Tim

morbank

unread,
Jun 1, 2011, 4:47:39 PM6/1/11
to Arduinoboy
On Jun 1, 1:28 pm, trash80 <tras...@gmail.com> wrote:
> On Wed, Jun 1, 2011 at 11:48 AM, morbank <morb...@cmsquared.net> wrote:
>
> > How does the Arduinoboy's MIDI Out work? MIDI out is something I've
> > wanted for LSDJ since I first used it in 2001 so I'd be interested to
> > know a little bit about how this was finally achieved!
>
> Each channel is mapped to midi channels 1 to 4. It's changeable via the
> software editor.

Right, but how? The Gameboy seemed impenetrable from a midi standpoint
not to long ago, so what was the break through?
>
> > I'm using Logic to record MIDI out from LSDJ through the Arduinoboy
> > and I've tried assigning separate MIDI channels to multiple tracks in
> > Logic but all MIDI data comes in on one track. This could be my Logic
> > set up but I wondered... Are the Arduinoboy's MIDI Out channels set to
> > output on different channels from LSDJ by default or do they need to
> > be assigned via the Arduinoboy's Software Editor? And if so...
>
> Pu1 = midi channel 1
> Pu2 = midi channel 2
> Wav = midi channel 3
> Noi  = midi channel 4

Ok, thanks.
>
> How do I use the Arduinoboy Software Editor? I've got MaxMSP Runtime
>
> > installed but I'm not clear on how to physically connect the
> > Arduinoboy to the computer.
>
> You need both midi in and midi out connected to the computer via midi
> interface. It should auto detect and the "disconnected" red box will turn
> green and say connected when everything is setup right.
>
> If it doesnt auto detect make sure the midi cables are connected properly,
> also you can try switching the arduinoboy mode if it still doesnt work.

Will do.
>
> Like most folks I often use more than one instrument in the same
>
> > phrase (e.g. WAV samples and WAV synthesis) so I was wondering if it
> > is possible to assign more than one MIDI channel to instruments
> > playing from the same LSDJ channel/voice?
>
> Due to the limitations of both program space in lsdj, and the data IO of the
> gamelink port only 4 channels are possible at this time.

Fair enough.

Is there a list of lsdj commands that support midi out?

Thanks for the help and for an unbelevablely awesome update to lsdj!
-Clay

trash80

unread,
Jun 1, 2011, 6:51:23 PM6/1/11
to ardui...@googlegroups.com
On Wed, Jun 1, 2011 at 1:47 PM, morbank <mor...@cmsquared.net> wrote:
On Jun 1, 1:28 pm, trash80 <tras...@gmail.com> wrote:
> On Wed, Jun 1, 2011 at 11:48 AM, morbank <morb...@cmsquared.net> wrote:
>
> > How does the Arduinoboy's MIDI Out work? MIDI out is something I've
> > wanted for LSDJ since I first used it in 2001 so I'd be interested to
> > know a little bit about how this was finally achieved!
>
> Each channel is mapped to midi channels 1 to 4. It's changeable via the
> software editor.

Right, but how? The Gameboy seemed impenetrable from a midi standpoint
not to long ago, so what was the break through?

Arduino sends a fast pulse to the gameboy which triggers the internal shift register to spit out the bits at the external clock rate, making it possible to achieve higher bit rates than the gameboy's internal serial clock rate of like ~2kbps (forget the exact number) ... the downside is we need the first bit as a "start bit" so that the arduino knows there is data waiting to grab. so that the actual byte sent is really 7bits and not 8. Limiting the MIDI messages from 0x00 to 0x7F ... I use 0x70 to 0x7F as the status byte message, its broken into 0x70-0x73 = note message, 0x74-0x77 = cc message, 0x78-0x7B = program change, 0x7F was suppose to be clock sync but it was unstable and therefor useless at this point in time. leaving the remaining 0x00-0x6F as the note or value of the previous status message. 

Is there a list of lsdj commands that support midi out?

K (KILL) = note off
N (MIDI NOTE) = play a note from range 0x00 to 0x6F
Q (MIDI RELATIVE NOTE with added offset 0x00 to 0xFF) = play a note relative to the synth's current pitch, useful to add to a table so that notes triggered as usual also send a midi note out.
 X (MIDI CC) = send a midi CC, by default first HEX is the CC# and second is the value, example X4F would send a value of 127 to CC#4, X30 would send 0 to CC#3
Y (MIDI PROGRAM CHANGE) = send a program change message from 0x00 to 0x6F
C (chord) might work as well, I don't recall. 

morbank

unread,
Jun 1, 2011, 7:10:57 PM6/1/11
to Arduinoboy
> Arduino sends a fast pulse to the gameboy which triggers the internal shift
> register to spit out the bits at the external clock rate, making it possible
> to achieve higher bit rates than the gameboy's internal serial clock rate of
> like ~2kbps (forget the exact number) ... the downside is we need the first
> bit as a "start bit" so that the arduino knows there is data waiting to
> grab. so that the actual byte sent is really 7bits and not 8. Limiting the
> MIDI messages from 0x00 to 0x7F ... I use 0x70 to 0x7F as the status byte
> message, its broken into 0x70-0x73 = note message, 0x74-0x77 = cc message,
> 0x78-0x7B = program change, 0x7F was suppose to be clock sync but it was
> unstable and therefor useless at this point in time. leaving the remaining
> 0x00-0x6F as the note or value of the previous status message.

Thanks for the breakdown.
>
> Is there a list of lsdj commands that support midi out?
>
> K (KILL) = note off
> N (MIDI NOTE) = play a note from range 0x00 to 0x6F
> Q (MIDI RELATIVE NOTE with added offset 0x00 to 0xFF) = play a note relative
> to the synth's current pitch, useful to add to a table so that notes
> triggered as usual also send a midi note out.
>  X (MIDI CC) = send a midi CC, by default first HEX is the CC# and second is
> the value, example X4F would send a value of 127 to CC#4, X30 would send 0
> to CC#3
> Y (MIDI PROGRAM CHANGE) = send a program change message from 0x00 to 0x6F
> C (chord) might work as well, I don't recall.

Oh, so pitch bends (P and L) are a result of the Q commands pitch
tracking and not from the P command? Does that go for Vibrato too? How
about E? And I think R was working as well.
-Clay
Reply all
Reply to author
Forward
0 new messages