PDA

View Full Version : Tap Tempo for Accurate Event Period



JonathonReinhart
09-17-2009, 06:01 PM
Hey everyone,

So I've noticed that a well-chosen event period can make all the difference when sequencing complex, fast-moving pieces (like a lot of TSO). What I mean by this is, it is optimal to choose an event period length such that it lines up to the beats in the song.

For example, at 150 BPM, each beat lasts exactly 400msec, so setting the event period to 50 msec allows you to have exactly 8 events per beat. In other words, one event corresponds to one 32nd note exactly (http://lights.onthefive.com/tapcalc/8evpb.png).

Since Vixen's event period lengths must be integer values (and a song rarely holds a perfectly constant tempo), your sequences will rarely "match-up" perfectly. You'll have to insert an occasional extra event if your beats are a bit too fast (or remove one if too slow).

In order to help calculate these optimal event period lengths, I put this little app together: <http://lights.onthefive.com/tapcalc/> It's pretty rough right now, but I think you can get the idea...

Comments?

Jonathon

dirknerkle
09-17-2009, 06:47 PM
Very clever!!! Nice work! I'm impressed with your musicality. Did you formally study music?

BuzzKill
09-17-2009, 07:09 PM
I love it. What a great tool,

wonder
09-17-2009, 07:55 PM
Really great!! highlighted

Virtus
09-17-2009, 07:57 PM
Very nice. I recommend you take it one step further and just have it tell you exactly what to put into Vixen during the new sequence wizard so there is nothing to calculate at all.

JonathonReinhart
09-17-2009, 09:34 PM
Cool, I'm glad you all found interest in this... I'm open to any and all suggestions, as I've found this calculation very helpful. It really makes sequencing a lot easier, as you know almost exactly where to insert events.


Very nice. I recommend you take it one step further and just have it tell you exactly what to put into Vixen during the new sequence wizard so there is nothing to calculate at all.

I highlighted the optimal event period for the 8 event per beat calculation, as this is what will be used 9 times out of 10. Unless you get into swing beats, or other strange time signatures.... (Has anyone synced lights to any Tool songs?)

Virtus
09-17-2009, 11:13 PM
OK, I see it now. I think the capital "M" was throwing me... milliseconds should be abbreviated with a lower case "m". Captial "M" is for mega. Very nice...especially now that I understand what the red number was telling me!

mrpackethead
09-19-2009, 05:38 AM
hate to through a spanner into the works, but Music that falls perfectly on the beat is 'soul-less'.. Its the ever so slight variances that actually make it interesting on the ear. 'Quantifed' music, you know the stuff that a midi sequencer chucks out might be accurate, but it does'nt sound very nice.. You might find it pretty hard to make many recordings actually fit nicely....

JonathonReinhart
09-19-2009, 11:35 AM
I'm going to have to disagree with ya there... lights that are timed perfectly to the music are what make the show look amazing... being off by even 5 or 10ms is quite perceivable by the human eye/ear, and in my opinion, contributes to the 'amateur' feel of a lot of shows...

A lot of artists record to a computer/metronome 'click track' keeping the tempo very rigid. I've found that if I set the event period correctly, I'll be able to throw events in anywhere in the song, and they will almost always be perfectly in time.

Actually, being able to offset the music by +/- a few msec would be a nice feature, because depending on where it starts, your beats might be timed correctly, but just offset by 5-20 msec (throughout the whole song)

Virtus
09-19-2009, 05:12 PM
I am going to try this out as I am just about ready to start sequencing and have had the idea to do this before but never the cool calculator to make it so easy to do. When the song leaves the steady part I will deviate as well.

budude
09-19-2009, 05:23 PM
I'd say there's probably enough variation in the equipment to give a certain amount of "offness" especially if using non-LED lighting no matter how accurately you sequence. This is a definite time saver!

mrpackethead
09-19-2009, 11:58 PM
I'm going to have to disagree with ya there... lights that are timed perfectly to the music are what make the show look amazing... being off by even 5 or 10ms is quite perceivable by the human eye/ear, and in my opinion, contributes to the 'amateur' feel of a lot of shows...


Mmm, so your tungsten lights have a ramp up/ramp down time of sub 5ms? Your leds will. But my point was not about lights being in sync with teh music. It was the music itself. Music that is 'perfectly' timed is souless.

>A lot of artists record to a computer/metronome 'click track' keeping the tempo very >rigid.

some do. And their music may soundlike a computer would play it. Espically those who make 99% of the music on their sequencer.. However if you are playing along to the click track, your timing is still not perfect, and there is variation between bars, and thats what gives music its grove, its soul.. Go and google this topic, theirs raging debate!

>I've found that if I set the event period correctly, I'll be able to throw events in >anywhere in the song, and they will almost always be perfectly in time.

Yes.. But your talking about your lights, not the music itslef

Actually, being able to offset the music by +/- a few msec would be a nice feature, because depending on where it starts, your beats might be timed correctly, but just offset by 5-20 msec (throughout the whole song)[/QUOTE]

Virtus
09-28-2009, 05:23 PM
I just tapped out all my songs and recorded the timing for 8 blocks per beat and 12 blocks per beat and then used the new sequence wizard to tap out a beat track for a couple of the songs. The math on this is perfect. Each division now makes "sense" when sequencing. This is a great tool if you haven't started sequencing all your songs yet.

djulien
09-28-2009, 11:33 PM
Any plans to turn this into a Vixen plug-in? It would be very convenient to enter those parameters directly within Vixen, and then have it set those beats in a beat channel.

don

JonathonReinhart
09-28-2009, 11:41 PM
Yes. I'd been planning on it. College is kind of kicking my butt at the present though... If anyone would like to take my electronics systems test wednesday, I'll promise to have the plugin done by friday :-)

