Jamman Sync to Midi

Started by rainless, November 01, 2017, 01:28:15 AM

Previous topic - Next topic

rainless

So! Next project:

https://www.youtube.com/watch?v=K_n1a74Qzt8

This guy built a box that uses Jamman's Sync (essentially just a TRS cable sending a pulse at a certain tempo... not midi at all) to control midi tempo by somehow converting that pulse to midi which is then sent to the Beatbuddy to control tempo on that device.

https://www.youtube.com/watch?v=CuA9LSJZgmI&t=506s

Obviously I'm never going to buy a beatbuddy... but I *will* be buying a Novation Circuit... and it would be cool if the tempo could sync to the Jamman.

So now I just need to figure out how he did it.

I have most of what I need just  laying around. I've got a midi jack... I think I even have a couple of arduino nanos laying around...

I'm just curious how he PHYSICALLY did it. Like did he just wire the TRS jack to the MIDI jack? And... if so... how the hell did he do that?

I'm not asking about programming the Arduino board or anything like that (not at all intimidated there)... I'm just mainly concerned with the theory and the wiring.

Truth be told I might NEVER use my Jamman to control the Novation Circuit (the whole point in GETTING the Jamman was so that I could make beats on the Circuit and then run them off of the Jamman's 400 savable slots and only have to carry around one device that I already made an external battery for) I just bought this midi jack because I thought the one on my Digitech Control Seven was broken (it wasn't) and now I've just got the extra part laying around and some free time on my hands.

SO LET'S DO IT!

ElectricDruid

#1
Ok, firstly, the first video doesn't seem to show what you says it shows. He's using the Jamman's track selection to choose a track on the beat buddy  and then he's making sure that the tempo of the tracks on both devices match their track number, so that the track number is essentially the same as a tempo display. That's a hack, but it apparently works.

I don't understand what you mean by a MIDI "jack". MIDI plugs/sockets are 180-degree 5-pin DIN plugs/sockets, not "jacks", as far as I know. But doing a search throws up lots of things calling MIDI plugs "jacks", so I'm going with that...not trying to be pedantic, just checking that we're talking about the same thing.

Outputting MIDI from something like the Nano is *dead* simple. The hardware consists of a 220R resistor connected to the output wire. Honestly, that's it. The software involves using the UART peripheral to generate MIDI Clock messages. MIDI input is worse because you need an optoisolator and whathaveyou. Not huge problems, but not as simple as MIDI output.

Now this is where it *might* get interesting.
MIDI Clock assumes 24 PPQN (Pulses per quarter note). This is the same as the analog pulse output on various bits of analog gear, including the Roland x0x-era boxes, like the TR909, TB303 etc. Converting from 24 PPQN pulses to MIDI Clock is as simple as outputting a single MIDI Clock byte every time a pulse arrives (0xF8 in hex).

The "interesting" part is if the Jamman Sync is *not* at 24PPQN. If that's the case, you'll have to do some "interesting" frequency division. If it's at some useful multiple, then that's no problem. Say it was 48PPQN - Easy, just send a MIDI Clock every second pulse. If it's something worse, like the 4PPQN often used by analog sequencers (basically one clock per sixteenth note - no-one ever played anything utilising 32nd notes back then, apparently) then you've got more work to do. In that case, you have to maintain an internal clock that is sync'd to the incoming pulses, and use the internal clock to guide the output of the MIDI clock bytes. This is a lot more tricky, but not impossible and there are quite a few commercial units that do it.

HTH,
Tom

<edit>Reading around it a little, it looks like the JamSync is just a simple tempo clock (e.g. 1PPQN - one pulse for each beat) so if you want to convert to MIDI clock, you'll have to keep an internal clock synchronised and use that to output MIDI clock bytes.</edit>

<edit again>Nope, sorry. It looks like it's a lot worse than that. Here's a good link:

http://fuzzysynth.blogspot.pt/2015/06/digitech-jam-man.html

It's using some proprietary MIDI SysEx messages to control the slaves. Stupid, but there it is. The whole point of standards is so people can make their gear work together, but if DigiTech want to ignore that then...sigh, I guess that's up to them. Although why anyone thinks that helps them sell more pedals in this day and age I have no idea. People tend to react badly to that type of behaviour in my experience.

End result - you'd need to write a full MIDI-parsing engine to separate out and decode JamSync messages
</edit>

rainless

#2
Quote from: ElectricDruid on November 01, 2017, 05:40:59 PM

End result - you'd need to write a full MIDI-parsing engine to separate out and decode JamSync messages
</edit>

Thanks for all that... For some odd reason your message never showed up for me until now. I just googled around and came across many of the same things you did.

THIS IS GONNA BE AWESOME!

Anyway... "Jack"... "socket"... semantics. YES: A 5-pin Din connector. Got one laying around and I'm ready to make this happen.

If some (sounds like) 65 year-old Irish dude (from the video) can do this, then I should be able to do it with both hands tied behind my back using only my teeth.

I don't know much about "jacks" and "sockets" and all that... but I do know a hell of a lot about programming.

Some guy created the "SyncMan" to do all of this for 108 euros http://www.customliveelectronics.com/shop/customliveelectronics-boutique.html

...that's more than I paid for the pedal. I'm guessing I can build something that doesn't even require a power supply (or can at least be run off of a 5v USB charger) for about 5 euros or so.

I found the same link you did about 5 minutes ago: http://fuzzysynth.blogspot.de/2015/06/digitech-jam-man.html

It was based on a lot of work that started here: http://www.....org/viewtopic.php?f=1&t=26184

Inevitably somebody put two-and-two together and figured the whole thing out.

Somebody's already figured out to connect the JamMan's TRS wires to Pins 4 and 5 of a din socket. I just need to dig through some old headphone wires chop one off and wire it to the midi "socket" I have and start playing around with my USB/Midi cable.

From there: MidiPipe. MidiPipe is like a full midi engine that can help examen midi signals and translate Midi messages into anything you want them to be. (I think MidiPipe is open source... I could technically use it's code on an arduino and translate the JamMan's Proprietary messages to regular Midi Clock messages.)

Are you familiar with MidiPipe?

EDIT: Looks like everything is pretty neatly explained here on this page: http://www.freestompboxes.org/viewtopic.php?f=1&t=26184&start=40

rainless

Two Things:

1. The programming I no longer have to worry about: https://github.com/Calde-github/Looperino

2. I believe I found our "BeatBuddy Guy":

Hello gentlemen,
Looks that you made a fantastic work and that is exactly what I need.
I am first time here. Please advise, I need to synchronize the JamMan Solo XT to the BeatBuddy (the BB - master; JM - slave).
Is it possible to use your code on Attiny85 with a schematics similar to https://ambinaut.files.wordpress.com/20 ... =768&h=320
Of course the output would be modified for the JM sync IN.
I am confident enough with electronics, but have no experience with programming.
Thanks for any help.
Nikogo

-------------------------

EDIT: Not the same guy... The video was published in 2016 but the thread is from Aug 2017. Same idea though. Combine everything from that thread and they've figured it out.





Marty M

Hi that's some wonderful working out. I have a jamman solo xt connected to my drum synth and I would like to buy or make a device to convert its sync output into much so that it will synchronise my other non jamman devices which have much inputs. I don't have all the knowledge that you have so can you help me?

snufkin

easyface,phase 90,many fuzz faces,feedback looper,tremulus lune and so on soon to be ADA!

tommymariotti

Hi, I need to change loop via midi. How can be do it?