Abbey Road drums + Roland V Drumkit

Discussion in 'KONTAKT' started by The Flash, Nov 18, 2011.

  1. The Flash

    The Flash New Member

    Messages:
    8
    Hi everyone!

    Short version: Has the issue with V Drums + Hi Hat + Abbey Road drums been resolved?

    Long version: I used Abbey Road 60s + 70s drums for drum replacement with an LP that I made earlier this year with great results.

    Now it's time to record drums for a new LP and I just can't cope with drums in the kitchen again - I live in a block of flats and I felt so bad for the neighbours for the five days (mind you, no one complained.) Anyway, I couldn't reach my sink, so.. I bought Roland virtual drums, a TD9 KX kit.

    Now, I'm getting ready for the drummer coming around next week for the session and I have the right midi>USB cable and I have sounds coming out of Abbey Road drums (via Reaper.)

    There are a couple of problems, the floor tom is mapped by default to the tambourine but nothing too serious. But looking on the internet I see that everyone is having problems with the hi-hat and Abbey Road drums. So, my question is, has this been resolved?

    I really love AR drums and I'd hate to get rid of them but it seems that other software works fine with the hi hat pedal on a V drum kit.
     
  2. Roming22

    Roming22 Forum Member

    Messages:
    332
    Hi,

    It seems you have the software and the drums, why don't you test?

    I have a TD4 and I use the following script with the mapping set to V-Drums.

    I believe it allows me to fine tune the HH response to the foot movement.

    Cheers

    Code:
    on init
    	set_script_title("TD-4 to V-Drums")
    
    	declare $newNote
    	declare $pedalController
    	$pedalController := 0
    end on
    
    on midi_in
    	{MIDI CC}
    	if ($MIDI_COMMAND = $MIDI_COMMAND_CC and $MIDI_BYTE_1 = 4)
    		$pedalController := $MIDI_BYTE_2
    	end if
    
    	{MIDI NOTES}
    	if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON or $MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF)
    		$newNote:=$EVENT_NOTE
    		select ($EVENT_NOTE)
    			case 42 {HiHat Tip Closed}
    				if ($pedalController = 127)
    					$newNote := 66
    				end if
    				if (120 < $pedalController and $pedalController < 127)
    					$newNote := 42
    				end if
    				if (80 < $pedalController and $pedalController <= 120)
    					$newNote := 80
    				end if
    				if (40 < $pedalController and $pedalController <= 80)
    					$newNote := 81
    				end if
    				if (0 < $pedalController and $pedalController <= 40)
    					$newNote := 82
    				end if
    				if ($pedalController = 0)
    					$newNote := 46
    				end if
    			case 46 {HiHat Tip Opened}
    				if ($pedalController = 127)
    					$newNote := 66
    				end if
    				if (120 < $pedalController and $pedalController < 127)
    					$newNote := 42
    				end if
    				if (80 < $pedalController and $pedalController <= 120)
    					$newNote := 80
    				end if
    				if (40 < $pedalController and $pedalController <= 80)
    					$newNote := 81
    				end if
    				if (0 < $pedalController and $pedalController <= 40)
    					$newNote := 82
    				end if
    				if ($pedalController = 0)
    					$newNote := 46
    				end if
    			case 22 {HiHat Edge Closed}
    				if (120 < $pedalController and $pedalController <= 127)
    					$newNote := 68
    				end if
    				if (80 < $pedalController and $pedalController <= 120)
    					$newNote := 81
    				end if
    				if (40 < $pedalController and $pedalController <= 80)
    					$newNote := 82
    				end if
    				if (0 < $pedalController and $pedalController <= 40)
    					$newNote := 83
    				end if
    				if ($pedalController = 0)
    					$newNote := 46
    				end if
    			case 26 {HiHat Edge Opened}
    				if (120 < $pedalController and $pedalController <= 127)
    					$newNote := 68
    				end if
    				if (80 < $pedalController and $pedalController <= 120)
    					$newNote := 81
    				end if
    				if (40 < $pedalController and $pedalController <= 80)
    					$newNote := 82
    				end if
    				if (0 < $pedalController and $pedalController <= 40)
    					$newNote := 83
    				end if
    				if ($pedalController = 0)
    					$newNote := 46
    				end if
    			case 40 {Snare Rimshot}
    				$newNote := 39
    			case 48 {Tom1}
    				$newNote := 47
    			case 49 {Crash1 Tip}
    				$newNote := 48
    			case 55 {Crash1 Edge}
    				$newNote := 49
    			case 57 {Crash2 Tip}
    				$newNote := 54
    			case 52 {Crash2 Edge}
    				$newNote := 55
    			case 59 {Ride Edge}
    				$newNote := 52
    		end select
    		set_event_par($EVENT_ID,$EVENT_PAR_MIDI_BYTE_1,$newNote)
    	end if
    
    end on
    
    
     
  3. The Flash

    The Flash New Member

    Messages:
    8
    OK, that looks very promising. And where does the scripting go?

    Thanks!
     
  4. mhertzbe

    mhertzbe New Member

    Messages:
    18
    Excellent!

    Oh, man, that's beautiful. I can easily adapt it for my TD-10 set.

    Only question: You're bound to have cases where you translate the note on command to one note but the matching note off command is translated to a different note because the pedal position is in a different "zone" when the note off comes around. So the note on never gets a matching note off. Have you noticed any problem that could be traced to that?

    Thanks a million...

    M
     
  5. Roming22

    Roming22 Forum Member

    Messages:
    332
    Hi,

    The Flash:
    On the top right, you have the NI logo.
    Underneath, you got the 'Reference Tone' toolbox.
    Underneath, you've got an icon that looks like a scroll of paper.
    Click it, it'll open the script section.
    It shows you five slots.

    Select slot #1, click on edit, copy paste the code, click on apply.
    Play something on the HH, and validate the selected HH articulation in Kontact is what you expected.

    mhertzbe:
    I did not notice issues with notes off, but I'm a poor drummer and I'm quite bad with the HH pedal.

    Also, I don't think any notes off get send in V-Drums.
    You have NOTE ON messages sent on hits, and AFTERTOUCH messages sent on chokes.

    When you hit twice the same cymbal, I the first hit still plays in the background (proof: you can see the number of voices going up). To me it makes sense, since the energy of the second hit is added to the energy of the first one.
    In AR choke is one note for all the articulations of a piece. So if the choke note has been learned correctly there shouldn't be any issue of 'ghost hits'.

    But, hey, if you have a MIDI sequencer you don't have to take my word, you can test it ;)

    Cheers
     
  6. mhertzbe

    mhertzbe New Member

    Messages:
    18
    yep

    re: Script
    So yes, it will be a rack/multi level script. One thing to note then (I think) is if there's more than one instrument in the rack, it might be necessary to add code to the script so that it only works on the midi channel the drums are using to keep it from messing with the midi notes of other instruments.

    re: Note off
    Don't know about other vdrums modules, but the TD-10 does send note off messages matched to every note on. There's a setting for the (fixed) time delay between the two messages on a per-trigger basis. I've wondered about this... as you pointed out, the note off messages don't seem to do anything. They certainly don't stop samples that are ringing.
     
  7. The Flash

    The Flash New Member

    Messages:
    8
    Roming22 - thanks for sharing this. I once programmed computers in a former life and I try to not get involved with code anymore. So I have hit on a solution. I'll use Superior Drummer (it is supposed to react to all information from the hi hat pedal) for the hi hat only and AR for everything else. My record company can't begrudge me that since I am very low maintenance and DIY. But thanks again for sharing your solution, it looks very elegant and it is going to be a great help to all the many people searching for a solution to this common problem.
     
  8. mhertzbe

    mhertzbe New Member

    Messages:
    18
    I still have a problem

    So I've been playing around with this and I still have a problem.

    When I hit the hihat with the pedal up (hihat open), a nice hihat open sample is triggered. But if I then quickly stomp on the pedal while the sample is still playing, the the sample is not cut off... it keeps ringing. This is bad, of course, since it's not what a hihat does ;^)

    I think I figured out why this happens.

    When the pedal reaches the botttom, the TD-10 sends out both a midi note from the hihat and a CC4 value of 0x7F. The note and the CC4 = 0x7F go out back-to-back, but unfortunately the CC4 message goes out AFTER the note on message. So the script doesn't know the pedal is at the bottom when the note arrives and therefore doesn't translate it to "Closed hihat - pedal," which is what is needed to silence any hihat samples that are still playing.

    My first thought was to modify the script to generate a hihat note after the CC4=0x7F is seen. But I think this won't work because the script has to run as a multi script because all script slots in the instrument itself are occupied, and the play_note() feature can't work in multi scripts to generate new notes. Somebody please tell me if I'm wrong about this.

    Next thought is to change the thresholds so that the "closed hihat - pedal" note is sent not just for CC4=0x7F, but for a wider range of values in order to make sure the script knows when the hat is closing. But I experimented and found that when stepped on hard and fast, the CC4 value just before 0x7F could be as low as 0x28! So I'd have to sacrifice the vast majority of my pedal range to making sure the script knew the hihat was closing. Kiss those 1/4 open, 1/2 open, 3/4 open samples goodbye.

    Tough little problem. I suspect the fact that the TD-10 sends out the CC4=0x7F message after the note when the pedal hits bottom also explains why just using the "open hihat - control" articulation has the same problem of not cutting off samples when the hihat closes.
     
  9. Roming22

    Roming22 Forum Member

    Messages:
    332
    One thing about the mapping: I think it translates to the Default mapping, not the V-Drums...

    I don't have the issue you're talking about on the TD-4.

    If I hit a open HiHat and close it, here's what I get in the Midi Monitor:
    Code:
    Note on: Bb1 (46) Velocity 127
    Controller 4: Value 0
    Note off: Bb1 (46)
    Controller 4: Value 18
    Controller 4: Value 76
    Note On: Ab1 (44) Velocity 80
    Controller 4: Value 127
    Note off: Ab1
    
     
  10. mhertzbe

    mhertzbe New Member

    Messages:
    18
    Real progress!

    OK, I've got the abbey road drums playable from my TD-10 V-Drums. Two thing conspired for this victory:

    1) I finally figured out everything the TD-10 is sending out on midi relating to the hihat.

    a) With the pedal open, it sends one "note on" message for tip hits and a different message for edge hits.
    b) With the pedal closed, it sends a *different* set of midi messages for tip and edge hits. These messages only go out when the pedal is completely closed (although the threshold can be set to switch from one set of messages to the other at other pedal positions).
    c) When the pedal hits bottom, it sends a different message altogether.

    2) Roming22's excellent script example as a starting point.

    So now I'm running the script at the end of this post with the default key map for the late 60's kit.

    A couple of notes:
    - Rather than steering the hihat notes to different samples based on the foot pedal position (as Roming22 did), I'm steering everything except the "pedal has hit bottom" message to the "hihat - controller" (note 46), and letting it choosed the appropriate sample based on the pedal position.
    - The "pedal has hit bottom" message get sent to closed hihat - pedal, which will cut off any ringing samples (and also play a sample of a pedal hitting bottom)
    - The TD-10 sends out a CC16 message with each snare and tom hit to indicate the position of the hit. I'm using this value to select between center and rim samples and it sounds very cool.
    - I'm only processing channel 25, which corresponds to midi channel 10 on my system's #2 midi port. That allows the script to be used in a rack that has other instruments besides the Abbey Road drums.

    How well does it work? Pretty darned well! Well enough to make me stop the geek stuff for a while and play the drums.

    Only two issues I want to address fairly soon:

    I) The closed hihat samples don't sound like a hihat that is tightly closed. I might experiment with taking those midi messages that are only sent when the hihat is completely closed and steer those towards closed hihat samples instead of the controller sample.
    II) The relative volumes of everything aren't right. I can address this several ways such as V-Drums trigger sensitivity, adjusting the mixer in the instrument, and if necessary even mucking with velocity values in the script.

    Also, note there are a few errors in the default drum map presented in section 6.4 of the documentation. Always check the instrument itself to see what note each articulation of each drum is responding to.

    Thanks to everybody who replied to this thread.

    M

    Code:
    on init
      set_script_title("TD-10 Control Ch25")
      declare $newNote	{midi note number, might get translated}
      declare $ccGen1	 {last cc16 value seen, for snare hit position}
      $ccGen1 := 0
    end on
    
    on midi_in
      {MIDI CC16}
        if ($MIDI_COMMAND = $MIDI_COMMAND_CC and $MIDI_CHANNEL = 25 and $MIDI_BYTE_1 = 16)
          $ccGen1 := $MIDI_BYTE_2
        end if
    
      {MIDI NOTES}
      if ($MIDI_CHANNEL = 25 and ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON or $MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF))
        $newNote:=$EVENT_NOTE
        select ($EVENT_NOTE)
          { each case value matches a midi "note on" message from the v-drums }
          { each $newnote value represents the note to send to the abbey road drums }
          case 26 { HiHat Open Tip }
                  $newnote := 46 {hihat open - control}
          case 27 { HiHat Open Edge }
                  $newnote := 46 {hihat open - control}
          case 24 { HiHat Pedal Closed }
                  $newnote := 44 {closed hihat - pedal}
          case 22 { HiHat Closed Tip }
                  $newnote := 46 {hihat open - control}
          case 23 { HiHat Closed Edge }
                  $newnote := 46 {hihat open - control}
          case 51 { ride tip }
                  $newnote := 51
          case 32 { ride edge }
                  $newnote := 52
          case 53 { ride bell }
                  $newnote := 53
          case 49 { crash tip }
                  $newnote := 48 {high crash tip}
          case 55 { crash edge }
                  $newnote := 49 {high crash edge}
          case 60 { kick }
                  $newnote := 36 {kick - felt beater}
          case 38 { snare }
                  if ( $ccGen1 < 64 )
                    $newnote := 38  { center sample }
                  else
                    $newnote := 39  { rim sample }
                  end if
          case 50 { snare rimshot }
                  $newnote := 37 { snare sidestick }
          case 47 { rack tom }
                  if ( $ccGen1 < 64 )
                    $newnote := 47  { center sample }
                  else
                    $newnote := 81  { rim sample }
                  end if
          case 45 { floot tom }
                  if ( $ccGen1 < 64 )
                    $newnote := 43  { center sample }
                  else
                    $newnote := 77  { rim sample }
                  end if
        end select
        set_event_par($EVENT_ID,$EVENT_PAR_MIDI_BYTE_1,$newNote)
      end if
    end on
     
    Last edited: Nov 23, 2011
  11. Roming22

    Roming22 Forum Member

    Messages:
    332
    Glad you made it work :)
     
  12. polishbroadcast

    polishbroadcast New Member

    Messages:
    9
    Can someone comment on how well the Roland kits are working with Abbey Road drummer? I am about to invest in a system and would like to use ARD as my sound source in Logic. I'm most interested in the VH-11 hi-hat articulation support.

    I'm a little surprised / concerned that users are having to create their own support.
     
  13. mhertzbe

    mhertzbe New Member

    Messages:
    18
    Pretty good ... not perfect

    The way I made it work (explained above), the only thing the script absolutely had to do was make sure all four possible midi notes from the vdrums hihat (tip open, tip closed, edge open, edge closed) were directed to the one hihat "controller" sample that responds to the foot pedal. Otherwise, I wouldn't have needed the script at all... I could have adjusted the vdrums or the ARD to match up the notes being sent to the desired samples. So the scripting can be pretty minimal but possibly not zero.

    As for how well the hihat works (and yes, I also have the VH-11 on my drums), I would say it works quite well with the exception of the closed hihat behavior, which is good but disappointing in a way.

    Since I'm steering all midi notes to the "controller" sample, it isn't making use of the available "closed shank" "closed tip" and "closed tight tip" samples. You just get what the "controller" sample plays when the hihat is closed, which seems like "closed tip." On a real hihat, if you pressed hard on a closed hihat pedal, you'd get the closed tight sound but on the ARD the way I set it up, you don't (even though the samples are there). This seems like the biggest shortcoming to me.

    I can imagine how to try to make the closed hihat behavior use all the available samples with scripting, but that would be relatively difficult compared to the simple scripts shown here. And I'm not sure how well it could be made to work without fiddling with it for a while. Which I'm not planning to do.

    By the way, I haven't studied Abbey Road Drummer enough to know if it is any easier or harder to use with vdrums, but it did work right out of the chute when I put my script in.
     
  14. PMcCMusic

    PMcCMusic New Member

    Messages:
    18
    I've been following this thread, yesterday I decided to fire up my Roland TD3 and,...

    The AR and Studio Drummer and SSD,..IMO,...really are NO fun to PLAY....the response from these are really poor. I love the sound of the new NI drum collections but it really is obvious that they are putting no time into making them PLAY like a real kit.

    The workaround suggested here,...to be honest, I probably can't implement if I wanted to. My Kontakt knowledge under the hood is basic.
    But moreover,...why the hell should anyone have to? seems ridiculous to me

    all this to say,.IMO.

    Toontrack are THE BEST at "edrum playing experience"
    They really spent years honing it and have it down. And to be fair, they don't do anything else, so it better be killer.
    Still,..

    At one point,...you'd think that NI would hire someone to do some hip scripting like they did with the Scarbee Libs,...and make the dam kits (that sound great) playable.

    Until then,.I play toontrack when edrumming, and use the samples later on from NI.
     
  15. mhertzbe

    mhertzbe New Member

    Messages:
    18
    I agree

    I have to agree with PMcCMusic that all this "how to make ARD work with VDrums" is BS. NI should provide whatever is necessary to make it just work as well as it possibly can.

    I also should say that I'm not a real drummer and I've almost never played acoustic drums so what would I know about playability? Still, I have a heck of a lot of fun playing ARD from my Vdrums.
     
  16. PMcCMusic

    PMcCMusic New Member

    Messages:
    18
    NI are coming from an electronic techno side,...where programming is actually part of the sound and vibe, and so. playability is a non-issue.

    when it comes to an acoustic kit, seems the whole "playing" aspect is overlooked bigtime..
    This is too bad IMO because the samples can stand up to the best out there. btw having just got Battery as part of Komplete, I have to say the acoustic multi kit samples in it are also top rate.
     
  17. nattydread75

    nattydread75 New Member

    Messages:
    5
    i have a td6-v and trying to play kits off maschine. if i input that script in the said area will that do all the mapping for me? i have a limited knowledge here. basically my roland play all bass drum sounds at different pitches.
     
  18. timjweaver

    timjweaver New Member

    Messages:
    2
    Agree, I thought this would have been worked out with the "new and upgraded" version of 60's drums called 60's drummer. what a farce to spend $99 on this POS and have to figure out how to "tweak" the midi settings each time I open Kontact. I want to play immediately. There should be a way to save all the setting for startup. I've sent emails to support which is non-existent.
     
  19. timjweaver

    timjweaver New Member

    Messages:
    2
    Agree, I thought this would have been worked out with the "new and upgraded" version of 60's drums called 60's drummer. what a farce to spend $99 on this POS and have to figure out how to "tweak" the midi settings each time I open Kontact. I want to play immediately. There should be a way to save all the setting for startup. I've sent emails to support which is non-existent.
     
  20. yzf125

    yzf125 Forum Member

    Messages:
    71
    I am a drummer and play ARD and Studio Drummer with my Roland TD-12 and VH-11 Hi Hat setup, Both have the poor Hi Hat playability but Studio Drummer is slightly better than ARD with the Hi Hat. Reading through this thread and I have no idea how to do this midi scripting as it goes way beyond what I understand and know how to do, I just know the basics with Kontakt enough to run everything.

    They provide the mapping for each drum module in ARD and Studio Drummer so why wouldn't they map the Hi Hats correctly for those kits ???

    I have to unload the hi hats in studio drummer or ARD and use Addictive Drums just for the Hi Hats as they play better than the 2.. Not great but a lot better, This should not be my only solution, NI should be reading these threads and stepping up with a fix for this as its been a complaint from day one !!! Studio Drummer doesn't even have cymbal choke when a drum module is selected only in default mode... This is unbelievable, but ARD has cymbal choke when a module is selected............ and still no fix for Studio Drummer on this....

    I play these live and need Hi Hats that play proper as that's the most important part of the kit that needs proper articulation for timing and feel for a real drummer... The groove is all in the Hi Hats.

    I wish there was a video on how to do the midi scripting, I would love to see this done and try to implement it. I love the sounds of Studio Drummer but getting fed up with this Hi Hat BS !!!