I'm not sure yet if KC has the all of interfaces available to do this though (both setup the event period, and insert events). I'll be looking into it though. Do you guys typically add a dummy channel at the beginning or end for a beat track?

Virtus
09-29-2009, 08:59 AM
Do you guys typically add a dummy channel at the beginning or end for a beat track?

It would be neat if you could do it like the Audio Visualizer across the top so the beat track is always visible when you scroll down a long list of channels.

51fordf2
09-29-2009, 12:00 PM
It would be neat if you could do it like the Audio Visualizer across the top so the beat track is always visible when you scroll down a long list of channels.

Yeah!! I second that!!! That's my biggest problem - carrying the beat track down with 256 channels to sequence....

R

djulien
09-29-2009, 12:59 PM
If anyone would like to take my electronics systems test wednesday, I'll promise to have the plugin done by friday

What kind? (jk)


I'm not sure yet if KC has the all of interfaces available to do this though (both setup the event period, and insert events).

Yes, those interfaces are available. Some of the plug-ins use the interfaces to set channel values (such as the RGB add-in tool), and to get the event period they typically just ask the XML node for the data.


It would be neat if you could do it like the Audio Visualizer across the top so the beat track is always visible when you scroll down a long list of channels.

That would be very nice! I don't think the interfaces are there to do that (at least not in 2.1.x). An approximation to that could be done using an approach like the Cue Sheets, but that doesn't really give the accuracy that would be needed for beats.

However, it could probably be done by disassembling the Visualizer code or surrounding MDI child window and then modify the paint logic.


That's my biggest problem - carrying the beat track down with 256 channels to sequence....

It would also be nice to generalize this to "sticky channels" - that is, designate one or more channels to always display at the top and bottom of the currently viewable portion of the grid. That would avoid a lot of awkward copy and paste work down within the grid.

don

Virtus
10-07-2009, 02:55 PM
Today I discovered that the RANDOM button in Vixen, when selecting varying intensities and a length = 8 (which will be once per beat), can produce very nice in sync (though not syncronized, but the correct rate) changes.

djulien
10-08-2009, 11:28 PM
Today I discovered that the RANDOM button in Vixen, when selecting varying intensities and a length = 8 (which will be once per beat), can produce very nice in sync (though not syncronized, but the correct rate) changes.

Thanks for sharing that! Then it's easy to slide it left or right to line up with the music.

It looks like you can also get 1 cell per beat (rather than the whole length as specified in the Random window), making it easier to see the start of each beat, as follows - While the cells are still selected with the mouse, if you then copy to clipboard, then move the selection left or right 1 position, then use XOR (boolean paste), you'll get a blip at the start of each of those intervals, rather than the whole beat. ie: X---X---X instead of XXXXxxxxXXXX etc.

don

P. Short
10-09-2009, 10:23 PM
This is a bit late in the discussion, and I may be commenting more on Jonathon's comments than on the reality that people encounter using his tool, but...

