Jump to content

Stuck trying to separate drums into seperate channels/tracks properly


Djentalist

Recommended Posts

Hi all,

I've been using Cakewalk for some time now but there are still a lot of basic features that I have yet to figure out.

QUESTION
I have a drum track (SI Drum Kit) that I want to split up into a few separate channels, something like Kick, Snare, Toms, Hats, but I can't figure out how to do this in Cakewalk. This is mainly so I can process each group with different effects (such as separate equalizers per group). I also have a Drum Map because I use a midi drum pad as input to record notes. Ideally I would have a single midi track so I can record my drumming inputs with a single button, and the output from that is split up to the different channels like described above. It would probably be useful to also have some kind of container (bus?) for all drum tracks together, so I can for example mute or solo all the drums as a whole with a single click, or maybe to do some mixing/processing over all of them together as well. 

CURRENT ATTEMPT/SETUP
I've watched some videos explaining how to split drum tracks or route them to a bus, but I got stuck figuring out how to keep the Drum Map with this.
See screenshot below for my current setup:

DFaqhW7.png

If nothing else works I guess I can just add a new drum instrument track for each group, but I feel like there are easier and better ways to handle this.

I'm still not super familiar with buses and routing in Cakewalk, but before Cakewalk I worked with Reason and I remember using combinators a lot to solve similar problems.
Often I'm struggling with Cakewalk's view to visualize how tracks and buses are routed, but maybe things will click after getting more familiar with it.

Edited by Djentalist
Link to comment
Share on other sites

I'm assuming that you have a midi drum track with everything on one track. One easy way to do it is copy the drum track a few times (ctrl shift drag) and delete everything that isn't the kick drum on one track, everything that isn't the snare on another track, etc. Don't touch the original, in case you screw up. When you're done archive the original drum track.

Link to comment
Share on other sites

32 minutes ago, parboo12 said:

I'm assuming that you have a midi drum track with everything on one track. One easy way to do it is copy the drum track a few times (ctrl shift drag) and delete everything that isn't the kick drum on one track, everything that isn't the snare on another track, etc. Don't touch the original, in case you screw up. When you're done archive the original drum track.

Why don't you use the CALS? They work great.?

Link to comment
Share on other sites

Oh I only found out about CAL about a week ago, I didn't know there was something like the split notes thing.

Is it an action you do at the end when your track is finished? Or can you keep working/recording in a single midi track while the function wires things to separate tracks while you're working on the project?

Link to comment
Share on other sites

If I understand correctly, you want to process the *audio* from SI drums as separate audio tracks for different drums?

Not just split the MIDI notes out to separate tracks (or clips)?

 

If so, you don't need any CALs (though if you can get them to work they may save some time getting the MIDI parts split if you need to use separate synths), but you do need to setup the synth being used with multiple sets of audio outputs that you can use as the input to different tracks, *or* use multiple separate instances of the same synth, each fed by just the notes for the specific drum(s) you want to use.

