Cockos Incorporated Forums

Cockos Incorporated Forums (https://forum.cockos.com/index.php)
-   REAPER Q&A, Tips, Tricks and Howto (https://forum.cockos.com/forumdisplay.php?f=21)
-   -   Tempo mapping and manipulation with SWS (https://forum.cockos.com/showthread.php?t=118061)

Breeder 02-10-2013 04:20 AM

Tempo mapping and manipulation with SWS
 
SWS extension now includes a set of features for dealing with tempo. You might ask what's wrong with using native Reaper methods described in Tempo Mapping 101. Well, nothing really - features in SWS build on idea shown in that thread while trying to make the whole process easier without getting in your way.

Download:
Download here

Features and documentation:
Documentation can be found on wiki.cockos and is divided into two parts:

1. Tempo mapping
  • Accuracy (amount of tempo markers per measure) can be selected by the user.
  • Possibility of gradual (and thus more human) tempo map
  • Use MIDI to create tempo map and hear the results immediately.
  • Easier handling of songs with multiple time signatures

2. Tempo manipulation
  • Warp grid
  • Move tempo markers without doing a complete remap
  • Delete or change shape of tempo markers without disturbing the rest of the tempo map
  • Draw tempo map
  • Tools for managing gradual tempo changes
  • Select and adjust tempo in bulk
  • Increase density of the tempo map
  • Randomize tempo

Donations:
A lot of effort has been invested in this. If you seriously use it, please consider supporting the developer. Thanks!

Big thanks goes to user G-Sun for helping with the wiki and all the advice without which gradual tempo would never receive so much love!
Feel free to post questions and feedback ;)

G-Sun 02-10-2013 07:04 AM

Thanks a lot Breeder for coding all these wonderful tools!
Awesome work!

Quick manual:

1) Add markers (just as Tempo Mapping 101)
2) Run action: "sws/br: Convert project markers to tempo markers.."

Done!

dug dog 02-10-2013 07:54 AM

I've been doing mostly grid-based stuff lately, but will have to revisit tempo mapping in the near future to check out these cool new tools.

tls11823 02-10-2013 03:14 PM

I've only had time to give this a quick glance, and it may be a few days before I have a chance to play around, but this looks very encouraging.

Thanks for putting forth the time and effort to lay this out. I think it's going to be quite helpful.

Guido 02-12-2013 07:34 AM

Hi,

A Big thank u to Breeder and G Sun for this!


GSun..have u ever heard of a band from the 40s 50s called the Tune Toppers?

Guido

mwe 02-12-2013 10:45 AM

Any thoughts/plans on something like this for the API?

Code:

bool BR_MoveTempoTimeSigMarker(ReaProject* proj, int ptidx, double timepos)

Breeder 02-12-2013 11:01 AM

Quote:

Originally Posted by mwe (Post 1123627)
Any thoughts/plans on something like this for the API?

Code:

bool BR_MoveTempoTimeSigMarker(ReaProject* proj, int ptidx, double timepos)

Never tough anyone would want to use these commands in ReaScript, lol. Sure, I`ll throw it in, anything else?

mwe 02-12-2013 12:22 PM

Quote:

Originally Posted by Breeder (Post 1123644)
Never tough anyone would want to use these commands in ReaScript, lol. Sure, I`ll throw it in, anything else?

The one that comes to mind is SWS/BR: Delete tempo marker (preserve overall tempo and positions if possible). If you could pass it the index of the marker you want to delete it might be handy.

I have a script that finds the closest marker to the cursor (skipping regions) and moves it to that position. I use it when I tempo map a song to speed up editing marker locations. After reading through the info on your actions, it occurred to me that it might be useful to be able to do something similar with a tempo marker.

Breeder 02-12-2013 12:48 PM

Will do then for those two.

Would you mind if I stole your idea and put another action "Move closest tempo marker to edit cursor" ?
Because it seems really cool and that way it can be available to anybody.

mwe 02-12-2013 02:00 PM

Quote:

Originally Posted by Breeder (Post 1123718)
Will do then for those two.

Would you mind if I stole your idea and put another action "Move closest tempo marker to edit cursor" ?
Because it seems really cool and that way it can be available to anybody.