You are not going to get anywhere near 10 ms accuracy in the timing of any AC-based lights using serial communications. In fact, I think that you would be lucky to get 25 ms accuracy. First, the controllers only change the intensity of the lights every half-power-line cycle (8.33 ms in North America). Second, you can't really control which half-cycle a given change in intensity will happen, because the data packets sent out by the computer are not synchronized to the power line, which means that the data in various parts of a given packet may affect the output lights on different half-cycle periods. There are a lot of other effects in the computer that will introduce variable delays and jitter into both the audio and visual outputs...it would take a lot more design effort (and possibly system cost) to get things more precise than around 25 ms.

JonathonReinhart
12-10-2009, 04:04 AM
Now that I actually have a show under my belt, and am not just shooting from the hip anymore. I'd like to *partially* retract my timing statements. 5-10ms is unrealistic, but I feel that being off by one 50-58ms event is definitely noticeable, to my eyes anyway.

I used this tool for all of my sequences but the first one, and it really is amazing how much easier it is to sequence something that's properly set at say 56ms instead of 50ms.

Obviously, you will have to insert/remove occasionally to re-sync things throughout the song, but for most parts you will be within the "noticeable" timing tolerance.

Next step, TapTempo add-in....

JonathonReinhart
12-10-2009, 07:03 AM
Alright, sooo I got a little side-tracked and ended up writing the dang thing tonight :-)
http://lights.onthefive.com/vixen-plugins

Feedback welcome.

Virtus
12-10-2009, 09:07 AM
Alright, sooo I got a little side-tracked and ended up writing the dang thing tonight :-)
http://lights.onthefive.com/vixen-plugins

Feedback welcome.
I used the web tool for all my sequencing this year and it definitely made the whole process easier. I can't wait to try this add-in!

wjohn
12-10-2009, 04:09 PM
Jon,

great work. Brian (our Admin) mentioned to me a few years ago that a Musically trained DIYCer gave a lesson at one of the NY/NJ get togethers, her comments are aligned to the general thrust of your post.

I've found that many songs have a accurate beat/click, and it is the older tracks that do seem to vary. E.g for Halloween, I used Thriller and there is a very accurate 2/4 beat, yet for Christmas we have the Jackson's "Can you feel It" , and it has variation thru the song. (ok, not a xmas track but seeing 21 y o girls dancing in the street is kinda cool).

Great to see you diving in to the pool in your first year.

John.

JonathonReinhart
12-10-2009, 04:13 PM
(ok, not a xmas track but seeing 21 y o girls dancing in the street is kinda cool).

Great to see you diving in to the pool in your first year.

Hence the reason I did the Black Eyed Peas - "I Gotta Feeling"... girls go nuts for this song.

Diving in, I definitely am. I'm so addicted, it's not even funny. This is a great community of people to work with / help out / and learn from.

rcouto
12-10-2009, 05:12 PM
Wow, this tool sounds great and cannot wait to give it a try. However I have elected to use vixen 2.1 due to some issues with 2.5. It would be great if it could be adapted for the users of vixen 2.1

Thanks!
Ricardo

jonsdog7
12-10-2009, 05:48 PM
Great Idea

JonathonReinhart
12-10-2009, 06:21 PM
Actually, I just tried it, and it does work in 2.1... IAddIn must have not changed from 2.1 to 2.5, unlike IEventDrivenOutputPlugin. I'll update my page.

bobkeyes
12-11-2009, 10:47 AM
The program is great. I have used the web based several times with excellent results.

Now I want to use the plug in, but I don't know where to put it. I am assuming it goes in the plugin directory, but which folder?

Thanks for your help and please excuse my inexperience.

budude
12-11-2009, 11:01 AM
Hi Bob - it goes into the AddIns directory (there are no sub-directories)

51fordf2
12-11-2009, 11:21 AM
I'm curious, too...where does it go? I tried in the plug-in folder, under outputs, and in the addin folder. The add in gave me an error - and the plug in folder, it didn't show up either, but no error...

??

R

51fordf2
12-11-2009, 11:31 AM
EDIT - Running 2.1.1...

Here's the error, in the addins folder (is it just me??):

bobkeyes
12-11-2009, 12:24 PM
Great! It seems to work perfectly.

Thanks for the program and the help getting it installed.

JonathonReinhart
12-11-2009, 05:14 PM
Now I want to use the plug in, but I don't know where to put it. I am assuming it goes in the plugin directory, but which folder?

