Note-On.....Note-Off turned into Note-On/Off....Note-On/Off?

salatspinatra

2009-03-29 15:16:52

Hi, This is a question:

My Novation remote SL has a feature which allows the drum pads to send syncronized or delayed Midi Off messages. that is, you tap the pad, and the internal clock times the Off message to occur in the divisible time you specified.
I'm interested in using this option as a tap message for RELATIVE time changes in ableton live. So if I was playing at 120bpm, I could press a button and get half time (60bpm) press another button and jump back to 120bpm again. It would work for any tempo. Halving the beat at 140, gets you 70.
Sure I could dial down or up to any tempo I wanted, but the jump would not be seamless with the beat. Sure I could put tempo information into the master scenes of live, but I'd only get those ABSOLUTE tempos, which might or might not have a relation to the tempo I'm currently in. And sure, i could just tap it out on the half-note of the current tempo, but the tap button is really not that accurate. If I tapped half notes on 120, I might get 65bpm, then doubling this I'd end up returning to 130bpm rather than 120. With me so far?

The Novation Remote is not really designed with any sequencing abilities. So what happens if I turn on the syncro feature on the drum pads of the Novation Remote, and then assign that to the tap button in Live? Well if I assigned the drum pad to a 1/2 note, I'd sequence in a 1/2 note, NOT two events a half-note apart. The tap tempo in Ableton would have no idea what to do with this, and would not change.

I thought about twiddling with the ableton python api to see if there was an answer there. Or hacking the firmware of the Remote. Unless someone has a lead on these ideas, I'd feel a bit over my head.

My most immediate lead is with MT to handle the Note messages specifically for the note # that I assigned to the TAP in Live. Then Translate somehow this Note ON.......(in tempo)....Note Off pairing to be interpreted as Note ON Note Off........(in tempo)....Note On Note Off.

Then I'd assign 4 drumpads on my Remote to the same note with diferent syncro lengths. The half-note sitting next to the 1/8th note, so I could bounce from half time back up to original time, or double time back down to original time. And perhaps pull the same trick with triplet time.

Any Suggestions on how to accomplish this?

Much Obliged.
James

Any suggestions on how to accomplish this.[/b]

florian

2009-04-16 16:17:04

Hi James,

sounds tricky. To start with the simple things:
yes, you can use MT to convert
- NOTE ON from RemoteSL to "Note On, Note Off" and
- NOTE OFF from RemoteSL to "Note On, Note Off", too

You can also arbitrarily delay MIDI messages, and/or repeatedly send messages with a pre-defined delay.

I'm not sure if that'll do the trick for you. MT does not have built-in capabilities to detect tempo, though it is possible to do that with Rules and timers. You can also use MT to calculate "half tempo" and send the corresponding tempo event to Ableton. Now the question is how MT knows about the current tempo? You could use MT as tempo master, so any tempo change would go through MT. Then it's easy to do any math on the current tempo and set a new tempo.

Let me know if any of the above would solve your issues.

Thanks,
Florian

salatspinatra

2009-04-29 07:33:05

thanks plenty for your reply. I had not heard back from the forums, and it was by luck that I happened to check in just now.

Great news about the message conversion, suppose you could tell me how? How would it know to handle the incoming note on message differently from the paired note-off message?

That's all I'd need it to do. I'm using the Remote's clock, and it keeps track of the session tempo in ableton for me. The drum pads already have a syncronized (to a divisible meter) or defined delay option, so pressing the drum pads delays the On/Off separation depending on the Remote SL's clock.

All I need is the script to accomplish the Note On converted to Note ON/OFF and Note OFF converted to note ON/OFF in MIDI Out from my remote.

Thanks!

James

florian

2009-05-12 00:09:25

Hi,

this is really difficult stuff. You should start with a simpler thing first...
Maybe you find the forum topic where the user posted his preset for calculating tempo from Midi Time Clock messages or so?

Also it will be useful to know a little more about the way MIDI works... some basics:

90 pp qq is a NOTE ON message on channel 1 (91 would be on channel 2, 92 on channel 3, etc.). pp is a variable for the key number, and qq is a variable for the velocity (how hard you press). So, e.g. 90 00 7F starts the lowest note (C some octaves down) at maximum velocity (7F hex = decimal 127), 90 7F 10 starts the highest note with very little velocity (10 hex = decimal 16). Using a velocity of 00 is equivalent to NOTE OFF.

There is also a separate NOTE OFF message: 80 pp qq, where again pp is the key, and qq is the "note off velocity" (for what it's worth).

So you can write a translator "90 pp 00" that only reacts on the first NOTE OFF type, and "80 pp qq" that reacts on the second NOTE OFF type.

When you want a translator to only work on NOTE ON, do it with a simple rule:

INCOMING: MIDI 90 pp qq
Rules:
if qq = 0 then exit rules, skip outgoing action
OUTGOING: [whatever you want]

Hope that helps some...
Florian