SessionDrummer and some other drum synths have multiple separate audio outputs that you can use for individual drums within the synth, by changing the settings in the synth (in it's mixer, or the drumpads, etc) to point the different pads or sounds to different outputs.    With these, you just use the separate audio tracks' fx bins to make your separate-drum fx chains, then set the outputs of all these tracks to your common percussion bus(es) with the rest of teh chain that is common to all of them (like a master multiband compressor, soundshaper, room space, etc). 

There is no need to split the MIDI out to separate tracks or clips, since it is all feeding the same synth and it doesn't matter for the audio side whehter the MIDI side is one track or not.  So you can leave it as a single track if you like. 

 

If your SI drums is like the ancient one I have here, it only has one stereo output, so you can't do this quite as simply and instead have to use multiple separate instances of it, each for one drum or one set of them that uses common effects, etc.  In this case, you do have to split the MIDI out to separate tracks, each one feeding just the synth for that specific drum sound or set of them.  For example, with a very basic kit if you want the kick, snare, toms, and cymbals to each have it's own chain, then you'll need at least five instances of the SI Drums to do that.  And you will have to split the MIDI out to separate tracks to go with those. 

 

If your SI drums has multiple output channels, then you just make tracks for those and assign each drum to a separate channel, just like the Sessiondrummer. 

 

To split the MIDI you can either use CALs, or there are two ways to do it manually.  I'll just specify the simplest, which is to clone the whole MIDI track for the drums to as many tracks as you have drum synths / sounds to trigger from them.   Then for the first of those tracks, go into PianoRoll View.  In PRV, first deselect all, then on the piano up the left side, click and drag on all the notes you do not want to have in that track, which selects the whole track's worth of notes except for teh ones you want there, then press delete.  

Repeat that for each separate track. 

Assign each track to the synth that you have setup for that drum.    

 

If you want to do it the harder way I'll describe that one but it's a lot more steps. 

 

If it helps to see what I'm talking about, I've attached a cut down version of a project from my ancient SONAR (which should still open in modern ones) that uses SessionDrummer3's multiple output busses to feed different audio tracks from different drums, and different effects, etc on various tracks, that are then routed to busses to get mixed down (with other more global effects on the busses). 

It also has the drum MIDI clips split out to separate tracks (which I do for ease of editing rather than anything needed for bussing / effects). 

 

 

drums split to tracks.cwp

Edited by Amberwolf
  • Like 4
Link to comment
Share on other sites

Scrap the drum map, honestly that is a remnant from the earlier days of MIDI before combined audio/midi VSTi's. To learn how to do what you're wanting, download a newer free drum instrument like Stephen Slate Drums. With that, you can easily route to separate outputs, which you can then assign to individual audio tracks in CW. It has a built-in mixer, and also the ability to easily map an external kit to the instrument or rearrange the assignments on a keyboard to your liking. There are numerous other choices out there that also do this (SI Drums doesn't), but Slate is a good free one to learn on, and it sounds great!

Edited by Ross Smithe
  • Like 2
Link to comment
Share on other sites

i think the drum map might actually benefit with some improvements as not all VSTi have built-in mapping features for the MIDI note assignments. another preference would be to not call it a "drum map" but rather an instrument map or MIDI matrix etc to better define it's function - mapping one set of MIDI notes to another set of MIDI notes and assign it to an instrument or better yet, available to multiple MIDI driven instruments 🙂 

  • Like 3
Link to comment
Share on other sites

56 minutes ago, Glenn Stanton said:

i think the drum map might actually benefit with some improvements as not all VSTi have built-in mapping features for the MIDI note assignments. another preference would be to not call it a "drum map" but rather an instrument map or MIDI matrix etc to better define it's function - mapping one set of MIDI notes to another set of MIDI notes and assign it to an instrument or better yet, available to multiple MIDI driven instruments 🙂 

Yes, exactly this.

Back in the days before we had articulation maps, I used Drum maps extensively to map out orchestral articulations - one for each instrument

It was a monumental undertaking but it worked! I had the drum map above the note pane so I could change artics in context with the note being played

Link to comment
Share on other sites

Honestly, I think the best solution is a CAL script. 

I used to record MIDI drums on my external Alesis DM5, then use a CAL script to split the drums to separate tracks, solo and record the audio for each one, then mix as if they were live drums.

  • Like 1
Link to comment
Share on other sites

The cal still won't do what this person appears to want to do, since it cannot split the audio outputs to separate tracks so they can be fx'd/etc separately, only the MIDI notes.  

 

A drum map is great for putting the right note names on the right midi notes (so you don't have to remember which note is which drum), but it doesn't affect this either, so having the map or not doesn't change what this user appears to want.  

 

Having a drum synth that has multiple separate audio outputs (either mono or stereo) *would* do it.

 

Or using multiple separate copies of the synth, each played by only the notes for the set of drums that will have the same fx chain/etc. 

  • Like 1
Link to comment
Share on other sites

On 9/20/2024 at 9:16 PM, Amberwolf said:

The cal still won't do what this person appears to want to do, since it cannot split the audio outputs to separate tracks so they can be fx'd/etc separately, only the MIDI notes.  

 

A drum map is great for putting the right note names on the right midi notes (so you don't have to remember which note is which drum), but it doesn't affect this either, so having the map or not doesn't change what this user appears to want.  

 

Having a drum synth that has multiple separate audio outputs (either mono or stereo) *would* do it.

 

Or using multiple separate copies of the synth, each played by only the notes for the set of drums that will have the same fx chain/etc. 

The idea is to use the CAL SCRIPT FIRST- He is just making things harder on himself.

Edited by Pathfinder
Link to comment
Share on other sites

In the new Sonar, dragging an instrument plugin to the top half of the clips area of a MIDI track will convert a standard MIDI track into an instrument track.

So:1. Use a CAL script to split the drums out into separate MIDI tracks
2. Drag SI Drums on to each MIDI track 

and you're done.

SplitDrums.gif

The CAL script I use is as follows (note this was written for Sonar 8.5, so it doesn't work 100% as intended - e.g. track names aren't working for some reason., and the track number is quirky... best to use a source MIDI only track right at the top of the project .. )
 

; clean up errors in sequence


; remove repeated notes
(do 
  (int noteTime 0)
  (int noteKey 0)
  (forEachEvent 
    (do 
      (if (== Event.Kind NOTE)
        (do
          (if (&& (== Event.Time noteTime) (== Note.Key noteKey))
            (do 
               (delete)
               (= noteTime 0)
               (= noteKey 0)               
             )
             (do
               (= noteTime Event.Time)
               (= noteKey Note.Key)
             )
          )
        ) ; do
      ) ; if
    ) ; do
  ) ; forEachEvent

; split drums into tracks

  (int bassDrum1 36)
  (int bassDrum2 35)
  (int rimShot 37)
  (int snare1 38)
  (int snare2 40)
  (int lowTom2 41)
  (int lowTom1 43)
  (int midTom2 45)
  (int midTom1 47)
  (int hiTom2 48)
  (int hiTom1 50)
  (int closedHat 42)
  (int pedalHat 44)
  (int openHat 46)
  (int crash1 49)
  (int ride1 51)
  (int china 52)
  (int ride2 53)
  (int splash 55)
  (int crash2 57)
  (int ride3 59)
  (int sourceTrack 0)
  (int destTrack 0)
  (getInt sourceTrack "Source Drum Track: " 1 255) 
  (-- sourceTrack)
  (getInt destTrack "First Destination Drum Track: " 1 255) 
  (-- destTrack)
  (int bassDrumTrack (+ destTrack 0))
  (int snareTrack (+ destTrack 1))
  (int tomsTrack (+ destTrack 2))
  (int hatTrack (+ destTrack 3))
  (int cymbalTrack (+ destTrack 4))
  (int otherTrack (+ destTrack 5))

  ; ===============================
  ; Clear Other Tracks
  ; ===============================
  
  (int curTrack bassDrumTrack)

  (while (<= curTrack otherTrack)
    (do
      (TrackSelect 0 -1)
      (TrackSelect 1 curTrack)
      (forEachEvent (delete))
      (++ curTrack)
    )
  )

  ; ===============================
  ; Name tracks
  ; ===============================

  (TrackName "Bass Drum" bassDrumTrack)
  (TrackName "Snare Drum" snareTrack)
  (TrackName "Toms" tomsTrack)
  (TrackName "HiHats" hatTrack)
  (TrackName "Cymbals" cymbalTrack)
  (TrackName "MiscDrums" otherTrack)
  

  ; ===============================
  ; Copy events to tracks
  ; ===============================

  ; bassDrum
  (TrackSelect 0 -1)
  (TrackSelect 1 sourceTrack)
  (ResetFilter 0 TRUE)
  (SetFilterRange 0 0 TRUE bassDrum2 bassDrum1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE bassDrumTrack)

  ; snare drum
  (SetFilterRange 0 0 TRUE rimShot snare1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE snareTrack)
  (SetFilterRange 0 0 TRUE snare2 snare2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE snareTrack)
  ; Toms track  

  (SetFilterRange 0 0 TRUE lowTom1 lowTom1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)
  (SetFilterRange 0 0 TRUE lowTom2 lowTom2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)
  (SetFilterRange 0 0 TRUE midTom1 midTom1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)
  (SetFilterRange 0 0 TRUE midTom2 midTom2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)
  (SetFilterRange 0 0 TRUE hiTom1 hiTom1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)
  (SetFilterRange 0 0 TRUE hiTom2 hiTom2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE tomsTrack)

  ; Hats track  
  (SetFilterRange 0 0 TRUE closedHat closedHat)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE hatTrack)
  (SetFilterRange 0 0 TRUE pedalHat pedalHat)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE hatTrack)
  (SetFilterRange 0 0 TRUE openHat openHat)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE hatTrack)

  ; Cymbals track  
  (SetFilterRange 0 0 TRUE crash1 crash1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE crash2 crash2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE ride1 ride1)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE ride2 ride2)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE ride3 ride3)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE splash splash)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)
  (SetFilterRange 0 0 TRUE china china)
  (EditCopy From Thru TRUE TRUE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE cymbalTrack)


  ; Other Track
  (ResetFilter 0 TRUE)
  (EditCopy From Thru TRUE FALSE FALSE FALSE FALSE)
  (EditPasteToTrack From 1 1 TRUE FALSE FALSE FALSE otherTrack)

  ; delete notes that are present in other tracks
  (TrackSelect 0 -1)
  (TrackSelect 1 otherTrack)
  (forEachEvent 
    (do
      (if (== Event.Kind NOTE)
        (do
          (if (== Note.Key bassDrum1) (delete))
          (if (== Note.Key bassDrum2) (delete))
          (if (== Note.Key rimShot) (delete))
          (if (== Note.Key snare1) (delete))
          (if (== Note.Key snare2) (delete))
          (if (== Note.Key lowTom1) (delete))
          (if (== Note.Key lowTom2) (delete))
          (if (== Note.Key midTom1) (delete))
          (if (== Note.Key midTom2) (delete))
          (if (== Note.Key hiTom1) (delete))
          (if (== Note.Key hiTom2) (delete))
          (if (== Note.Key crash1) (delete))
          (if (== Note.Key crash2) (delete))
          (if (== Note.Key ride1) (delete))
          (if (== Note.Key ride2) (delete))
          (if (== Note.Key ride3) (delete))
          (if (== Note.Key splash) (delete))
          (if (== Note.Key china) (delete))
          (if (== Note.Key closedHat) (delete))
          (if (== Note.Key pedalHat) (delete))
          (if (== Note.Key openHat) (delete))
        ) ;do
      ) ; if
    ) ; do
  ) ; forEachEvent

) ; do

 