Feel free. In fact, it's more of a trade actually. I was having a hard time dealing with some of the peculiarities of project markers in Reaper. I took a peek at the SWS source code and found this in one of your actions

Code:

if ((mPos != prevMPos)||(mPos == prevMPos && prevRegion == 1) || (previous == 0))
which I changed to this
Code:

if ((current_marker[4] != previous_marker[4]) or \
  ((current_marker[4] == previous_marker[4]) and previous_marker[3] == 1)) or \
  (previous_marker[0] == 0)) :

Solved my problem. I guess I owe the code base something in return.

G-Sun 02-13-2013 12:07 AM

Quote:

Originally Posted by Guido (Post 1123515)
Hi,

A Big thank u to Breeder and G Sun for this!


GSun..have u ever heard of a band from the 40s 50s called the Tune Toppers?

:) Sorry, no. Should I?

dug dog 02-18-2013 03:23 PM

I gave this a go the other day.

My memory isn't that great but it seems to me that this method is MUCH more straightforward than the older method.

Very nice. Thank you.

Garrick 03-10-2013 03:24 AM

Just used this and key mapped moving tempo markers. So very good. The old tempo 101 is really good bit this is better.

Mr. Data 03-10-2013 01:05 PM

Breeder and G-Sun,

when doing all this programming stuff, I hope you guys find some time to make music in between. :)

-Data

G-Sun 03-10-2013 01:49 PM

Quote:

Originally Posted by Garrick (Post 1138165)
Just used this and key mapped moving tempo markers. So very good. The old tempo 101 is really good bit this is better.

Good to hear Garrick!
Quote:

Originally Posted by Mr. Data (Post 1138411)
Breeder and G-Sun,

when doing all this programming stuff, I hope you guys find some time to make music in between. :)

-Data

Shure. In between soldering preamps, designing and building a studio and reading up on virtual instruments ;)

Mr. Data 03-10-2013 02:53 PM

:eek:

-Data

Tod 03-10-2013 03:35 PM

Hi Breeder and G-Sun, I've got a rather stupid question.

The other day I had a project that I needed to tempo map to an audio track. I took a look in this thread thinking I'd try this procedure instead of the normal 101 way which I'm quite comfortable with.

In short, I was in a hurry and felt kind of baffled in reading through this thread as far as how to proceed. I ended up just doing it the old way.

Anyway, my dumb question is, what would I do different from the old 101 way, what is the significance between the two approaches?

-----------
With the 101 way I just figure out the basic beat and set the Project tempo to it. Then I put markers on the 1st, 2nd, and 3rd bars to give me a 2 bar count-in.

From there I hit play from the front and starting at bar 4, I manually put markers in on each bar to the end of the song. Then I go through and visually adjust each marker to better line up with the front of each bar.

Then of course I run my macro. This works quite well.
-----------

So what do I do different then that? :)

G-Sun 03-11-2013 01:16 AM

Good morning Tod :)
Not a stupid question at all.

If your happy with a resolution of 1/1 (bar, whole-note),
then you can use the old way.
You will however find Breeders action "Convert project markers to tempo markers" faster and better than your macro.

The new Breeder actions would be preferred if you want:
- higher resolution on your tempo-map (like quarter-notes and 8-notes), or
- would prefer linear points, or
- would like a fast workflow of adjusting time-position for individual markers, or
- have a complex project with different time-signatures

In addition there are other tempo-tools
for selecting, converting and adjusting.

Happy tempoing!

buckman 03-11-2013 01:27 AM

Just to clarify, do you mean SWS v2.3.0 #4 (August 30, 2012) ?

Looking by my installed SWS and the latest on the website, these must be the most updated?

I am looking forward to any new tempo based tweaks, especially full length tracks, although having said that and trying (unsuccessfully) with Reaper to record DJ mixes, I have now moved to Ableton which is much better at the job..

I would still be interested though in how Reaper does this in say, an Acid style?

G-Sun 03-11-2013 01:48 AM

Quote:

Originally Posted by buckman (Post 1138753)
Just to clarify, do you mean SWS v2.3.0 #4 (August 30, 2012) ?

Looking by my installed SWS and the latest on the website, these must be the most updated?

I am looking forward to any new tempo based tweaks, especially full length tracks, although having said that and trying (unsuccessfully) with Reaper to record DJ mixes, I have now moved to Ableton which is much better at the job..

