Jump to content

Split Channels to Tracks CAL


Sridhar Raghavan

Recommended Posts

All

I was able to connect my Korg PA600 Arranger keyboard, and receive/record all the 16 channels to a Track in Cakewalk. I can play these back on PA600. All working nicely.

I am now trying to figure out how view/edit the midi channels events on the track on the Piano Roll?  Including Show/Hide filters for specific channels etc.

Also, is there a way to take the track contents and create/generate separate tracks so each track is for a Single Midi Channel?

I know a few general non-Cakewalk ways to do this, and so I am not looking for those solutions. 

I just want to get educated on features/capabilities of Cakewalk for doing these tasks. As my goal is to migrate to Cakewalk as my main staple.

Thanks in advance

Sri. 

Link to comment
Share on other sites

SCOOK you hit the bulls eye for me. That is precisely the thing I was looking for. Since I am still new in terms of installing running such CAL files, appreciate your doing a bit more handwaving for me, to get to the point of running it. I assume this would be a simple step/procedure but I have not navigated to it to yet. Also curiosity is there a utility which will do the opposite?  I will add possible reasons at the end.

BDICKENS I agree that this would work.  That was also what I was planning to do.  Make those tracks and set them up Midi In/Out and use them for [such]  Projects.  I also have other utilities which can take a Format-0 Midi files and create Format-1 Midi files. I can do the export/import process.  These were the approaches I was calling brute force method.  

Thanks both for the quick responses. 

Sri.

P.S. SCOOK/BDICKENS one thing I want to be able to do is to switch between 2-3 external keyboards and iPad (coming via RTP).  I want to do this SIMPLY and RELIABLY rather than having to change midi in/out device in each and every track.  I like SEIKAJU DAW for many things, especially for this ease of switching  MIDI IN/OUT device for all tracks [and of course selected tracks]. May be Cakewalk would do this as well, but I have not gotten there yet.

Link to comment
Share on other sites

SCOOK/BDICKENS

I was able to navigate to running that Cal program.  Ran it and got the tracks created. So nice for further actions.

I now have to figure out why these tracks are not playing same thing as the original.  I will look in the usual places, as I have faced similar things before in other situations. Possibly Drum/Percussion channel numbers and GM/Midi initial sequences. 

If you have any ready pointers it would be great.

Thanks again Sri.

 

Link to comment
Share on other sites

This is just thinking out aloud -- to get the Split t Channels working correctly. Currently post split has a few issues.

So I took a look at the Cal file.  I am observing a few things:

a) Cal Code  split the Track based on Channels. But it is not updating the Midi In/Out Configurations. I do not see that on the UI nor on the code below. May be the author did not consider that as a requirement.

b) There may be a bit of Channel numbering 0-15 or 1-16 issue here.   Usually Drum is 9 and Percussion 10 (in 1-16 numbering).  So there may be a skew relative what the code considers as Drum channel - 10.  I need to check. This may be  causing a skew of the channels - and causing split tracks  not playing exactly as the original non-split track.  I will have pin this down to fix this.

c) A CAL expert or the original author might be able to do this in a Jiffy.  Hope to hear from them.

d) What is generated for the  last Track also seems quite odd.

e) I know I have configured on my Keyboard, channel 15 and 16 as Global and Control Channels respectively.  I do not see anything in the code related to handling these. Though not sure that there should be any.

Hope some one can point me where on the Cakewalk UI is the menu items for Transposing - a selected  Midi Track or all the Tracks together.   

Thanks in advance for any insights/tips you may have. 

 Sri.

======== the cal code for reference  =============


; Split Channel to Tracks.cal
;
; This takes the current track and splits it by channel into 16 other tracks.
; It is up to the user to:
;    - position the cursor on the desired track to be split
;    - make sure only that track is selected
;    - set From and Thru to cover whatever portion of it they wish split
;

(do
    (include "need20.cal")    ; Require version 2.0 or higher of CAL

    (int nTrk 1)

    (getInt nTrk "First destination track?" 1 256)
    (-- nTrk)    ; CAL uses 0..255

    (int nChannel 0)

    (while (< nChannel 16)
        (do
            ; Provide some progress information on the message line
            (message "Channel " (+ 1 nChannel) " --> Track " (+ 1 nTrk))

            ; Set the event filter 0 to include everything
            (ResetFilter 0 1)
            ; Restrict item 10, Channel, to be in the range nChannel..nChannel
            (SetFilterRange 0 10 TRUE nChannel nChannel)
            ; Now use that to cut the events meeting the criteria
            (EditCut From Thru TRUE TRUE FALSE FALSE FALSE FALSE)
            ; Paste them to the destination track, nTrk
            (EditPasteToTrack From TRUE FALSE TRUE FALSE FALSE FALSE nTrk)

            ; Give track an informative name
            (TrackName (format "Split Chan " (+ 1 nChannel)) nTrk)
            ; Set the forced channel, although that's redundant because all the events
            ; in the track have that channel
            (TrackChannel nChannel nTrk)
            ; Un-mute the track
            (TrackActive TRUE nTrk)

            (++ nChannel)
            (++ nTrk)
        )
    )
)
 

Link to comment
Share on other sites

I think the CAL routines just deals with the bulk midi information -