No worries :-) I haven't gotten around to adding any info to the webpage. It goes in your "...\Program Files\Vixen...\AddIns\" folder. Then just open (or create new) a sequence, and go to Add Ins -> Tap Tempo. Then click Play Audio, and start tapping. When you click OK, it will copy the event period to the sequence. I recommend doing this before doing any sequencing, because vixen will adjust all existing events.

Let me know what you think!

51fordf2
12-11-2009, 06:05 PM
Jonathon - any ideas on the error I am getting (see my post above)?? I put it on my laptop, at work, where I do most of my sequencing, and didn't get an error. So, I'd really like to get it straightened out on my desktop...

Reinstall Vixen, maybe??

thanks,

Roger

Blackbeard
12-11-2009, 11:10 PM
The Add-In loads fine for me, but there seems to be a little problem when using it. If I hit "Play Audio", the music starts, but once I hit any key for the tap, the "Play Audio" toggles between playing and not playing. This was tried on a sequence I had already setup and started sequencing, so I don't yet know if this has anything to do with the problem or not.

Using Vixen 2.1.3.

Any ideas?

steve

Blackbeard
12-11-2009, 11:18 PM
OK, I updated to 2.1.4 with no improvement, but think I found a quirk.

As long as I was using the space bar for the tap key, I'd get the toggle between "Play Audio" and "Stop Audio". I tried using the colon/semi-colon key, and all seemed well.

Just an FYI.

steve

rcouto
12-13-2009, 12:34 PM
I love it! this tool works great!

I'm using it with Vixen 2.1

Thanks Jonathon!!!!!

JonathonReinhart
12-16-2009, 04:26 PM
I've updated the plugin to 2.5.0.3 It now only responds to left/right CTRL keys, to avoid confusion, and to keep the spacebar from activating the stop button. I also added an option to insert the beats directly into the sequence on whatever channel you wish. It inserts them right at the beginning, so you will need to insert/remove to get the beats to line up to the music, however.

51fordf2 - See if the new version helps at all. Upgrading to the latest 2.1.x of vixen may help, because I have no idea where that error is coming from.

IdunBenhad
12-17-2009, 08:48 AM
Hi:
Jonathon, I realize this is kind of late, but I have been very busy with the lights, etc. This being my first year, I am drowning in the afterglow!

If you could change the color of the vertical grid lines "on the beat", that would be very handy.

