20 August 2008

Hacking the DigiTech JamMan

The DigiTech JamMan would be the perfect looper pedal if not for the fact that it's near impossible to sync to a specific rhythm. Not only does it not have MIDI capability for syncing to an external clock, it doesn't even show you the BPM. The best you can do is tap the tempo, and that's likely to drift in short order. It's useless in a live situation where someone else is setting the tempo.

Or is it? Here's a nice hack I came up with. For it to work you need to know the exact BPM. Hopefully there are some electronics in play that display it. It's not going to work if you're trying to loop to your pal's guitar noodling or worse yet, his JamMan. You're also SOL if you have to loop to anything other than a 4/4 time signature.

The big idea is to preset the JamMan with empty loops set for each BPM at which you're likely to play. The other folks in the band have to agree not to stray out the range you pick, so choose carefully. Me, I'm covered from 81 to 140 BPM. That leaves 39 loop slots to play with. I can use the extra slots for preloaded samples, making backups of common tempos, or recording tap stuff if I happen to be leading the band. Why 81 and not 80? Simpler math. I just add 80 to the loop number to get the tempo. Loop 01 is 81 BPM (1 + 80 = 81). Loop 40 is 120 BPM (40 + 80 = 120). Got it? The rest of this article uses my range as an example.

To start, connect the JamMan to a computer. The computer should recognize it as an external hard drive. The root folder is JAMMAN and there is a subfolder for each loop: LOOP01, LOOP02, etc. Copy the entire JAMMAN folder to your computer. That way if you screw this up you can undo the damage.

Next, make a LOOP subfolder for each tempo in the range. Start with LOOP01 and go up to LOOP60. It's fine if a folder is already there. Just make sure to delete the WAV file inside it. All that should be left is the LOOP.XML file.

When you have 60 subfolders, go through them and make sure each has a LOOP.XML file. If one isn't there, create one. It must be called LOOP.XML, with capital letters! If you misspell it or use lower case it won't work. Paste this bit of code into each new file:


<?xml version="1.0" encoding="utf-8">
<jammanloopsetup>
<loopmode>Loop</loopmode>
<tempo>21168</tempo>
<timesignature>2</timesignature>
<rhythmtype>1</rhythmtype>
<stopmode>Stop</stopmode>
</jammanloopsetup>

By the way, the leading space on the 3rd through 7th lines ought to be a tab, not a space, but it's a space above due to Blogger's limitations. Technically, the JamMan shouldn't choke on a space (whitespace is whitespace in XML) but I didn't write it's parser and can't say for sure. Use a space at your own risk.

Now you should have 60 subfolders named LOOP01 through LOOP60, each with its own LOOP.XML file. The next step is to edit each XML file to set the proper tempo. (You didn't have anything fun planned for the evening, did you? I didn't think so. Then again, I did this work for you if you happen to run Windows. Download the zip file here.)

Some genius figured out that the number inside the Tempo element is in fact the number of samples per beat. This bit of info plus the knowledge that the JamMan samples at the rate of 44,100 samples per second (CD quality) means we can calculate the proper Tempo for any BPM:


Tempo = 44100 * 60 / BPM


For example, 110 BPM yields a tempo around 24054.54545 samples per beat. How can you have a fractional number of samples? You can't, so round it to 24055. Even if you play a song for ten minutes, and I hope you don't, the difference won't amount to more than half a millisecond. So to review, you'd plug 24055 into Tempo under the subfolder for 110 BPM. In our example, that's LOOP30, because 30 + 80 = 110. Still with me? I recommend plugging the tempo formula into a spreadsheet for easy calculation.

Once you update all the XML files, copy the whole JAMMAN folder to another place on your computer. Put it in another folder called EMPTYLOOPS_81_140 or something that will remind you that it's a set of empty, precalibrated loops. This is to back up the work you just did and also insure yourself against accidentally hitting tap tempo and screwing up the JamMan. More on that later.

Copy JAMMAN from the computer to the JamMan and you're good to go. Disconnect the JamMan. Plug in your instrument and, if necessary, a rhythm source into the AUX jack. Remember, the goal is to sync the JamMan to an external rhythm given nothing more than the BPM.

Let's say you have a drum machine plugged into AUX. Set it to play something at 120 BPM. Dial up loop 40 on the JamMan. It's tempo light should be blinking along with the beat. Notice the pattern: One red light and three green. Your goal is to get the red light to blink on the first beat of the measure. The easy way to do this is to start the drum machine on the red light. If you have that luxury then it's all good in the hood. Otherwise, you have to use Auto Record.

As you may recall, in Auto Record mode the JamMan starts recording as soon as it receives an audio signal. Now it may go without saying, but for this to work there must not be any signal on the JamMan input at all until the moment you choose to play. This is obvious, yes, but must be stated. You can't expect to play a little bit of something and then start recording. The first sound you make had better be on the first beat. Note that you only have to do this the first time you record a loop -- you won't have to use Auto Record for overdubs.

Push the Auto Rec button (or tap the MODE button on the FS3X footswitch). You'll see the Auto Record button light up. Then tap the REC/PLAY/OVERDUB pedal. The Record light will blink red, telling you that the JamMan is armed. Listen to the drum machine. As soon as it hits the one, play something. Continue for two bars or whatever and hit REC/PLAY/OVERDUB again. If you're timing is good it's now looping seamlessly with the drums.

At this point you can overdub until your heart's content. There are two things to consider. First, do not hit tap tempo. Doing that will completely bung you up! You can't restore the tempo to what it was without re-connecting the computer. That's why it's handy to have some spare preset loops for tempos you plan to use a lot. Be extremely careful around the STOP/TEMPO switch. Second, if you want to save a loop you should first move to an empty slot (loops 61-99 in our example). That way you can erase the main loop and reuse the tempo. To do this, press STORE once, dial to the free loop, and press STORE again. Now dial back to the main loop, erase it (hold down STOP/TEMPO for a few seconds) and start over.

There are a lot of ways to optimize this hack. You can know in advance what tempos you plan to use. That way you use far fewer loop slots. If your range is small enough you can give adjacent loops the same tempo. This way you can create alternate loops and switch between them for a more complex arrangement. One scheme would be to assign a tempo to adjacent even-odd pairs. For example, from loops 01 to 06 the tempos might go 110, 110, 111, 111, 112, 112. If you're in a song that's at 110 BPM, you have loops 01 and 02 to fill up and switch between.

Happy looping. If you try this, drop me a line and let me know how it went.

33 comments:

Unknown said...

Great advice. Like you say, picking a tempo is what is lacking with the JamMan. One thing - if you happen to inadvertently alter the tempo by tapping, can't you just switch to another slot and back again to reset? Perhaps what i'm missing is that tempo is stored regardless of whether or not you save a loop, I don't quite remember...

jr said...

Good question, Cameron. From what I remember, it automatically saved the tempo change with no way to undo it. But then my memory is hazy. Last November I traded my JamMan for a Korg KP3.

babeonion said...

Great advice. You mention that this would only apply to 4/4 timing. However, wouldn't it be possible to record in any time signature, then download and modify in the computer? It would seem that you could simply change the tempo in one loop to be the same as in the other. Is this correct?

jr said...

I don't recall why I thought different time signatures wouldn't work with this hack. Maybe that isn't true.

Unknown said...

Do you think that two separate loops could be recorded at any speed, then modified in the download to match up the numeric values of the tempos, and reinstall it in the JamMan? I look forward to trying your technique.

jr said...

g lynn: I'm not sure. Sounds like an experiment to me! Please post the results here if you try it. As I said, I sold mine a few months ago but your idea may help someone else. Thanks!

Unknown said...

Hi.
I'm trying to copy a LOOP.WAV file from pc to JamMan, compiling the correct XML file.
Then I disconnect the usb and I plug the JamMan into the amp.

But when I go to the track where I saved the wav file, it's empty.

I reconnect the JamMan to the pc and I don't find my wav file, there is only the xml.

Anyone tried this?

thanks!

bye

Devis_

bassistgary said...

Hi Batdevis Re saving a LOOP.WAV file from the computer. This worked for me: I recorded on LOOP01...then saved it to the computer. Open Jamman`s hard drive icon which appears on your desktop and copy the folder called LOOP01 to the desktop. Open this folder and select the LOOP.WAV part of the file and import it into your recording sequencer. Process and add tracks etc. Save the(mono) mix as a Wave file to the desktop. Create a new folder called LOOP02 and insert the new LOOP.WAV. Add the original LOOP.XML to the folder. Insert this folder into the Jamman`s hard drive in LOOP02 (location must be empty). Good Luck! bassistgary

Unknown said...

I didn't save the wave file in MONO. Now it works

Anonymous said...

That tempo info works a treat. I use it for transferring the loops to my Mac to edit them. You can hear some examples on my daily music blog - MagicMusicBeans

Anonymous said...

great advice. i had tried all sorts of things before to synchronise specific rhythms.
copying empty loop-patterns from sequencers and pasting them onto the jamman hadn't worked whatsoever.
however, now that i've hacked the jamman, all i have to do is work on my timing ;)

thomas said...

you made my day!!!! funny concidering that this entry is about 2 years old =)

Anonymous said...

Hi

I was wondering how to put pre-made loops or audio onto the jamman for play...I have tried everything but it just won't work. I accidentally deleted everything that was originally on the compact flash card and now I cant get it to work, even after following the instructions you give here...Please help

Neil Coleman said...

Wow! Now I can actually use this peddle in a live environment along with my sampler. Which, by the way, was completely frustrating before. Even when you think you have the timing down perfect via a foot tap, within seconds- it's of beat. THANKYOU SO MUCH :)

PB said...

Hey Anonymous who couldn't get pre-made audio onto the JamMan,
Make sure you have the card formatted first (instructions on bottom of JamMan). Then make sure your wave file is:
1) MONO
2) Sampled at 44.1k & 16bit
3) a WAVE file with .wav or .WAV as
the extension.
Then name the file LOOP (i.e. LOOP.wav or LOOP.WAV) . Make an XML file named LOOP.xml (though it can be named anything, it will cause lingering files in your JamMan if you name it something else). Use the beat formula above and for the "tempo" field (if its wrong the metronome will be off, but the loop should still play). Put both files in a folder called "LOOP##" where each "#" is a number between 0-9 (you can't have a folder with just one number after it -> LOOP1 won't work, but LOOP01 will!). Drag and drop the folder into the JamMan device that shows up on your computer.

Hope that helps.
PB

Anonymous said...

Hi,
Thank you for this very useful tip!
does anyone know if the "jamman solo" and "jamman stereo" can be hacked the same way. Thanks

user175899@aol.com said...

The 10 stock drum tracks on the JM are so pitiful. Do you Know of a way to replace them or even a site with instructions for dummies?
Thanks,
Grove

Anonymous said...

I just purchased a JamMan Solo and quickly went looking for just this kind of hack. However, when I connect the Solo to my Win7 machine with a USB cable, it doesn't show as a drive. I can only access it through the JamManager software, which doesn't get you to XML files. Bummer.
But... If I pop out the SD card in the Solo and read that on my computer, voila!! Folders, etc. for loops I copied to the SD card. Gets even better. I think the new software must have new "features", one being that the XML file (phrase.xml) actually has a plain vanilla "TEMPO" entry. I had a loop with just the rhythm saved, and in the XML file it was 125.87549. I changed that number to 120, put the card back into the Solo, and yep, it was 120.
I don't know if I can just create folders on the SD card ("an experiment") but my plan is to copy a single rhythm loop to a number of SD spots, then edit them to create the bank.
Thanks so much for this blog and hack.

Unknown said...

Why wont jammanger connect to the internet to update my firmware?

Anonymous said...

Thank you so much. I've been tearing my hair out about this as a live performance approaches. very much appreciated!

Anonymous said...

Hellohello,
is this hack working with all the JamMans (Solo Looper, Stereo Looper, Delay Looper) or is it just for one specific???
Thanks for it anyways!!!!!

Anonymous said...

great advice, thanks for sharing

Anonymous said...

I have build an analog trigger for controll the "taptempo" footswitch imput .So with an external metronom signal i can take "by fly" any tempo.No need to save tempo in empty location .A saved tempo or saved loop i can synchronise with this external trigger tempo .I posted a video demo on youtube "Synchro device for JammanStereo to external tempo signal "

rob said...

it appears that the jamman stereo (at least with 1.3 firmware upgrade),

- can't be mout with usb, with jammanager software as only access. so you'll have to plug the cf card directly in the computer.

- doesn't use the same filestructure : PatchXX directories, instead of LoopXX directories

- doesn't use the same XML syntax.

- allow tempo change in jammanager but doesn't change the duration of the loop, leaving the feature completely useless !

Reason8 said...

Maybe this is a new update to the software.. but in the JamManager you can create and set tempos for blank loops.


In the JamManager:
-Select the LIBRARY on the left
-On the top left there is a NEW drop down
-Select EMPTY LOOP
this creates an empty loop in the CONTENT are titled: Loop, with a duration of 00:00.0. and the default settings.
-in the CONTENT area left of the new loop is a circle with a triangle in it
(looks like a play button) select that

a drop down opens for the loop and you can set tempo, rhythm type, time signature, stop mode, repeat mode, and reverse

-COPY the loop you just edited
-Select the INTERNAL or EXTERNAL(SD) and paste it where you want it


-Once you have what you want i found you need to scroll the JamMan pedal to a different loop number and then come back and the new settings you put into the manager will be there at that tempo just hit rec and it will count in and you can loop as long as you want.


OR

You can just copy and past in a new loop from the library and adjust it once its on the Jamman or the SD card


as Rob said above you can change the tempo of a previously recorded loop, but it does not change the loop duration, so this only works for new loops.


Anonymous said...

Wow, what greatstuff here. i´m from berlin and chack a new looper, as my RC20XL is no choice for live.
Great advices. I go and check jamman...
thank you for the fabulous brainwork!

Serge Van Camp said...

I was looking for what that number meant in the xml file. Thanks alot. Now I can upload my music project and have them in the right tempo. \m/ Rock on!

Anonymous said...

Pls. I need help, i'm very much new to this jamman looper but i managed to store my percussions into the jamman through the Aux input which is about 19minutes long and it plays back very well but, my problem is that, every time it reaches the end, it stop and i don't want it to stop cos the show is still going on, sometimes i perform 5hrs nonstop and i want it to keep looping till i finish my show but couldn't get it to do that which i know it's possible so, can someone kindly help and come to my rescue and direct me on how to get this done.

Unknown said...

I'm really sorry to be so late to this party....but my Jamman does not appear on my computer as a Hard drive like suggested here. Is there something I'm missing? Can I do this via SD card? Really need to figure this out...because otherwise, this thing is useless.

Thanks so much for your help

peterpan said...

Good information! I'm hoping I won't need to hog that many loops though, to haver a variety of tempos. I have found that having downloaded a reasonably nice sounding drum poop sample for my WAV file, and of course matching it up with the calculated TEMPO in the XML file as you explained, the Jamman (at least mine, which is firmware v.1.2) will let me temporarily alter the tempo of the loop with the tap tempo button. So I've soldered a pair of wires across that button and brought the pair out of the Jamman. I've also have ordered an "el-cheapo" metronome with an LED from ebay. I'm hoping next to take it apart and create/add a simple circuit, that drives a tiny relay from the voltage that flashes the LED, and then connecting the relay contact to the wires I've run out from the Tempo switch. With any luck, I'll be able to select the loop containing a drum beat, dial in the desired tempo on the metronome, and the drum loop will then play at my chosen tempo when I start it. If this works, it will mean one drum loop will be usable for several tempos. Instead of hogging 50 or more loops for the same beat at different speeds, I'll be able to use loops for some rythmic variations, maybe even with different time signatures (at l;east one 3/4 or 6/8 is nice to have). Again, **IF** it works, I'll let anyone interested know the details of the circuit. Keep your fingers crossed! :-)

peterpan said...

Justin: My machine is Windows XP pro, just about ancient history now, and it does show up as a drive when plugged in to the USB. So unless your machine is older then that, I'm sure its possible. What machine and OS do you have.

WmPerry said...

peterpan: I'm real interested in that circuit--i've been holding onto to some old metronomes for just that sort of thing. have you had any luck finding a relay you can use for the low voltages of the leds? I wanted to actuate the solenoids from some putting toys to strike drums- the metronomes have 2 leds, red/green and would play simple patterns: 2/4, 4/4, 3/4, 6/8

bacsi2 said...

Thank you for the idea. The link in the post is not working, but you can download from internet archive:
https://web.archive.org/web/20110903232412/http://www.amoebacrunch.com/JAMMAN-81-120-BPM.zip