Slaving Ableton to a Human Drummer?

Share your Ableton Live secrets here
SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

Some answers about InTime from the developer

Post by SnackDaddy » Tue Mar 16, 2004 4:21 am

Hey y'all,

I'm the developer of the InTime software that's been discussed in this thread. I thought I'd answer some of the questions and concerns that've been brought up. I hope it's not inappropriate for me to jump in here as the developer of a commercial package.

My partner and I (he developed the underlying technology itself, I put together the software and the frills) are very interested in what you all have to say about InTime. What are your concerns? What features would you want? How's the interface? How would you want to use it? I can't promise to implement every feature suggestion, even if it's a great one, since I'm doing the development on my own at this point in the game.

Here's some answers to the questions and issues that've come up in this thread. I'll try to be brief (I can get kinda long-winded!). I'm happy to answer any questions you might have after reading this.

=== Supported Platforms ===
InTime is available for Windows and Mac. The Mac version is in public beta for OS 9 and the OS X public beta is close to being finished, but I can't say for sure when I'll release it. Hopefully within a few weeks. InTime has a 30-day fully-functioning demo on Windows, and the Mac OS 9 beta version is good for 4 months.

=== What it does ===
The basic idea is that you start InTime like a metronome, ie at a particular tempo and play along with it. The twist is that InTime will then follow you as you change tempo. It follows natural tempo changes, from subtle to strong, but it cannot follow quick jumps from one tempo to another (e.g. from 100bpm straight to 140 bpm). You can use "tap tempo" for quick jumps. InTime can play Midi files directly or drive any software or hardware that's slavable to midi clocks (like Ableton Live, which is what I use myself with InTime). There's more info on our site, and some demos in the Support section.

=== Who can use it ===
InTime works with any midi instrument, or any acoustic instrument that can be hooked up to send midi messages (more below). Using InTime with a live drummer is its most popular use so far. I'll focus on that since that's been the main interest here. InTime is not for novice musicians, unless they want to use it strictly for practicing tempo control. You need to have good control over your instrument to use InTime effectively. You don't have to be a pro, but you do have to be able to play with solid timing.

=== How it works ===
The *basic* idea goes like this: you start InTime at a particular tempo; InTime knows when to expect the next beat and basic sub-divisions of the beat (8th notes, 16th notes, and 8th & 16th note triplets by default); as you play, InTime compares the timing of what you play with its idea of the beat and its subdivisions; if you're slightly ahead of a subdivision, InTime speeds up, and if you're slightly behind, InTime slows down.

=== What kind of music does it work on ===
InTime works on anything with a beat. InTime can handle polyrhythms without trouble. For very highly syncopated rhythms, like you'll get in some Jazz comping styles, you'll want to enable "Sub Tracking" mode. This looks for finer divisions of the beat.

=== Double-time playing ===
Quandry raised some good concerns about InTime. First, he wondered what would happen in music where the drums play double-time relative to everything else, like in some drum n bass music. This is no trouble for InTime. You simply start InTime at the tempo that you want everything else to play at, then when you play the drums double-time, InTime doesn't know the difference since it's just following the beat, or the pulse, of the music. As far as its concerned, you're playing the drums at the same tempo as everything else, just with lots of 16th notes and 32nd notes instead of the more typical 8th's and 16th's.

=== Laying out, fills, etc ===
Quandry wondered about what happens if the drummer lays out for a few bars, or does a fill. InTime doesn't need to know ahead of time what you're playing, and doesn't need you to play repeatitively. You can improvise all you want, or you can play a steady pattern. InTime just looks at what you play and where it falls in the beat. Fills are no problem - for example, you can switch between duple and triple feels whenever you like as long as the underlying pulse of what you play is the same. If you want to play an out-of-time fill or section, you can temporarily disable tempo tracking with an assignable midi controller (e.g. a footswitch) and InTime keeps the tempo steady while you do your thing. If you lay out a bit while the other music keeps going, InTime just keeps chugging along at the current tempo, and anything sync'ed to InTime keeps going too. You can jump back in at anytime and InTime will be ready to track you again.

