RC300- Here's how to slave the RC-300's Tempo to (some) external sources

Started by Zymos, January 10, 2013, 06:14:31 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Zymos

So, we all know that the RC-300 can only send MIDI clock, not receive it, right? But that doesn't mean it has to be the tempo master.
I remembered a trick I used to use with my Pod X3, which has a tempo setting but is not MIDI clock aware, to sync the delays.

Your master will need to be either your DAW or a keyboard workstation, or possibly another type of hardware sequencer. So if you don't use any of those things, sorry, this wont help you.

Here's the setup:
On the RC-300, go into Memory Edit, and page all the way to the end to Assign Controllers. I used controller 8, cause it didn't have any default assignments.Set it to ON, Target to MEM Tempo (tap), and for Source I used CC#64.

In your sequencer ( I use Live, but anything that can edit and play MIDI files should work) create a 1 or 2 bar clip. This will contain only control data, not any notes. Draw in CC#64 on every beat, with a value of 127. If you want to be using the RC-300's rhythm track, then you only want to play this for a measure or 2, not loop it continuously, otherwise it retriggers the start of the pattern at every beat. Point the track to the MIDI out of your computer, and connect that to the MIDI in of the RC-300, and voila! The RC-300 will follow whatever tempo your sequencer is playing at.

I attached a .mid file of one bar with 4 beats of CC#64. You can just drop it in a track in your sequencer. There is no reason you need to use CC64, but you don't want to pick something that is likely to be already used, like 1 or 7.

Happy syncing!

shawnb

I never noticed the "tap tempo" was assignable.
Very cool idea, & introduces other possibilities.   
I'll try it out over the next few days.   
THANX!
Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Syph

Nice one dude! I'll totally be testing that in the next few days.... and I *may* have found another possible way to sync the rc300...

There is a neat little ipad app called TB Midi Stuff. It is a virtual midi/OSC control surface where you can build you own controllers (like Lemur, but not as.... extensive) and is cable of sending and receiving midi data including midi clock. I have just started with it but I noticed that it has the option to send custom SYS Ex messages, and in the example on their website they happened to use roland ID tags.

Here is a link to the FAQ on their website; http://www.thiburce.com/TBStuff/?page_id=472#top

Near the bottom of the FAQ's there is a section to do with Sys Ex msgs.

My idea was to set up TB Midi Stuff to receive midi clock from one device, then send it out to the RC300 with some roland Sys Ex msgs to make it think it is talking to another RC300.

I am still too new to advanced midi functionality to try testing this yet, but I thought I would throw it out there in case it makes more sense to some one else.... Who's work I can then pilfer and reap the benefits of....  ;D

Once again, awesome work Zymos!

shawnb

This also seems promising!   It's very cool that this tool can calculate checksums on the fly! 

There will be other challenges.  The first would be to find the tempo...  The clock isn't a 'here's the new value' message; the clock source sends out 24 simple short messages per beat, and it's up to the receiving device to measure the time between clock messages to keep in sync.  You'd have to write a script that counts 'em, measures the time interval, does some math & builds the sysex.
http://en.wikipedia.org/wiki/MIDI_beat_clock

The other challenge is deciphering the layout.  I tried & couldn't.  If someone wants to attempt this, I'll share what I've found thus far below. 

I've looked at a lot of the RC300's sysex messages, and the good news is that there is only ONE format used for all communications and it is very simple.   There are only two variables in this message, a two-byte value that varies per tempo, and a two-byte value for what I call the "length", which varies with changes in the time signature and/or the max # of measures recorded, i.e., it varies per the # of beats recorded for the longest loop.   A SysEx with a "length" of 0 basically tells the RC300 to stop.  (The length of the longest loop is important to the RC300, it dictates how loop sync & tempo sync work.  If you know the tempo/bpm and the "length" in beats then you know exactly how long the longest loop is in seconds.) 

BOTH of these values pose challenges, they were not simple...  I have not found the actual formulas for doing the math. 

For those interested in math challenges, here are some of my findings, see if you can find the formulas ???:

For the "length", it's pretty easy to do 4/4 & 2/4 time by multiplying x300 for every 4 beats, but it doesn't work for other time signatures.   The data below shows what the RC300 puts on the bus in the "length" location under different circumstances:
  4/4 time, 1 measure:   x0300
  4/4 time, 2 measures:  x0600
  4/4 time, 5 measures:  x0F00
  4/4 time, 8 measures:  x1800
  2/4 time, 2 measures:  x0300
  2/4 time, 4 measures:  x0600
  15/8 time, 1 measure:  x0550
  15/8 time, 3 measures: x1070

When you vary the tempo, this is what the RC300 puts on the bus:
  81.0 BPM:    x062A
  81.1 BPM:    x062B
  90.0 BPM:    x0704
  120.0 BPM:  x0930
  235.0 BPM:  x122E
  239.9 BPM:  x125F

