Offline
Santiago, Chile

So, I tried around, and what does work, is syncing to midi-notes via arduinoboy mgb mode. So I guess the cable is good, and so is the arduinoboy (clock source is also good, b/c it syncs fine to nanoloop 2)

But I don't get much use out out midi note-in, as the notes won't sustain and are always just one step long. I send notes with longer gate, but they get cut immediately. Manual states "Note off triggered on note off message, or velocity = 0" so my best guess would be that the velocity of 0 of the following step does cut it, although it there is no note data sent with it. Or something like that.

So I would really love to get midi clock sync to work (and program notes from the gb itself).

My cable does only have four pads connected, but these are the pins 0, 1, 2 and ground as specified in the original graphic from Trash80's github:

The +5v is missing, but optional.

Video of the constant retriggering: https://streamable.com/am43dp
Cursor should scroll down, but is only blinking on step 1.

@sloopygoop: As arduinoboy is sending lsdj master sync signal, slaving gb303 to lsdj should be exactly the same as to midi via arduinoboy. But as I'm running out of other options, that would be the next thing to try, just to confirm what part exactly does not work (for me).

Unfortunately my cart and DMG are in Europe while I am kind of stuck in South America rn, so it might take me some more months to check back on that. But I will surely give an update on that when I can.

If anyone can give me a heads-up how to get sync to midi-clock to work in the meantime, I would be really gratefull heart

Last edited by Jekyll (Aug 13, 2021 1:48 am)

Offline
Santiago, Chile
sloopygoop wrote:

Curious for any reports on how it interacts with LSDJ.

To get back to this: gb303 as a slave syncs fine to a real lsdj master. Works flawless.
And a "lsdj master" signal from arduinoboy syncs fine to a real lsdj slave. No problems.

But gb303 syncing to arduinoboy keeps triggering the first step over and over again.
I suspect there are differences in the implementation of sync in gb303, lsdj and arduinoboy.

Sooo

  • Arduinoboy-master works for lsdj-slave.

  • lsdj-master works for Gb303-slave.

  • Arduinoboy-master does not work for gb303-slave.

Seems no one ever bothered to test that sad
So I think my best bet would be to modifiy arduinoboy-code to make it compatible. But I have no idea how to find out how the implementations differ, and what is missing.

Unfortunately I don't own a oscilloscope. Maybe I can take readings with a multimeter on really slow BPMs, or even use another arduino to log signals for every pin? Anyone can support me in debugging the issue?

Is there official documentation of lsdj-sync? Maybe the difference can be spotted looking at catskulls code?

Thanks in advance, Jekyll

Offline
Penarth, UK

this looks so sick.

Offline
Penarth, UK

this looks so sick.

Offline
Santiago, Chile

Sooo, I found some time to do some experimenting, and my findings do not make much sense. Are there two standards for LSDJ sync?

Here is what I did:

I cut up a link cable (GBA-style, but should no matter), and determined Pin 2 (SOUT) to be the blue wire, and Pin 6 (GND) to be black.

So I set up another arduino reading from analog-in 0 and plotting to serial monitor. I connected SOUT to A0, and GND to the ground on the arduino.

Now, if I connect that to a GBA running LSDJ in master mode, I can see the signal on SOUT dropping from HIGH to LOW on every first beat very clearly:

But if I connect that same cable to the Arduinoboy (catskull shield on a cheap china-uno), there is nothing plotted at all. The SOUT just stays LOW:

So, what I observe with gb303 makes sense: SOUT dropping to LOW does trigger the sync.
Thats why it syncs with a real LSDJ, and retriggers constantly with the Arduinoboy. Okay.

But what does not make any sense to me, is that a slave-LSDJ syncs just fine to that very same arduinoboy. How can that be, if SOUT is permanantly LOW? What am I missing?

To rule out the china-arduino, I tried the same with a genuine Duemilanove. But it behaves exactly the same.

I could kind of live with "Arduinoboy has SOUT shorted to GND, so there is no trigger at all, can't work like this", but: it *does* work with a real LSDJ-slave. How can that be?

Im kinda lost here, any suggestions what more to try?