does LSDJ ultimately sync with the incoming MIDI clock ticks? or does it just merge the info...with LSDJ and the clock doing their own thing?
Once again lsdj can only do clock stuff OR midi out. Everything else described here is a hack.
It's like herr_prof says.
LSDJ will not sync with incoming clock, it will only output notes and start/stop messages.
When the RPi detects a start message, it starts to send MIDI clock. You control the clock tempo via CC (the X command in LSDJ).
Connect GB to Aboy the normal way, then connect Aboy MIDI out to a USB MIDI interface, which you connect to the RPi's USB port. Connect the MIDI out on that interface to your synth.
The merge function is useful if you want to use LSDJ and e.g. a small USB MIDI keyboard to control your synths.
I know it can't do that right now..
I'm saying: can a lsdj version be made that listens to midi clock and sends notes out.
I had a conversation with Tim once that indicated that the serial bandwidth limit of the gb port was the limiting factor, so probably not.
Why do we put up with such old limited hardware?!
Yeah the clock was unreliable and also has a performance hit, so therefore completely useless and I removed it on the LSDJ side.
The limits of 0x00 - 0x6F have to do with using an external clock (Ardunioboy side) to get faster data rates. Had to compromise the first bit for use as a start bit, aka a "hey there is data here!" trigger. Therefore only values of 0x00 to 0x7F can be received without packing it into several bytes- which would make it slower. This wouldn't be on issue on a CGB, but on a DMG everything counts.
Therefore any byte received that is 0x70 to 0x7F is a command, and 0x00 to 0x6F is the value for the last command received.
0x70 to 0x73 represents a note message on one of 4 channels (N & Q command on PU1 to NOI)
0x74 to 0x77 represents a CC message on one of 4 channels (X command on PU1 to NOI)
0x78 to 0x7B represents a PG change on one of 4 channels (Y command on PU1 to NOI)
and the rest were going to be used for sequencer messages (start, stop, and clock)
One could in theory make some custom commands on the Arduinoboy side to have LSDJ send a encoded tempo, and the Arduinoboy could send a MIDI clock tick when it receives the start message. *I believe* LSDJ still sends a start and stop message. Still kind of a pain but better than nothing if you have to have a clock tick.
I know it can't do that right now..
I'm saying: can a lsdj version be made that listens to midi clock and sends notes out.
It would be unreliable. Higher priorities on the interrupt if I can recall. Also it would be tricky to achieve switching half-duplex using the method that was required to get faster data rate out of the gamelink jack.
Yeah the clock was unreliable and also has a performance hit, so therefore completely useless and I removed it on the LSDJ side.
...
One could in theory make some custom commands on the Arduinoboy side to have LSDJ send a encoded tempo, and the Arduinoboy could send a MIDI clock tick when it receives the start message. *I believe* LSDJ still sends a start and stop message. Still kind of a pain but better than nothing if you have to have a clock tick.
Do you think that LSDJ could automatically send a clock tick or a start message, at the beginning of each phrase?
Wihout having to put X or Ns everywhere?