I would still be interested though in how Reaper does this in say, an Acid style?

Sorry, it's not implemented in any official release yet.
You need the prerelease found here:
http://code.google.com/p/sws-extension/downloads/list

buckman 03-11-2013 04:51 AM

Quote:

Originally Posted by G-Sun (Post 1138764)
Sorry, it's not implemented in any official release yet.
You need the prerelease found here:
http://code.google.com/p/sws-extension/downloads/list

Ah ok no problem - does it include any media explorer Tempo options for Full tracks, in a DJ style capacity, so they are locked to tempo with the "Tempo Match" ?

I think this is the main thing I am personally looking for...

Breeder 03-11-2013 06:05 AM

Quote:

Originally Posted by buckman (Post 1138815)
Ah ok no problem - does it include any media explorer Tempo options for Full tracks, in a DJ style capacity, so they are locked to tempo with the "Tempo Match" ?

I think this is the main thing I am personally looking for...

Once you tempo map something and return timebase to beats (position, length, rate), items should stretch and change their position in accordance with tempo.
There are some quirks though (only one tempo change allowed per item). Read more here: http://wiki.cockos.com/wiki/index.ph..._tempo_markers

And btw, check pre forum for some interesting new features in regards to your question

buckman 03-11-2013 06:24 AM

Ok thanks.. I did see some bits in the Pre.. but its just full tracks to tempo sync once dragged into a project that I am looking at..

A bit like Mixmeister does with puttting its own warp and beat markers in so it guesses the correct tempo 99% of the time.

Although Ableton makes you warp a track before hand, I have now discovered and clicked with warping, and it does do a really good job, so maybe Reaper can't compete?

Tod 03-11-2013 09:24 AM

Quote:

Originally Posted by G-Sun (Post 1138746)
If your happy with a resolution of 1/1 (bar, whole-note),
then you can use the old way.
You will however find Breeders action "Convert project markers to tempo markers" faster and better than your macro.

The new Breeder actions would be preferred if you want:
- higher resolution on your tempo-map (like quarter-notes and 8-notes), or
- would prefer linear points, or
- would like a fast workflow of adjusting time-position for individual markers, or
- have a complex project with different time-signatures

In addition there are other tempo-tools
for selecting, converting and adjusting.

Thanks Geir, it all makes sense now.:)

G-Sun 03-11-2013 11:59 AM

Making a tempo map
 
I'd like to share with you my typical workflow,
that may be a little different than others do things.

I'll guess typical tempo-mapping is about nailing the most accurate map of the recorded audio.
My approach is more aimed at creating a best possible tempo-map for a song, from scratch.

I'll often start with a
1) Cue/scratch take with let's say vocal, acoustic guitar and tapping my foot. Often just one mic.
then
2) I tempo-map it, using a resolution of 4/4 or 8/8.
I do prefer linear tempo, but maybe square is more practical for this. Accuracy is not the big point. The main goal is getting basic values for tempo, as it changes through the song.
then
3a) I delete as many tempo-markers as possible, without loosing important changes, tweaking and deleting more. I'll insert a meteronome. And I'll split the cue track on my resolution, to follow all tempo-changes. Or
3b) I open a new/blank project. And use the tempo mapped first project as a guid-line.
4) I'll try to add midi-based instruments first, to allow more changes to tempo if necessary.
5) I'll sing through the song, and commit to the tempo-map
6) I'll add audio-based tracks and whatever is needed

I'm very happy with Breeders help in making a good tempo-workflow possible. Yet, there are a few FRs left to make 3b) my preferred way :)

I'll upload a few pictures if anyone's interested.

Best

Tod 03-11-2013 12:42 PM

Quote:

Originally Posted by G-Sun (Post 1139027)
I'll upload a few pictures if anyone's interested.

Sure I'd like to see them. :)

sears 04-05-2013 07:42 AM

I'm sure I'm missing something basic. This is my first time using any SWS extensions.

I don't see the SWS actions the wiki talks about. The two SWS/BR actions I can find by pressing "?" are

SWS/BR: Move edit cursor to next tempo marker
SWS/BR: Move edit cursor to previous tempo marker

I just reinstalled the latest version of the SWS.

dug dog 04-05-2013 08:12 AM

This might help. The version you need is a pre-release version 2.3.0.13 or later available here:

