Skip to main content
Topic: Changing default dynamic volumes (Read 5479 times) previous topic - next topic

Changing default dynamic volumes

I've spent hours studying dynamic variances, velocities, and volumes.  It seems to me that the need for the "Change Dynamics" user tool could be alleviated, if the default volumes for dynamics (ppp, pp, etc.) could be set in one place, similar to how default dynamic velocities are set, that is, by a command such as \=DynVel(15,30,45,60,75,90,105,120) the nwcitree files.  Is there any way to set default dynamic volumes in one place?

(This is especially important to me, since User Tools still don't work on my main PC, because I have a full installation of PHP on it...see my.noteworthysoftware.com/?topic=6848.0).

Re: Changing default dynamic volumes

Reply #1
These are all the commands that change Channel Volume:
Staff Performance Properties
Insert Dynamic Command
Multi-point Controller Command
Dynamic Variance Command
None of them will associate a particular Volume with a Dynamic. The Volume needs to be specified with each dynamic.

Except for long notes which can be swept with Volume and Expression MPC's, most folks rely on Note Velocity for dynamics.

I keep the Volume the same thoughout the song and use an Expression MPC in those places where changing Note Velocity is ineffective or problematic. That way I can "balance" the MIDI Channels to supress or bring out a particular part.
Registered user since 1996

Re: Changing default dynamic volumes

Reply #2
Tina Billett wrote an excellent guide to Dynamics which includes a section on creating a purpose built user tool (using Andrew Purdam's user tool Global Mod) to change dynamic volumes in an nwc file.

Well worth a read / study.

It can be found on the Scriptorium at :
http://nwc-scriptorium.org/helpful/dynamics.pdf
Rich.

Re: Changing default dynamic volumes

Reply #3
This script changes the velocity to 127 for all dynamics and the volume to whatever you want to specify if you need to change the defaults.  It is used for instruments which produce a sustained sound (violin, oboe, horn, for example) and can change dynamics while on one long note.

This works on nwctxt only--cut the staff to the textarea of the page, change defaults if need be, click on "Submit" and copy it back to your staff.   HTH

**Edited change**
Forgot the link dynamics.htm.
Since 1998

Re: Changing default dynamic volumes

Reply #4
I studied and implemented Tina Billett's "Change Dynamics" user tool.  Could someone help me modify this command:

php\php.exe Scripts\adp_GlobalMod.php Dynamic,Style==ppp Opts.Volume=50 Dynamic,Style==pp Opts.Volume=60 Dynamic,Style==p Opts.Volume=70 Dynamic,Style==mp Opts.Volume=80 Dynamic,Style==mf Opts.Volume=90 Dynamic,Style==f Opts.Volume=100 Dynamic,Style==ff Opts.Volume=110 Dynamic,Style==fff Opts.Volume=120

so that it changes velocities as well as volumes for each of those dynamics?  That would give me a useful work-around.  Thanks.

By the way, my initial point was that dynamic changes should affect both velocity and volume.  I believe NWC would do that by default, if the default values for volumes could be set for each dynamic, just as they already are set for velocity by the command \=DynVel(15,30,45,60,75,90,105,120) in the nwcitree files.  We just need an equivalent command for "DynVol", but perhaps that would require code changes.  It sure would avoid a huge number of work-arounds and make dynamic volume changes work effectively.

Re: Changing default dynamic volumes

Reply #5
IIRC there is a 512 character limit on the command line so some things don't fit.  This one is some 400 characters so should be OK...  If not you'll need to run 2 tools in succession.

However, if it does fit then this should work.  You'll need to change all th "nn"s to whatever numbers you want.

The change made to Tina's original is to add ",Velocity=nn" after the "Opts.Volume=nn" portion of each dynamic.  (where "nn" is the required velocity or volume setting)

php\php.exe Scripts\adp_GlobalMod.php Dynamic,Style==ppp Opts.Volume=50,Velocity=nn Dynamic,Style==pp Opts.Volume=60,Velocity=nn Dynamic,Style==p Opts.Volume=70,Velocity=nn Dynamic,Style==mp Opts.Volume=80,Velocity=nn Dynamic,Style==mf Opts.Volume=90,Velocity=nn Dynamic,Style==f Opts.Volume=100,Velocity=nn Dynamic,Style==ff Opts.Volume=110,Velocity=nn Dynamic,Style==fff Opts.Volume=120,Velocity=nn

If you need to run 2 tools, then I'd suggest leave Tina's original tool as it was (with possible changes to the Volume numbers she has selected) and then make your supplementary tool the same as Tina's except for replacing the "Opts.Volume" parameter with "Opts.Velocity" and also change the numbers to suit your requirements.  Then simply run the two tools one after the other.  Changes made by one will not be affected by running the other.

I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.

Re: Changing default dynamic volumes

Reply #6
I have modified dynamics.htm to accept cookies for three months.  If you modify any dynamics, those changes will be there if you use the page again in the near future.

To restore default dynamics, click on "Erase cookie" on the page.
Since 1998

Re: Changing default dynamic volumes

Reply #7
Interesting topic. A User Tool to modify volumes is not complicated once you get the correct input from the user. It occurs to me that Instrument Change Command is a near perfect user interface. So, I present this tool:
Code: (php) [Select · Download]
<?php // rg_DynVolMod.php ver 1.0
define('URL', 'http://my.noteworthysoftware.com/?topic=7739.0');
$styles = explode('|', 'ppp|pp|p|mp|mf|f|ff|fff'); // ordered Dynamic Styles
require_once("lib/nwc2clips.inc");
$io = gzfile('php://stdin'); // allow compressed input, fwiw

if ($patch = preg_grep('/^\|Instrument\|Name:\"[Xx]\"/', $io)) { // X or x
$o = new NWC2ClipItem(current($patch)); // 1st match in selection (or file)
if ($o->Opts['Name'] == 'X') unset($io[key($patch)]); // remove
$dynVel = array_combine($styles, $o->GetTaggedOptAsArray('DynVel'));

foreach(preg_grep('/^\|Dynamic\|/', $io) as $k=>$v) {
$o = new NWC2ClipItem($v);
if ($dynVel[$o->Opts['Style']] == '1') continue; // ignore
$o->Opts['Opts']['Volume'] = $dynVel[$o->Opts['Style']];
$io[$k] = $o->ReconstructClipText().PHP_EOL;
}
echo join($io);
if ($argc > 1) exit(NWC2RC_REPORT); // any arg causes report
} else fwrite(STDERR, ' See: '.URL); // err if no matching patch
?>
and this nwctxt to try it out on:
Code: (nwc) [Select · Download]
!NoteWorthyComposer(2.5)
|AddStaff|Name:"Staff"
|Instrument|Name:"X"|Trans:0|DynVel:1,30,45,60,75,92,108,1|Pos:7
|Dynamic|Style:ppp|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:pp|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:p|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:mp|Pos:-7|Wide:Y
|AddStaff|Name:"Staff-1"
|StaffProperties|BoundaryTop:10|BoundaryBottom:10
|StaffProperties|Channel:2
|Dynamic|Style:mf|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:f|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:ff|Pos:-7|Wide:Y
|Spacer|Width:300
|Dynamic|Style:fff|Pos:-7|Wide:Y
!NoteWorthyComposer-End
 0.151 rg_ZenTxt v1.0
Registered user since 1996


 

Re: Changing default dynamic volumes

Reply #9
So much easier to use than a pre-defined Global mod, which is what I had been using.
Thanks for the endorsement. Perhaps it will enourage those who need to modify Dynamic Properties on a selection or file level. I am also finding the Filtered Properties Command useful at the selection level.
Registered user since 1996