=== Push and pull against the beat ===
Quandry also wondered about what happens with different playing styles, when the drummer plays ahead of, on top of, or behind the beat. He's right in thinking that, for example, if you play behind the beat, InTime will probably slow down. But you can account for this in InTime by adjusting the "Tracking Bias". This adjusts InTime's sense of "now" in millisecond increments. If you set the Bias to a more positive value, InTime interprets everything you play as if it came slightly earlier. This would account for playing slightly behind the beat, so InTime then stays locked correctly to your beat and tempo. From that point on, when you slow down or speed up, InTime still changes with you correctly. This gives me the idea to make Tracking Bias adjustable via a midi controller, and to have presets in which you could quickly load different Bias (and other) settings for a particular song you want to play. Tracking Bias is also used to account for latencies and timing differences in your system.

=== Gradual vs abrupt tempo changes ===
InTime follows smooth tempo changes much like a real musician does. When I play my guitar into InTime (Strat with Roland GK2 pickup), I can easily change tempo by about +/- 20 bpm within 2 measures, using a "Tracking Sensitivity" of 5 and with "Momentum" enabled. When my drummer controls InTime, he can easily change tempo similarly, if not faster. The trick is to 1) have a high enough "Tracking Sensitivity" setting in InTime (which can be assigned to a midi controller) - starting from a sensitivity of 5 (max is 11), you can really start to move things 2) optionally use the "Momentum" feature in InTime, which smooths out small back and forth flucuations while you play but then gives extra acceleration to your tempo changes when you really want to change, and 3) have control over your own tempo as you play.

To make abrupt tempo changes, you can use the "Tap Tempo" option in InTime, which can be assigned to any midi controller. It allows you to switch to any tempo at any time simply by hitting the controller twice. For example, the drummer could have a foot controller, or a dedicated pad with his kit.

When considering what kind of tempo changes InTime can follow, you can use this rule of thumb: "If it will fool a human, it will fool InTime". You can treat InTime much like a member of your band who's good at following tempo changes, but not a mind reader. If you suddenly switch from 100bpm to 140bpm, your flesh-and-blood bandmate isn't going to be able to follow you unless you decided ahead of time to make the change at a certain point. Even then, you can both decide to switch to 140bpm, but how often would you actually end up at the exact same tempo when switching on a dime? InTime allows you to easily make the kind of natural tempo changes that you would make with other musicians, which generally are in the range of 10-40 bpm over 2 or more measures. It can make faster tempo changes too, at higher sensitivity settings. To play consistently at high sensitivity, you really have to have control over your instrument.

=== Tempo limits and related ===
MrYellow is concerned that one mistake with InTime could possibly change the tempo dramatically, ruining the song. InTime is robust in the face of common mistakes that can happen during a performance. As a minimal example, if there's a single, isolated wrong note played, the change in tempo is going to be anywhere from 0-5 bpm or so, at the *highest* sensitivity setting (11). But most people will use a sensitivity in the mid-range (4-6), so a tempo change would be 0-3 bpm or so. Also, if you make a mis-hit while you're playing, the other notes you play around the mishit will keep InTime locked back where you want it. If you have a crazy mishap like mis-hitting several drums at the same time or right after each other, or if something falls on your midi keyboard and sends a whole bunch of notes to InTime, the timing of the wrong notes will almost always be random, and their effect will cancel out in InTime. Remember, InTime doesn't expect you to be playing a regular pattern of any kind. It just looks at *when* you play whatever it is you're playing. So, if you miss some notes in your pattern, InTime doesn't care at all.

