Phil: That's great information. I'm a novice coming to digital from analogue. I hope to get to the point where I can use this information. Thanks ----- Original Message ----- From: "Phil Halton" <philhalt@xxxxxxxxxxx> To: "ddots-l" <ddots-l@xxxxxxxxxxxxx> Sent: Saturday, December 23, 2006 2:36 PM Subject: [ddots-l] New functionality for Sonar > Hello Listers, > > As you may or may not know, Sonar has a scripting facility called CAL > (Cakewalk Application Language). CAL Scripts can be run from within Sonar > and perform specialized tasks on Sonar data in ways that can't be achieved > through the menu system commands. Its similar to how JAWS allows for > scripts to be written to give additional functionality to JAWS--CakeTalking > scripts for example. > > What follows is a brief description of one such CAL program. If there is > any interest in this sort of additional functionality for Sonar, I could > probably package it up and distribute it via a file sharing site-in the same > way Chris Smart distributed his great tutorial collection. > > The CAL program I refer to is called "Strum" and I've been using it with > good results, although its still technically in beta testing. > > > > Notes on use of the "Strum.cal" program > > this program alters chords in a selected region of a sequence in such a way > as to simulate a strum effect--as though strumming a > guitar. It recognizes a chord to be any set of two or more notes that > reside at the same time line position. The maximum chord > size it will handle is 6 notes. If it encounters more than 6 note events at > the same time position, it will indicate the MBT position > of the chord along with a message that the chord size is exceeded, and then > terminate. > > Preparing the Sequence region: > > First, select the region you want to modify. Then run the CAL program--it > will affect only the data selected. CAL programs are > > run by selecting Process|Run CAL from the sonar menu system. Then browse to > the strum.cal file and press enter. A note of > > caution--it is important to first perform a "bounce to clips" on the > selected region before using this CAL (or any CAL) program. > > The reasons have to do with the way sonar stores sequence data. Without > getting in over my head on this, if you've done any > > editting on the sequence, then the data will most likely be stored in > "clips", and clips will be out of sequential order. You won't > > notice it, but CAL will, and results will be very screwy. So, just get in > the habit of doing a bounce to clips before running CAL > > programs. Also, you will need to re-select the region after the Strum > program runs. This is because Strum actually erases the > > origional sequence and re-writes it as a new sequence in the same time > region. CakeTalking will report that the region is still > > selected, but it will be unaware of the changes and the region it thinks it > sees as selected is actually no longer in existence. So, > > simply press control enter again to re-select the region. > > Input Parameters supplied by the User > > Strum lets you alter three aspects of a chord; the span, or spacing of the > notes in the chord, the velocities of the individual notes > > and the duration of each note in the chord. You can choose to alter any of > the three aspects, singularly, or in any combination. > > That is, you could choose to pass over the selected sequence and set just > the durations. Or, you could set the duration and > > velocities of the chord tones in one pass and another pass for tinkering > with the span. However, once you set the span, you can > > no longer use Strum on the sequence because the chord tones will no longer > occupy the same time position and thus, will no > > longer be chords from the program's point of view. So, setting the span > should be the last aspect you change. In order to use > > Sstrum after setting the span, you must Quantize the sequence to re-align > the chord notes to the same time position and span > > them again. If re-quantizing, you can retain any duration setting you've > made by unchecking the "note durations" checkbox in the > > quantize dialog. Quantizing will have no affect on any velocity settings > you've made. > > Sorting chord tones > > Before describing the input parameter screens, it should be noted that there > is a fourth aspect of chords that can be controlled-- > > their sort order. If you look at a chord in the event list view, you'll > notice that the notes are not necessarily in any specific order- > > low to high for example. Maybe you entered the notes as best you could on > a keyboard, then quantized to align the notes to the > > grid. Whatever order you entered them - even if you thought they were > pressed simultaineously, is the order they're going to stay > > in. This is of no consequence when chord tones are sounded in unison, but > when you "Strum" the chord, those out-of-order > > notes will result in a peculiar sound--as if the instrument was strung > incorrectly. Using Strum automatically sorts chord tones into > > ascending order. So, even if you choose not to enter values for span, > velocity, or duration--seemingly doing nothing to the > > sequence--you will have by default, sorted the sequence's chord notes > > > Now, there are three input screens that prompt you for parameters for the > three aspects mentioned. In addition, if you enter a > > value in any of these screens, a companion screen appears that lets you set > additional fine-tuning parameters. After the program > > completes execution, a screen appears summarizing the parameters you entered > so you can get a better idea of what parameter > > settings result in what sound quality. The summary lists parameters as > follows: > > SP=span, SC=span curve, V=velocity, VS=Velocity spread, D=duration, > DT=duration trim > > The Input Parameter screens are as follows: > > 1) Span. This screen asks you for the number of ticks used to seperate each > note of the chord. For example, entering 10 here > > would seperate each note in the chord by ten ticks. Guitar strums sound > good at around 30 ticks. > > 2) Span Curve. This is the companion screen to the span parameter screen > and asks for a number between 1 and 7. This "curve > > factor" is used to seperate each successive note by an additional amount in > addition to the base span entered in the previous > > screen. A value of seven will cause no additional distance between notes > and results in a linear spacing of chord tones. A value > > of six will increase the span of each successive note by an additional 16%. > A value of five will increase the span of successive > > notes by 20%, four for 25%, three for 33%, two for 50%, and finally, one for > 100%. Curving the span like this causes the latter > > notes to be spaced wider than the earlier notes of the chord--kind of like > fanning a deck of cards. Experiment a bit with these > > curve factors--they take some of the mechanical sound out of the strum. > > 3) Set Velocity. This screen asks whether or not you want to "standardize" > the velocities of the individual chord tones. You can > > enter a value from 0 to 127. A value of 0 will leave the velocities as they > are. If you enter any other value, all note velocities in > > the chord will be set to that value. > 4) Velocity Spread. In the Set Velocity screen, if you enter a velocity > other than zero(which leaves the origional velocities intact), > > this screen will appear. It asks for a number of ticks between 0 & 10 that > will be used to scale the individual velocities of the > > notes in the chord. First, each note is set to the base velocity specified > in the Set Velocity screen. Then each note is scaled > > downward from that point. For example, entering 3 will scale down the > velocity of the first note by a random number between 0 > > & 3. Then the next note will be scaled between 3 and 6, the third note > between 6 & 9 and so on. entering zero in this screen > > will skip the scaling process and set all notes to the specified base > velocity. > 5) Duration. In this screen you can set a duration for the chord tones. A > value of 0 will leave note durations unaffected. Values > > from 1 to 3860 will set the duration of each note in the chord to that > number of ticks. The value 3860 is the equivalent of four > > quarter notes with a project time base of 960PPQ(PartsPerQuarternote). For > an example, if you set this field to 1440, it will set > > all chord tone durations to 1 and a half quarter notes. Keep in mind your > project's PPQ setting when setting this input field. > > Also, a calculator might be useful at first in determining tick to note > conversions. > 6) Duration Trim. This last input screen lets you set a maximum value for a > random trimming of each note's duration. Setting this > > value to 50, for example, will trim from each note's duration, a random > number of ticks in the range of 1 to 50. Although quite > > subtle, it is subtlety that makes for the "human" feel in computer generated > music. As with all the other "companion" screens, this > > screen only appears when a valid tick value is entered in the duration > screen. > > > End of notes > > ** To leave the list, click on the immediately-following link:- > ** [mailto:ddots-l-request@xxxxxxxxxxxxx?subject=unsubscribe] > ** If this link doesn't work then send a message to: > ** ddots-l-request@xxxxxxxxxxxxx > ** and in the Subject line type > ** unsubscribe > ** For other list commands such as vacation mode, click on the > ** immediately-following link:- > ** [mailto:ddots-l-request@xxxxxxxxxxxxx?subject=faq] > ** or send a message, to > ** ddots-l-request@xxxxxxxxxxxxx with the Subject:- faq > ** To leave the list, click on the immediately-following link:- ** [mailto:ddots-l-request@xxxxxxxxxxxxx?subject=unsubscribe] ** If this link doesn't work then send a message to: ** ddots-l-request@xxxxxxxxxxxxx ** and in the Subject line type ** unsubscribe ** For other list commands such as vacation mode, click on the ** immediately-following link:- ** [mailto:ddots-l-request@xxxxxxxxxxxxx?subject=faq] ** or send a message, to ** ddots-l-request@xxxxxxxxxxxxx with the Subject:- faq