(FWIW:  The following formula works about 75% of the time...
   (((BPM value *10) DIV 400) * 784) + (BPM value *10) MOD 400     
I've listed some of the exceptions above.)

The "length" precedes the tempo. For instance, if you have 2 measures, 4/4 time, @120.0 BPM, the varying portion of the message looks like:   
    x0600 x0930 
And there are plenty of x00's before & after this 4-byte sequence that appear to be unused...

One theory which I haven't explored is that the whole thing is actually a 4-byte (or more) value for the length in samples or something similar.   It's also possible that some other settings are contributing to the calculation that I hadn't detected.   

(This failed experiment of mine made me appreciate gumtown's work that much better!!!)

Shawn
Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Zymos

Wow! That's some pretty heady stuff.

Gave me a wild idea: what would happen if you changed the "length" value on an already recorded track? Do you think you could change the number of measures without messing up any audio already recorded- in other words, basically append some extra measures on the end of it?

TB MIDI stuff is one of the few iPad MIDI gizmos that I don't already own....

shawnb

Quote from: Zymos on January 11, 2013, 02:45:33 PMwhat would happen if you changed the "length" value on an already recorded track? Do you think you could change the number of measures without messing up any audio already recorded- in other words, basically append some extra measures on the end of it?

I don't think there is any way to append new measures to the end of an existing recorded loop.   
Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Threeleggedyoyo

Brilliant idea. Thanks for this thread.

For me, this presents a way to sync my GT-6 with the RC-30 (yes, I know the GT-6 recognizes Midi Clock, but it has some issues with reading the Midi clock that affect the Delay only... a common problem).

Anyway, this means I can have an external pedal going into either unit that will send Midi as a Tap Tempo assignment to the other. Hypothetically this should get them in lockstep on Tap Tempo from the get-go without introducing Midi BPM sync, though at the cost of being able to do so automatically that way (I'd have to tap a tempo at the start of each song).

In practice, however, the GT-6 and the RC-50 will not always read the taps to be the same BPM, and sometimes the discrepancy is significant. So Most of the time, I'm probably just as well off doing an unsynced Tap Tempo on the GT-6. :/

So the method I'm doing at least is a clear YMMV in terms of syncing things together.

Caveats may include what kind of tap tempo pedal you use, and what equipment you're syncing together.

Syph

Hey shawn, what midi event viewer are you using? And if it is not mac compatible, is there anything you would recommend?

shawnb

Quote from: Syph on January 12, 2013, 09:32:57 PM
Hey shawn, what midi event viewer are you using? And if it is not mac compatible, is there anything you would recommend?

Mainly, I was using MIDI OX.  For some things I used SONAR.  I don't know enough about Mac to recommend a product, tho...   I'm an entrenched PC user. 
Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Zymos


Syph

Sorry to dig up an old thread here, but I have some further developments you may like...

Like Zymos, I am using the RC300 with Ableton, and I tried his method of syncing but I found it slowly drifted. But it led me to something kind of amazing. Why use the tap tempo at all? The RC has a tap tempo assign, and a TEMPO assign!

Go to assignment 8,
Receive trigger from CC64.
Assign target Tempo (NOT tap tempo, I am pretty sure they are next to each other)
Set the min at 60, max 187

In ableton build a single shot (non looping) dummy clip, and bring up CC64 envelope.
Draw the desired tempo into the clip, with a CC value of 0 being 60 BPM and 127 is 187 BPM. (You can choose any min and max)
Place clip on a new scene, name the scene with the same tempo.

Now when ever you launch that scene, you will have ableton and the looper lock to the new tempo at the same time. No drift, no latency, and so far no glitches.... (looks around nervously) So you can just tell the @#$! what tempo to be at, leave the drums on but muted, and bam!

I am looking into building a little TBmidi stuff template to control tempo through this as well, since you can essentially just use any thing that sends CC values... Just give me a few months to get around to it.


aliensporebomb

This thread should be stickied.  Brilliant/bravo!  I suspect that other sequencers might be usable in a similar way as well. 
My music projects online at http://www.aliensporebomb.com/

GK Devices:  Roland VG-99, Boss GP-10, Boss SY-1000.

Zymos

Hey Syph- I think I tried that first, but couldn't get it working and then found Tap Tempo instead. I must have been doing something wrong, since you got it working. Not sure why one way would drift more than the other though, since in both cases you are just sending the information one time at the beginning.

For various reasons, ( one of which is I haven't been using Live lately) I eventually went back to the RC-300 as master...

Aliensporebomb- any thing that can play back a standard MIDI file to a MIDI output will work for this, it is not at all specific to Ableton.

Syph

When I say it drifted over time, I mean to say that due to some wonderful things like usb bus latency, the pulses weren't quite hitting the RC300 exactly enough in time, because i was getting marginal tempo calculation errors, mostly on time but typically within 0.1 BPM every 2 to 5 tempo sends. I suspect I was I was just using a cheap usb midi cable to route midi into the RC300, so perhaps if I had bothered to use my decent sound cards midi.

Now the tap tempo would have been more of an option but the way I have my RC300 loops set up I can't use its warp engine. But that is fine, because now I have the RC300 following Ableton perfectly I can set up dummy clip scripts to dump loops into Ableton clips then clear the looper ready for more new loops   , or playback old loops from earlier in the jam/gig/etc, or have extra looping tracks in Ableton so I can have even more loops! Not to mention the RC300 has the outputs to be able to discreetly route loops, so now I have an incredibly flexible FX chain on every loop. Now just to build a new controller...

....With free way on ramps for arms and a heart as black as coal....

....Oh my yes....

loopman

Hey people,
The RC-300 is a great loop station, but it sucks about the Midi Sync,
sure, the external triggering of the Tap tempo could be a nice idea, but it's not very accurate and in my opinion, it will not be handy.
Don't loose your time, choose the Ehx 45000,it is the more powerful Midi hardware looper that I 've ever seen on the market!
Take a look at the owner manual, on the Midi pages, the EHX 45000 EASLY will sync to the Midi master ( DAW or DRUM Machine) and the 45000 will respond to quickly to:
- MIDI CLOCK
- MIDI START and MIDI STOP
- SPP command ( Song Position Pointer) : " You can advance your sequencer or drum machine to any
measure you like, and the 45000, whether idle or playing a
loop, will jump to the measure specified by the MIDI master."

Also, the 45000 has two kinds of External CLOCK sync modes :
1) FULL SYNC= it will able to respond to Midi CLock, Midi Start/Stop and SPP commands
2) BEAT SYNC = it will respond only to the the incoming Midi Clock and will ignore Midi Start command

The last very very important function :  the 4500 WILL PASS AND WILL GENERATE at its MIDI OUT connector,every Midi command received, so it can be both the Salve and the Master for all the other Midi devices connected to.

What more could you want?

aliensporebomb

The problem with the 45000 besides its expense with the external footpedal (locally it's about $475 for the 45k and an additional $120 for the footpedal) is its form factor does not suit itself for live performance very well in my opinion it has a design suited for a tabletop while working in the studio.   That I could get past - but there's a bigger issue for me.

The biggest problem for me is the lack of every loop being stereo.  It has some nice capabilities but once again EHX produces a really cool piece of hardware with some limitations that won't work for me.  As an ambient artist I do big wide stereo fields for every signal I produce and when I heard that the 45k was 4 loops with undo but only 1 of the loops was truly stereo that bummed me out. 

And after my last experiences with EHX as a live performance looper I'm probably going to confine their stuff to the studio - it just doesn't stand up to live performance under hot stage lights.  I love the Stereo Memory Man with Hazarai but heat is its achilles heel and makes it do all kinds of strange things in live performance.  Too risky.  That's about 40 gigs over 6 years of owning it and the two biggest stage light rigs generated big heat and the thing just went out of its mind.  I'm sure most of their stuff is fine but for whatever reason mine acts possessed under the heat of live performance.  I've never had a problem with Roland gear in 25 years of playing out.
My music projects online at http://www.aliensporebomb.com/

GK Devices:  Roland VG-99, Boss GP-10, Boss SY-1000.

loopman

Hi Aliensporebomb,

first, here in Italy, the RC-300 is more expensive compared to the EHX 45000 (almost 100 euro of difference)
yes, the RC-300 is more live use oriented, but let's consider these matters:
1) If you read the manual, you'll see that all the functions of the 45000 can be controlled from a midi foot    controller. I use my Roland FC-300 midi foot controller to control all the functions of the 45000 which I need of, so it's handy for me in live concerts and I never had problems, everything works great.
2) ..." I heard that the 45k was 4 loops with undo but only 1 of the loops was truly stereo that bummed me out..." 
This is not true, the 45000 is capable of 2 Stereo tracks, you can choose to use them coupled by clicking the Stereo Mode button, so you'll have the 1&2 or the 3&4. Or, if you like, 4 mono tracks.

I'm an ambient artist too and I never had problems about the stereo matter, don't worry...
Take in mind another important thing : the 45000 is capable of the Variable Feedback Decay for every track (aka Loop aging), do it remember you something?
------> Frippertronics, yeah, that's it, exactly.
The RC-300 is not absolutely able of the Loop aging feature, its way to make loops is very static and not so much ambient style.

Hope it helps

aliensporebomb

Quote from: loopman on July 19, 2013, 08:11:14 AM
Hi Aliensporebomb,

first, here in Italy, the RC-300 is more expensive compared to the EHX 45000 (almost 100 euro of difference)
yes, the RC-300 is more live use oriented, but let's consider these matters:
1) If you read the manual, you'll see that all the functions of the 45000 can be controlled from a midi foot    controller. I use my Roland FC-300 midi foot controller to control all the functions of the 45000 which I need of, so it's handy for me in live concerts and I never had problems, everything works great.
2) ..." I heard that the 45k was 4 loops with undo but only 1 of the loops was truly stereo that bummed me out..." 
This is not true, the 45000 is capable of 2 Stereo tracks, you can choose to use them coupled by clicking the Stereo Mode button, so you'll have the 1&2 or the 3&4. Or, if you like, 4 mono tracks.