http://code.google.com/p/sws-extensi...bel:Prerelease

Garrick 04-06-2013 08:39 PM

This is working so well thank you very much
Cheers gsun, always thought you were a good sort, and breeder i'm sure you're good sort to.

:D

sears 04-07-2013 07:09 AM

Quote:

Originally Posted by dug dog (Post 1155120)
This might help. The version you need is a pre-release version 2.3.0.13 or later available here:

http://code.google.com/p/sws-extensi...bel:Prerelease

There I go. What a snap. Thanks!

mwe 04-08-2013 10:07 AM

Quote:

Originally Posted by Breeder (Post 1123718)
Will do then for those two.

Would you mind if I stole your idea and put another action "Move closest tempo marker to edit cursor" ?
Because it seems really cool and that way it can be available to anybody.

Just got a chance to try this. Only a dummy project and brief run through but seems to work great. Thanks.

G-Sun 04-11-2013 09:33 AM

Updated info with a short version for those confused by all actions and options :)

http://forum.cockos.com/showpost.php...07&postcount=2

Tod 04-11-2013 10:29 AM

Quote:

Originally Posted by G-Sun (Post 1158900)
Updated info with a short version for those confused by all actions and options :)

http://forum.cockos.com/showpost.php...07&postcount=2

Heh heh, there you go... :)

nofish 04-11-2013 12:35 PM

Just wanted to say thanks for all the work that went into this.

Used these new actions recently (with the help of the Wiki entry, so thanks for this also), worked out like a charm.

http://forum.cockos.com/showthread.php?t=120591

Breeder 04-11-2013 01:10 PM

Quote:

Originally Posted by mwe (Post 1156994)
Just got a chance to try this. Only a dummy project and brief run through but seems to work great. Thanks.

And thank you for the neat idea - it is needed neat for faster workflow!

Quote:

Originally Posted by nofish (Post 1159040)
Just wanted to say thanks for all the work that went into this.

Thank you! It`s a great thing to see all those sleepless nights learning C++ actually helped other people too :D

heda 04-11-2013 01:31 PM

Thank you indeed
I would not be able to use reaper without these tempo mapping features. Not everybody working at fixed tempo ;)

dug dog 04-11-2013 01:54 PM

Quote:

Originally Posted by G-Sun (Post 1158900)
Updated info with a short version for those confused by all actions and options :)

http://forum.cockos.com/showpost.php...07&postcount=2

:D Nicely summarized. Gave me a good laugh. And, again, many thanks.

G-Sun 04-12-2013 01:48 AM

1 Attachment(s)
Quote:

Originally Posted by Breeder (Post 1159057)
Thank you! It`s a great thing to see all those sleepless nights learning C++ actually helped other people too :D

Award for you:
http://forum.cockos.com/attachment.p...1&d=1365756451
:)

Tod 04-16-2013 03:56 PM

Hi G-Sun, Breeder, and all.

I may have found a problem with tempo mapping. Actually finzic came across it first.

http://forum.cockos.com/showthread.php?t=104927

This has nothing to do with you guys and your tempo mapping actions. I believe this is a problem with Reaper.

It will not process BPMs of 240 and over. It works fine with BPM-239 but from 240 on it basically cuts the BPM in half. BPM-240 becomes 120, BPM-260 becomes 130, etc..

Also instead of createing full measure tempo markers it's making them half measure tempo markers. In other words instead of going from Bar-1/Beat-1 to Bar-2/Beat-1 it's going from Bar-1/Beat-1 to Bar-1/Beat-3. You can see that in the pict below. The Project Settings remained the same but the Transport BPM changed which makes sense.

https://stash.reaper.fm/16180/Tempo%2...%20Bug%201.PNG

Heres a picture of trying to create double time with a basic 120-BPM project. In other words going from BPM-120 to 240. It just doesn't like BPM-240 and above.

https://stash.reaper.fm/16181/Tempo%2...%20Bug%201.PNG

This should probably be in the Bug reports but I wanted to run it by you guys first in case I'm missing something.:)

Breeder 04-16-2013 03:59 PM

I'm not having problems with BPM over 240 here. It's all normal.

Can you please pm with the problematic project and the settings you're using for converting?


All times are GMT -7. The time now is 07:46 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.