There are some features within InTime that you can use to keep tempo changes very much under control: 1) Tempo limits - you can set max and min tempos that InTime won't exceed. For example, you start at 100bpm and set the limits to 105 and 95. This allows you to move around a little for a natural feel, but won't let you get away from yourself. 2) Momemtum - I described this a little above. This allows you to work at a lower sensitivity setting so that each note has less influence on tempo change, but when you really start deliberately moving the tempo up or down, the changes kick in as if you were at a slightly higher sensitivity setting. 3) Groove Tracking - in this mode, the overall tempo always returns to whatever tempo was in effect when you enabled Groove Trakcing. InTime follows (and keeps your gear sync'ed to) the push and pull of your playing around the starting tempo, varying by at most 4 bpm or so as you push and pull, but always settling back to the original tempo. You can use a midi controller to toggle between Groove Tracking and Tempo Tracking while you play, to keep the natural feel of the groove during passages of steady tempo, and then quickly switch to full tempo tracking when you really want to change tempo.

=== Drum trigger options ===
InTime doesn't care about how loud or soft you play something, just *when* you play it. This means that you can use really basic drum triggers with your acoustic kit, or with any other percussion - I like using it with congas.

The only hardware trigger unit I've used so far is the Roland TMC-6, which is kinda pricey ($200+) and probably overkill for InTime. Below is a list of older units that will probably work with InTime and that I'd like to test (but I keep getting outbid for them on eBay!!). The only possible issue is how much latency there is from trigger to midi message output. If the unit has latencies above 10 msec or so, you'll probably have to account for that in InTime by using InTime's "Tracking Bias" feature (described above).

"Midi K.I.T.I" by Kat ($80 on ebay)
Yamaha DTS-70 ($100 on ebay)
Yamaha DTXPRESS ($170 floor model on ebay)
Aphex Impulse trigger-to-MIDI converter ($85)
Akai ME35T Audio Trigger To MIDI Interface (street price ???)
Roland PM-16 ($100 on ebay)

I'm using inexpensive triggers and they work great with InTime (DR-5 midi triggers from Pulse Percussion (packs of 5 for ~$30)).

You *might* also be able to use a software audio-to-midi setup to trigger InTime. Be sure to test for clean results from the audio-to-midi software before you use it with InTime. Check that you're not getting extraneous notes. It's better to err on the side of fewer notes recognized by the software than to have extraneous notes that happen out of time (they'll start to confuse InTime). You'll probably have to adjust InTime's Tracking Bias to account for the inherent latency in analyzing audio. I'm going to test (hopefully in the next couple weeks) KTDrumTrigger, which is designed for drums:

http://www.koen.smartelectronix.com/KTDrumTrigger/

It's a VST plugin, but since Live doesn't do Midi output, you'll need to use a different VST host to get Midi output from it, which would then be routed into InTime via a virtual port. If anyone gets to try this out before I do, I'd love to hear how it works!

I have a longer description of using InTime with drum triggers that I've been emailing around. Here's a link to it on our site:
http://www.circular-logic.com/docs/Drum ... _tips.html

Well, that ended up being very long. Thanks for your patience in reading this. Don't hesitate to ask me any questions.

Cheers,
Michael

Guest

Post by Guest » Tue Mar 16, 2004 4:28 am

dang, you are dropping some science on us. Sounds like a very promising, deep, and well-concieved software.. looking forward to reviews, thanks for adressing so many points..

Ryan/Quandry

SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

Post by SnackDaddy » Wed Mar 17, 2004 8:29 am

Yup, it really is some science. My partner's been working out the technology over the past ten years - he's a researcher in the cognitive music neuroscience field. Our site has some interesting science-lite info on how this stuff works:

http://www.circular-logic.com/howItWorks.html

Cheers,
Michael

MrYellow
Posts: 1887
Joined: Mon Dec 15, 2003 7:10 am
Contact:

Post by MrYellow » Wed Mar 17, 2004 4:18 pm

This InTime is starting to really turn me on. Had a look at it but couldn't
work it out with the limited time I spent trying. Now I'll have another look
and try to actually figure out how to best use it.

-Ben

SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

New InTime version

Post by SnackDaddy » Thu Apr 01, 2004 5:37 am

Hey again,

Just letting you know there's a new version of InTime available, 1.1.
It has some pretty important improvements:

- much better processor usage (that is, it uses less processor than before)
- mini controls window, great for saving screen real estate
- new demo period

For more info and download, check out:

www.circular-logic.com/WhatsNewWin1.1.html

Cheers,
Michael

spon-g
Posts: 4
Joined: Thu Oct 30, 2003 4:22 pm
Location: UK, GR
Contact:

Awosome thread! More on triggers..

Post by spon-g » Fri Apr 16, 2004 12:45 am

Hey,

amazing thread guys and this in time story looks really really cool!
I ve been working with triggers and triger to midi converotors for quite some time now!
My favorite and good value for money is the Alesis DM5 which you can get relativelly cheap now days... It has 12!!! trigger to midi convertors!

A thing i havent seen mentioned here is that a trigger to midi convertor essentially converts an analog signal to midi, soooo... You can hook up the cheapest possible microphone pressure mic or not , stick it on the bottom skin of your snare perc whatever you bang on and you have a signal that the convertor can understand!
It works, i ve tried it many times,
so get the cheapest possible working convertor and some kind of old mic or some of those Maplin type small cheap mics and you are in business..

Havent tried the intime stuff yet as i mainly work on Panther (OS X) so i cant wait for this pre mentioned about to come out version

Peace

Spon-G

http://www.aegeanproductions.com/~spon-g
Listen Carefully and you will HEar YouR MIND!!!
_______________________________________
http://www.aegeanproductions.com/~spon-g
_______________________________________

coward

easiest way know to man

Post by coward » Sun Jun 27, 2004 12:07 am

kill the drummer

Mikael Adle
Posts: 12
Joined: Sat Jun 12, 2004 11:04 am
Location: Sweden
Contact:

Post by Mikael Adle » Sun Jun 27, 2004 2:05 am

How about using a electronicdrums hihat pedal and place it under the real hihat pedal. And so send CC#4 or note G#1 (Roland hat) for tap tempo into Live?
It seems much more logical to use the hihat foot for tapping the tempo, rather than trying to BPM-analyze snare hits with all it´s nuances like ghost strokes etc.

If your on a tight budget you can get a Alesis D4 used, for a good price (or as you mentioned, the TMC-6) and then just get the hihat pedal from Drumbalaya or any E-drumstore. The pedal might have to be modified to fit under the real hihat, but I know people who have done it. :D

radder
Posts: 88
Joined: Thu Feb 12, 2004 4:29 am
Location: Philadelphia, PA USA
Contact:

Post by radder » Wed Jun 30, 2004 5:37 am

I had thought about trying to do tap tempo via the high-hat before, but I'd be curious to hear the monotonous high-hat work that would need to be performed in order to get that to work properly. If the drummer stops hitting those 1/4 notes even once, your tap tempo goes haywire! And they'd better not even think about dropping to half-time or doubling the beat. Shaky solution IMHO... I haven't tried InTime but the idea is genius and I will support them as soon as I have a drummer and a budget. :)
myspace.com/raddermusic || soundcloud.com/a-radder || Thinkpad R61 / 3GB RAM / Echo Audiofire 4

Mikael Adle
Posts: 12
Joined: Sat Jun 12, 2004 11:04 am
Location: Sweden
Contact:

Post by Mikael Adle » Wed Jun 30, 2004 8:24 am

I just tried doing it using my V-kit´s hihat and was no easy task :D My idea was not the best :(
I got varying results depending on what quantisation I used in Live. Setting Live to 1/8 or 1/16 was almost impossible, the speed changes all over the place ..... and setting it to 1/2 or bar, which made it a little closer to being playable, made it hard to get smooth tempo changes. As the tap needs at least two taps before it can change the tempo changes are always behind.
Probably the InTime software is a better bet. :)

SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

InTime OS X Beta

Post by SnackDaddy » Wed Jun 30, 2004 3:27 pm

Hi Folks,

For those of you who are interested, there's a public OS X beta of InTime available now. Plz go to our website's download form if you'd like get on the beta-testing list:

www.circular-logic.com/download.html

Cheers,
Michael

burn

any news on this?

Post by burn » Fri Jul 09, 2004 8:23 am

this must be figured out, surely some developer out there can figure this out,

i want it too


Jinsai
please keep posting any more news/developments on this :twisted:

SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

Post by SnackDaddy » Fri Sep 24, 2004 8:37 pm

Hi y'all

Just wanted to let you know that InTime is now available for OS X:

http://www.circular-logic.com/download.html

It has all the same tempo-tracking and sync features as the Windows version, but also has new Presets and Playlists features to make it easier to work with live.

Cheers,
Michael
michael@circular-logic.com

::mic-minimal::
Posts: 658
Joined: Tue Mar 04, 2003 8:32 am
Location: behind you

Post by ::mic-minimal:: » Sat Sep 25, 2004 8:51 am

when does the windows version get the new play features and stuff?
for the love of Live

SnackDaddy
Posts: 31
Joined: Tue Mar 16, 2004 2:01 am
Location: Philadelphia, PA, USA
Contact:

Post by SnackDaddy » Sun Sep 26, 2004 3:55 pm

We don't have a time planned yet - pretty busy with the Mac version and associated hubbub right now.

The new features in the Mac version that aren't in the Windows version yet:
- Presets - store InTime's settings in different sets for quick retrieval
- Playlists - lists of midi files and presets to be loaded played through in order
- Midi file tempo playback - file tempos can be applied regularly or in relative manner, and can be applied while tracking is enabled to allow for specific tempo changes at particular times

The more interest there is in these new features for windows, the more likely I'll be able to push them up in our scheduling. Just let me know.

Cheers,
Michael

Post Reply