I'm an ambient artist too and I never had problems about the stereo matter, don't worry...
Take in mind another important thing : the 45000 is capable of the Variable Feedback Decay for every track (aka Loop aging), do it remember you something?
------> Frippertronics, yeah, that's it, exactly.
The RC-300 is not absolutely able of the Loop aging feature, its way to make loops is very static and not so much ambient style.

Hope it helps

I wasn't aware of the "two stereo tracks" feature on the 45k.  That basically means it's a lot like a four track recorder optimized for looping.  Reminds me of the old days since I did about twelve years of nothing but four track recording with two stereo pairs.  Nice. 

Regarding loop aging - I'm aware of that too but a user here figured out a way around that problem. 

I managed to get a deal I could not turn down on a 300 ($180 USD new in box!  Legit dealer and everything).  I'll be trying the loop aging mod on this right away.
I'll try it for 30 days and see if it works for me. 

If it doesn't work out I'll probably go the Pigtronix route.  The one thing I see right away with the 300 - the thing is HUGE.  I already have a huge pedalboard with an FC-300 as well as other pedals.  But I know where a 45000 is right now so if it doesn't work out I suppose I can also revisit looking at it.
My music projects online at http://www.aliensporebomb.com/

GK Devices:  Roland VG-99, Boss GP-10, Boss SY-1000.