This issue may have to do with what root channel the track was recorded with. The midi channel can be  changed for whatever playback channel after recording - but it likely has retained it's original input channel information. It can be an important to assign the correct channel to record the original information. If this not done then an additional step should be taken to correct the base channel information before importing the midi into another DAW - or in this case to take a type 0 file and basically convert it to a type 1 file.

Edited by RBH
Link to comment
Share on other sites

RBH

I modified the original script in some simple ways to get the Post Split tracks playing exactly the same as the Original Recording.  I also changed from Cut/Paste to Copy/Paste -- so the original track is intact. I will attach the Script below. 

I have been looking for the Cal command sequence for what I can do interactively on the UI:

select a track by its track number

set the Midi IN to my Korg Keyboard and IN channel to a specific Channel

set the MIDI out to my Keyboard and OUT Channel to a specific Channel.

Arm it for recording.

I have gone through the CAL Reference/Guide and Examples but just cannot  find the commands for these. I have tried few of them but they do not work. Or I am unable to recognize them. Given that CAL is not supported and not able to determine what works and what does not, makes it very difficult to say the least. 

So I ended up creating 16 tracks brute force and saved them as a Starting Point.  Gets me going ... but missing the power of a good working Cal Script to do things efficiently and reliably without embracing laborious tedium.

I hope others find the Script Useful.

Sri,

Attachments: Screen Shot of Splitting; SriSplit1.cal the script file; EmptyKorg1.zip containing the base project with 16 tracks with proper setting of Midi IN/out - I will try to make this into a Template when I figure out how. 

ScreenShot1.png

SriTrackSplit1.cal EmptyKorg1.zip

Link to comment
Share on other sites

All

I am attaching an MP3 file of the music that goes with the above. It is playing of the original and split tracks all together and everything is order.  Hope you enjoy the Indian Music as well - it is an Improv Kalpana in raga Anandha Bhairavi (Carnatic). 

I have to thank all of you here, for helping me with the initial ramp of Cakewalk and over time progressively complete the migration.

regards Sri.

SriCakewalk.mp3

Edited by Sridhar Raghavan
typo
Link to comment
Share on other sites

I am putting this topic here, as the contents are buried in a thread related to this topic, elsewhere.

I corrected a few issues on this CAL for my needs, which should be of relevance to anyone interested in using it.

I am attaching the updated CAL file, so Cakewalk Team can correct that CAL or include my CAL with the install library.
Please feel free to clean/tweak the code and, the file and other names, to your Engineering Standards.

regards 

SriTrackSplit1.cal

Edited by Sridhar Raghavan
  • Thanks 1
Link to comment
Share on other sites

Johnny Tsao

Thanks for the wonderful idea, using only Cakewalk features to get the conversion done. 

Truly appreciate your taking the time to create this elaborate note with screen shots and detailed explanations. 

I will try this, especially, whether Midi IN/Out on each track is set correctly for recoding and playback. 

If you or I can create a CAL file for this, so everything happens transparently with a single command - nothing like it. But based on what I am finding CAL is not supported, though it ought to be fully resuscitated (prioritized over other feature additions), and many commands do not work and/or simply not there. 

regards

  • Like 1
Link to comment
Share on other sites

1 hour ago, Sridhar Raghavan said:

I am putting this topic here, as the contents are buried in a thread related to this topic, elsewhere.

I corrected a few issues on this CAL for my needs, which should be of relevance to anyone interested in using it.

I am attaching the updated CAL file, so Cakewalk Team can correct that CAL or include my CAL with the install library.
Please feel free to clean/tweak the code and, the file and other names, to your Engineering Standards.

regards 

SriTrackSplit1.cal 4.24 kB · 1 download

If I may ask, what's wrong with this? And what changes did you make? And would you be so kind to attach the link to the other thread in discussion. 

Link to comment
Share on other sites

16 minutes ago, Sridhar Raghavan said:

I edited the original post to include a link to the other thread.

Will_Kaydo you can read everything in that post. Sorry for pointing you to that instead of giving you a pointed answer here. I will be just repeating things from there. 

br

Well. I did ask for the link, so . . . 👍🏽

Link to comment
Share on other sites

I think you've kinda complicated things for yourself in the previous thread. Cakewalk does it pretty much straight forward as expected, so i'm good. 

Give yourself another month and you will revisit this with an "AWW-Okay" moment. Like you've said, your still new with the DAW so you're failry comfortable with how your ther DAW does it. You'll get use to this workflow. I'm Twelve years with it. 

Edited by Will_Kaydo
Link to comment
Share on other sites

Wll_Kaydo

I completely disagree, but I am always open to persuasion.

I am just observing that :

a) The Split Tracks produced by the CAL does not play the Original Music
b) The Original is Destroyed by the CAL in the Process.

These are basic common sense violations.
Neither should happen except in special situations. 
Therefore I declared that the CAL is erroneous.
I corrected these in my CAL.

I can easily reconcile with such errors in designs & implementations, for various pragmatic reasons.
But the arguments you advance in its defense, has no merits unfortunately. 
Here, in this case, as well as generally.

Allow me to wear a different hat for a moment to state the following:

Every tool advocates certain paradigms, often new, innovative and a departure from the state of practice in small or big ways.. These make it worthwhile for users to embrace it, even if it means changing their habitual methods and approaches, even fundamentally.  But it is dysfunctional to use that as a driving principle  to bless/perpetuate flaws/errors which have nothing to do with the anchoring paradigms themselves.

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...