cleanAndSplitDrumTracks.cal

  • Like 2
  • Great Idea 1
Link to comment
Share on other sites

Good grief!  This is the best answer right here. Time to move forward not backwards. As said  below by Mr. Smith, there's  free Drums VST's that all support multi outputs. Session Drummer has returned if you install the demo of Sonar I bet you get it free? Just a guess. And there's a demo of Addictive drums as well. Mondo Drums??  The SS drums are a good sounding VST and easy to figure out. It has drum maps built right in for popular Digital kits as well. 

On 9/20/2024 at 2:01 AM, Ross Smithe said:

To learn how to do what you're wanting, download a newer free drum instrument like Stephen Slate Drums. With that, you can easily route to separate outputs, which you can then assign to individual audio tracks in

 

Edited by Bass Guitar
Link to comment
Share on other sites

I'm using the free/"standard" version of Cakewalk by the way, though I think I still need to download the latest patch.

I've never really looked for SI Drum alternatives because I was happy with how they sound and didn't feel a need to explore further.
But if these other free VST drums sound at least as good and make routing/separating audio much easier, I don't mind switching. (though I'm sticking to free VSTs only, for now) Maybe this could remove the hassle altogether.

The reason I'm using a Drum Map is mostly to customize my midi drum pad layout for easier finger drumming. I also prefer to have the option of being able to record the drums together each time (instead of first recording only the part for the kicks, then only the snare hits, etc.) As long as that's the case, and the audio output is separated per drum/group, I'm indifferent towards having one or multiple midi outputs as a result. I'm also not sure if the CAL scripts you guys mentioned are meant to be used only when you're mostly done with the project and not really recording anything new anymore?

I know this image isn't super accurate of how Cakewalk works, but this is just to show my train of thinking (or the rough idea of the kind of workflow/setup I'm searching for). This would be the result of a single recording action: 

 qgcW4Ls.png

 

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