aliensporebomb

Loop aging works terrific on the RC-300.

Now to try this tempo process (not the tap tempo but set tempo as indicated).
My music projects online at http://www.aliensporebomb.com/

GK Devices:  Roland VG-99, Boss GP-10, Boss SY-1000.

Syph

Just a little update here....

I have tempo control over the RC300 using a single rotary midi controller sending a CC value. My rig has expanded a little more than previously expected, came up with this and wanted to share. If any of you guys have a smart phone/tablet you should be able to build something like this to control the RC300 tempo

Ableton is running as my midi master
Ableton sends midi clock to TB midi stuff which is set up to external sync (so I can have it displaying tempo)
A rotary control sends CC 1 and 2 from TB midi stuff to Ableton
CC 1 is assigned to Abletons tempo, and CC 2 is routed through a track in Ableton to the midi in on the RC300 where it is assigned to tempo.
Assign the same tempo Min/Max range for on Ableton and RC300 assignment. I am using 60 to 187, good range, and gives only whole number tempos.

Bam.

Now have tempo control with a 127 bpm range with no drift or silly start/stop msgs or dreaded sys ex msgs.

Also cool, stole a little visual metronome from one of the other TB Midi stuff pages so now I have a tempo read out, visual metronome, click track volume control, and tempo control knob all in a little 2 inch box on the ipad.

It's funny, after all the f-ing around and getting annoyed for the first year, I am now finding kind of amazing the things that Ableton can do in combo with the RC300, they seem to fill each others failings really quite effectively...

Thats all for now, be back with more neat things soon....

Soon.... (Temples fingers)


Soon......

Zymos

Nice!

...and awaiting any other cool stuff you might come up with...

Strangercat

Hi there ~ I love what is being said about the TB Midi Ap. But in the manual it says you have to run it online?

Does it pose potential issues for a live show if you have to be online for connectivity?

Thanks!

Syph

Just connects over wifi or Bluetooth, doesn't need an Internet connection. I running over wifi, make sure it's a direct adhoc connection to stop any bad latency junk. I connect over Bluetooth and my latency stays under 50ms.

also, check out touchable 1 and the previews for 2 as touchable 2 launches with an in app editor as well...

shawnb

Address the process rather than the outcome.  Then, the outcome becomes more likely.   - Fripp

Syph

Also, whilst connected over bluetooth my latency IS staying below 50ms, but it seems to vary from 0ms to 50ms which is enough to make it.. hmm.. Uncomfortable to play TIGHT drums on, though I can still record in drums like that, and they will be tight enough to quantise to 16ths.

-Shawnb, I have to do something whilst I polish my rig into operational specs! There are just soooo many buttons on my rig now, I kind of counted most of it (terribly) and I am getting to around 150+ controls for this rig... Puts the RC300's 8 assignments in perspective!