NoteWorthy Composer Forum

Forums => General Discussion => Topic started by: TonyQ on 2016-02-21 11:45 am

Title: Relative speed changes?
Post by: TonyQ on 2016-02-21 11:45 am
I have a massive collection of songs in NWC, having used the program for many years.  It's fantastic, and I keep finding new features that I'd missed.  I wonder if this is one of them ...

Most of the songs I enter are there to print out a piano score and parts for other instruments.  To that end, I usually don't actually bother setting the tempo on them.  In a few cases, however, I want to produce a midi file as well, and then I have to set the tempo correctly.  (When I don't, it leads to some very odd pieces of music!)  I've also learnt to use tempo variances - things like ralentando - and that's where the question lies.

Is it possible to specify a ral (or rit, etc.) as a percentage of the original tempo?  I suspect it's not.  It would also need an "a tempo" command afterwards.  The benefit of this would be enormous to me, because I sometimes change my mind as to how fast a song should go.  If the rals were just a percentage, then I'd only need to change the tempo once at the start, whereas without that, I have to change every one of the tempo commands in the song ... with potentially disastrous consequences if I miss one.

Thanks.
T
Title: Re: Relative speed changes?
Post by: Richard Woodroffe on 2016-02-21 12:13 pm
Tempo variance instructions work by comparing the tempo instruction before the variance with the tempo instruction after the variance and the changing the tempo accordingly. So if you have a tempo instruction at bar 20 of say 1/4 = 80 and then a rall instruction at bar 40, NoteWorthy will look forward for the next tempo instruction after  bar 40 and reduce the tempo gradually from bar 40 to the tempo specified at the next tempo instruction.

So in other words, for a tempo variance to work, there must be a tempo instruction before and after the variance instruction on the same staff.

It should be noted that if the tempo mark after the variance is greater than the tempo mark before the variance, then the speed will increase even though the variance instruction is to get slower.

Title: Re: Relative speed changes?
Post by: Flurmy on 2016-02-21 12:53 pm
Long ago Warren did a tool for this.
I hope he has not to object if I attach his tool here.
Title: Re: Relative speed changes?
Post by: TonyQ on 2016-02-21 06:45 pm
Thanks for the explanation, Rich.  I understand what needs to be there for it to work at present.  What I had in mind was that at the end of a ral, for example, I might put a "Relative Tempo" of say "-10%" and it would work that out based on the actual tempo before that.  Clearly that doesn't exist today, or someone would have pointed me to it.  Shame!

Instead, I'll have a look at Warren's modify tempos tool.  It sounds as though that should do pretty much what I need.

Thanks.
Title: Re: Relative speed changes?
Post by: Warren Porter on 2016-02-21 11:01 pm
Long ago Warren did a tool for this.
I hope he has not to object if I attach his tool here.
No problem.  I need to look into creating a javascript tool for that.  Last worked on October of 2014.  I don't have a hobby website anymore where I used to keep those tools.

tchange.htm (http://www.wjporter.com/nwc/tchange.htm)

Link to page in new site.
Title: Re: Relative speed changes?
Post by: Flurmy on 2016-02-22 08:42 pm
Well, for what is worth, I'm already working on a php user tool.
With a bit of patience...
Probably it will be a bit less sofisticated than Warren's tool. :)

P.S. I'm not expert at all in php, but I'm even less expert in lua. Maybe I should start to study lua... time permitting.  :(
Title: Re: Relative speed changes?
Post by: Flurmy on 2016-02-22 09:14 pm
Talk about reinventing the wheel...
Look at the first page of the attached file!
Title: Re: Relative speed changes?
Post by: Warren Porter on 2016-02-22 09:19 pm
I need to work on lua myself.  JavaScript works for user tools but it isn't as 'programmer friendly' as other languages in NWC.  Right now the tool will take your tempo factor, the inverse of that factor, or just "give me the current and requested duration of your song and I'll figure out the factor".  It might be a problem selecting which factor to select.

It's straightforward to change a tempo indication, but changing an MPC:Tempo was the hassle and a half, IIRC.
Title: Re: Relative speed changes?
Post by: Flurmy on 2016-02-22 09:47 pm
MPC:Tempo - a false "controller".
I always wondered what's good for...
Is it a relic of a far past?  ;)

I was looking in the help for an explanation of the "User Tool Description", but I found none.
Am I missing something, as usual, or it's really not present in the help?
Title: Re: Relative speed changes?
Post by: Rick G. on 2016-02-22 11:02 pm
MPC:Tempo - a false "controller".
Tempo and Pitch Bend are not controllers.
Also, tempo affects the entire song. Tempo changes affect all devices.
Title: Re: Relative speed changes?
Post by: Bart on 2016-02-23 11:43 am

I tried to learn LUA a few months ago, but I must admit it was tough for me.
That's the reason that I started a new topic in the tips and tricks section. My "sibling" script and some explication may help new LUA script writers to avoid some pitfalls.
https://forum.noteworthycomposer.com/?topic=9327.0
Title: Re: Relative speed changes?
Post by: Flurmy on 2016-02-23 09:15 pm
Tempo and Pitch Bend are not controllers.
Yes, I knew this. (Indeed I wrote: a false "controller").
My question was: since there is the possibility of using the tempo indications and the tempo variances, and that's much simpler an clearer than using the MPC, what's MPC:Tempo good for?
Maybe long ago (version 1.xx) the tempo variances were mere texts... I don't remember.

And my second question was: where are the options "input type" and "options" documented?
Title: Re: Relative speed changes?
Post by: Opagust on 2016-02-27 11:02 am
This may be helpful (it was for me):
http://www.lua.org/manual/5.3/ (http://www.lua.org/manual/5.3/)
http://www.lua.org/pil/contents.html (http://www.lua.org/pil/contents.html)