Jump to content

[SOLVED] Help With CAL (VARYVEL.CAL is broken)


sjoens

Recommended Posts

Trying to set a series of velocities with VARYVEL but it defaults the lower value to 50 no mater what number I enter.  It worked for a time with 89 but now it also reverts it to 50.

Is there another CAL that does the same?

 

[SOLVED] Set all notes to 100 before running CAL.

Edited by sjoens
Link to comment
Share on other sites

I just did a quick test randomizing notes that were all at 100  to be between 90 and 110, and it seemed to do exactly that.

Any chance your CAL file was modified at some point to override what you enter and hard-code 50?

Last Modified date on mine is 12/30/2011.

Link to comment
Share on other sites

2 hours ago, sjoens said:

Trying to set a series of velocities with VARYVEL but it defaults the lower value to 50 no mater what number I enter.  It worked for a time with 89 but now it also reverts it to 50.

Is there another CAL that does the same?

When ever it comes to CAL, the real question should be “Can a CAL script be written to”..........  what ever you want.

Chances are the answer to that question is yes.

Can you post your VARYVEL.CAL

Link to comment
Share on other sites

Thanks guys.  I was dealing with a series of notes that already had various velocities and I think that was confusing the CAL giving me an erroneous low value.   As David found, it seems to work better when the entire selection is set to 100 first. 

I have 2 ea. from 1991 and 2011.  They look identical in Notepad.
VARYVEL 1991.CAL  downloaded from Mudgel's collection
VARYVEL 2011.CAL from SPlat & CbB

Today at least the 2011 version seems more consistent not requiring values to be reset to 100 before a 2nd or 3rd change while the 1991 version does??

Edited by sjoens
Link to comment
Share on other sites

  • sjoens changed the title to [SOLVED?] Help With CAL (VARYVEL.CAL is broken)

I had a bit of a look at the CAL scripts on my PC.

Personally, I would rewrite it.

Do you want the MIDI velocities to be random deviations from the original values, or do you simply want the velocities to be arbitrarily set to random values between x and y?

Link to comment
Share on other sites

Obviously I would have no clue what the initial values are (unless they're all the same) so I would want them all to adjust randomly between the low and high value I set for them.  VARYVEL does work when they're all set to 100 but it's another step to remember before using it.

I'm sure most of the old CAL's could be revamped to work smoother as some others don't work so well if at all like UNDUPE which others have updated or replaced  (CleanTrack.cal by "sping" undupes and unoverlaps).

Biggest issue I have with CAL is the unintuitive descriptions on some, like: "Window for time identity: [0   ]", or "Padding in Ticks: [2   ]".  I have no clue what that means or what value to enter.

Edited by sjoens
Link to comment
Share on other sites

 

I won't pretend to understand cal / etc enough to know if this site would be helpful in learning more about the various functions, but it's one I've had archived for reference for a future day when I might have time (and desperate need enough) to learn how to write or fix cals (other than some basic hacks). ;) 

(the author also knows a fair bit about bicycle stuff, and I learned lots about that from him and Sheldon Brown as well). 

https://www.bikexprt.com/calfiles/index.htm

 

Quote

Cakewalk CAL programming information

The information on this site is mostly for people who already have some experience with CAL programming. My intention is to fill gaps in the documentation provided by Cakewalk, and to share useful programming tricks and tips. Have a look at my links page for other very useful references. I recommend Glen Cardenas's tutorial (see the links page) or the CAL Tutor which is bundled with CPA Deluxe (versions 6 and higher), if you are just getting started with CAL.

 

Link to comment
Share on other sites

CAL scripts can be written to adjust existing velocity values or set velocity values to new values.

For instance, this will set the velocities of selected notes to a random number between 60 and 100)
(do (forEachEvent (if (== Event.Kind NOTE) (= Note.Vel (random 60 100)))))

This one shifts the velocities of selected notes up or down by a random number up to 10.
(do
    (int newvel)
    (forEachEvent
        (if (== Event.Kind NOTE)
            (do
                (= newvel (+ Note.Vel (random -10 10)))
                (if (> newvel 127) (= newvel 127))
                (if (< newvel 0) (= newvel 0))
                (= Note.Vel newvel)
            );end do
        );end if
    );end for
);end do

Link to comment
Share on other sites

  • sjoens changed the title to [SOLVED] Help With CAL (VARYVEL.CAL is broken)
10 hours ago, Promidi said:

Personally, I would rewrite it.

Yeah, I had a look at it and the logic seemed inefficient; seeing a typo in the header had me worried from the get-go, but it worked so I let it go. ;^)

 

11 hours ago, sjoens said:

I was dealing with a series of notes that already had various velocities and I think that was confusing the CAL giving me an erroneous low value. 

One of the challenges of writing a CAL script is designing it to handle unexpected input in a way that gives a desirable result, including not hanging! It can take a lot of extra thought and effort to anticipate and handle all possible inputs gracefully. In this case, it should have at least been expected that the input might already be variable, and ask the exact question that Promidi asked.

10 hours ago, sjoens said:

Biggest issue I have with CAL is the unintuitive descriptions on some, like: "Window for time identity: [0   ]", or "Padding in Ticks: [2   ]".  I have no clue what that means or what value to enter.

You can open a CAL file in any text editor like Notepad, and the header section will often clarify how the prompted variables are used and/or other details about how the script works. A really good one will include comments to explain what it's doing at key points. I do this for myself so I can understand what the hell I was thinking at the time if I have to revisit something later.

 

  • Like 1
Link to comment
Share on other sites

Yes but most users won't do that.  Instead they'll just pass if they can't interpret the lingo or even figure out what it's for.  They're basically macros that, at least for some, should've been integrated into the DAW itself.  I think as MIDI editing becomes a thing of the past for main stream users, CAL may be completely abandoned down the road.

Link to comment
Share on other sites

14 minutes ago, sjoens said:

Yes but most users won't do that.  Instead they'll just pass if they can't interpret the lingo or even figure out what it's for.  They're basically macros that, at least for some, should've been integrated into the DAW itself.  I think as MIDI editing becomes a thing of the past for main stream users, CAL may be completely abandoned down the road.

I really hope not.  That would really stuff up my workflow.

In fact, I broached this subject with the bakers, and they have no plans to abandon CAL scripts (or even Studioware Panels) because there are still many people (myself included) who use them every day in their projects.

Instead of waiting for said MIDI editing function to be made available in Sonar, I simply write a CAL script to do it. I am really thankful that I have that ability.

MIDI is really how you get all the cool stuff to happen in any DAW.  Without MIDI, then all your DAW becomes is a glorified tape deck.

  • Like 2
Link to comment
Share on other sites

Agreed.  That was just my thinking on the matter since most of us can't and probably never will be able to "simply write a CAL script".  There is documentation out there on how to do it from probably 20 years ago?  I can't even figure out Articulations so it gets filed under: Outcome Not Justify Time Spent Learning.

Searching for CAL info I came across an old thread about AZSlow's AZ Lua that does CAL type routines.

  • Like 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...