In other words, the beat indicator would show up as a vertical RED (or other color) line while the rest of the grid lines remain as they are. This would ensure that the beat lines would remain visible throughout the sequencing grid even with a large number of channels (I don't have very many yet). I don't know what kind of programming this would take and it may not be practical, but if it could be done, it would be most helpful.

Just a suggestion. Thanks for a neat and useful program.

Merry Christmas Lights

Idun

JonathonReinhart
12-17-2009, 01:34 PM
Idun,

I would love to be able to do this, but it is not possible the way Vixen's interface is right now. Vixen provides me the sequence, and I just add event data to it. Changing the grid line color would require modifying the StandardSequence's Draw() function, which I cannot do, as it is part of Vixen.

This is definitely something I've had in mind though, should I ever be able to work with development of Vixen itself.

IdunBenhad
12-17-2009, 04:51 PM
Hi:
I don't know much about the programming, but I do realize what you are saying about the internals of Vixen.

Maybe it could be done as an overlay on the grid line. If you can fill in the cell with the beat marker, maybe you could also overlay that line and not have to get into Vixen itself.

Thanks for your reply and your efforts on the add-in. It works great.

Merry Christmas Lights

Idun

CrazyG
12-19-2009, 03:35 PM
I also added an option to insert the beats directly into the sequence on whatever channel you wish. It inserts them right at the beginning, so you will need to insert/remove to get the beats to line up to the music, however.


Nice Add-In!

Now being occasionally lazy, I'd wish for a built in click track the user taps to prior to tapping to the actual song, the add-in calculates the users response delay and then adjusts the beat insertion for this user's pokey finger...

Thanks for the Add-in, very useful.

JonathonReinhart
12-19-2009, 05:41 PM
Now being occasionally lazy, I'd wish for a built in click track the user taps to prior to tapping to the actual song, the add-in calculates the users response delay and then adjusts the beat insertion for this user's pokey finger...

Actually, that would be unnecessary. As your response delay is constant, the intervals between beats you tap are still the same as the actual beat. So your resulting BPM should still be accurate.

This is analogous to differential signaling (http://en.wikipedia.org/wiki/Differential_signaling).

jpb
12-20-2009, 01:47 AM
This is brilliant.

I sort of want to start sequencing some new songs for 2010 righ t now just so that I can use it. Well done.

Jon (actually another Jonathon)

CrazyG
12-21-2009, 01:14 AM
Actually, that would be unnecessary. As your response delay is constant, the intervals between beats you tap are still the same as the actual beat. So your resulting BPM should still be accurate.

This is analogous to differential signaling (http://en.wikipedia.org/wiki/Differential_signaling).

Agreed, but what I was trying to convey was the idea of the add-in moving the beat to align closer to the music when it inserts the beat events into the sequence, thus minimizing (or best case eliminating) the need to insert paste and such to align the add-in generated beats to the audio track... or something like that.

JonathonReinhart
12-24-2009, 01:37 PM
Agreed, but what I was trying to convey was the idea of the add-in moving the beat to align closer to the music when it inserts the beat events into the sequence, thus minimizing (or best case eliminating) the need to insert paste and such to align the add-in generated beats to the audio track... or something like that.

Ah - sorry, I totally missed what you were getting at. My bad - I understand now. Well, after the first beat, is your reaction time going to be any worse than one event period? Perhaps I can just grab the timestamp of the second or third keypress, and use that as my reference point to insert (both forward, to the end of the song, and backward a few beats to the beginning). I'll play around with this.

The ultimate here would be an add-in that does automatic beat detection, but that would be a lot bigger deal than this add-in. But I wouldn't put it past my spontaneous tendencies :-)

mkess
07-11-2010, 01:32 AM
Dont mean to bring back an old thread, but man this thing is AWESOME!!!!!!!!!!!!! Just went back and redid a song I am working on for this year and after running the add in it moved everything closer to where it should be and WOW it looks 100x better. Thanks for this

JonathonReinhart
07-11-2010, 05:51 PM
Great to hear, mkess! Thanks!

Virtus
07-31-2011, 12:02 PM
I just used Jonathon's website to tap out my 2011 songs. I highly recommend this technique before you begin sequencing as it makes copy/paste work out perfectly and greatly increases your sequencing efficiency.

Greg in Canby
08-01-2011, 12:40 AM
I just used Jonathon's website to tap out my 2011 songs. I highly recommend this technique before you begin sequencing as it makes copy/paste work out perfectly and greatly increases your sequencing efficiency.
I'm planning on it! Thanks Jonathon.

JonathonReinhart
08-15-2011, 10:58 PM
Thanks for the compliments, guys! Just thought I'd let you know, that I am one of the guys on the Vixen 3.0 dev team and we are working really hard to make this as awesome as possible. And, I'm definitely keeping this plugin and all your comments in the back of my mind while we work on the UI. Stay tuned!

daytimer
01-17-2012, 09:11 PM
Excellent! I'm still learning the ropes, but this seems like it will be a huge help.
Would it be possible to be able to manually enter the bpm rather than having to tap it out? I found the bpm to a song listed on a website, but I can't simply type it in to the add-in.

Slite
01-18-2012, 04:00 AM
daytimer: Exactly what I was wondering when I read the thread... I usually use this http://www.mixmeister.com/bpmanalyzer/bpmanalyzer.asp to check what bpm a song has. Did use it when I set together my music selection for running (90 bpm songs)

Since I totally SUCK at keeping a beat, I would like to be able to analyze the bpm's and just enter them :)

Traneman
01-18-2012, 09:54 AM
Slite,
would you check that site? I get this from Norton "Malicious Web Site Blocked"
Thanks

Slite
01-18-2012, 11:27 AM
I sincerely doubt that... If so Norton is doing a fals positive. Mixmeister is a really serious company that has a lot of really great products. They just give the bpmanalyzer away for free.

Does norton block the main site as well? Or just the link I posted?

WireWrap
01-18-2012, 01:46 PM
I had no problem on that link with Symantec Endpoint.

daytimer
01-18-2012, 05:03 PM
After a little messing around, I found a fairly good way for me to get a beat down using Tap Tempo. I get too goofed up when I am listening to the music and hearing myself hit the keyboard. I put on headphones, cranked the sound (to an acceptable, non-dangerous level :p), closed my eyes and tapped away. After that, I used the visualizer and listened to questionable spots to get the beats where they matched up. I am going to go back over it a few more times to make sure I get the beats where they need to be, but I'm fairly confident the timing will be very good.
That's what worked for me. Your results may vary :cool2: