View Single Post
Old 07-15-2009, 03:19 AM   #24
Jeffos
Mortal
 
Jeffos's Avatar
 
Join Date: Dec 2008
Location: France
Posts: 1,969
Default

Ok, here's the updated/tested JS for drummers (I've removed the other zips).

v0.3:
- added 1 level (so 6 levels)
- Input note range -OR- up to 4 input notes
- pass thru, see details bellow
- doc added, i.e. "Click edit for info"
- Some minor fixes/updates (e.g. dummers too dumb for named notes !)

v0.4:
- added parameter "Filter (matching) Note-off events"


Download: https://stash.reaper.fm/20074/CC%20Hi...ler%20v0.4.zip




Details (copy/paste of the "Click edit for info"):
Code:

CC HiHat controller


Abstract:
This JS allows e-drummers to re-map incoming hit hat notes depending on how
they groove on their foot pedal. Even a single incoming note can be used to
trigger 6 hit hat sounds (1 closed + 5 opened hit hat sounds).


General info:
- The typical config. for this JS is: e-drum -> Reaper/this JS -> drums VSTi
- 6 levels: the 1st level is usually a closed hit hat sound and the 5 other levels
  opened hit hat sounds (drums VSTis often provide 5 open hit hat sounds)
- Default INPUT settings = Roland TD-3 ones
  THE DEFAULT CC VALUE RANGES AND MORE PATTICULARY THE 1ST ONE (closed hit hat)
  ARE FOR A FAULTY PEDAL (unreachable CC value 0)
- Default OUTPUT settings = Addictive drums, default kit.
- Pass thru for unmapped midi events (see other pass-thru properties bellow)
  => other fx can be used for further mappings (kick, snare, ...)
- Related reaper's thread: http://forum.cockos.com/showthread.php?t=37580


Settings:
- Output channel: for output notes routing
  Remarks:
  * unmapped events pass thru with their original channels
  * several instances of this fx can used in the same FX chain with different input/output channels
- Input channel: usually the e-drum one
- Input note mode: specifies how the 4 following fields are used (or ignored)
- Input note 1 (or start of range):
  * Start of input note range if 'Input note mode' = 'Range (between notes 1 & 2 - others ignored)'
  * 1st e-drum input note if 'Input note mode' = 1,2,3 or 4 input note(s)
- Input note 2 (or end of range):
  * End of input note range if 'Input note mode' = 'Range (between notes 1 & 2 - others ignored)'
  * 2nd input note if 'Input note mode' = 2,3 or 4 input notes
- Input note 3: 3rd input note if 'Input note mode' = 3 or 4 input notes
- Input note 4: 4th input note if 'Input note mode' =  4 input notes
- Input pedal CC#: pedal control change number, usually '4' (Foot pedal MSB)
  Remark:
  all CC events pass thru with their original channels - even if mapped (for multiple JS instances)
- Reverse CC values: use this setting if 'opened' hits sound as 'closed' ones and vis-et-versa.
  Some pedals indeed send '0' and some send '127' for the same max open hit hat position!)
- LEVEL 1
  - Min. CC value: see below
    Remark: if this value is > 0, input notes with lower CC values will NOT be mapped (pass thru)
  - Max. CC value: an input note received with a CC value included between the level 1's Min. CC value
    and Max. CC value will trigger the level 1's output note.
  - Output note: the VSTi one. Level's 1 output note is usually a closed hit hat sound.
    Remark: when less than 6 levels are needed, a same output note may be duplicated in several levels.
- LEVEL n
  - Max. CC value: an input note received with a CC value included between the level (n-1) 'Max. CC value'
    and THIS 'Max. CC value' will trigger the level n's output note.
    Remark: this value is automatically corrected as CC ranges should be contiguous.
  - Output note: usually the VSTi one
    Remark: when less than 6 levels are needed, a same output note may be duplicated in several levels.
- LEVEL 6
  - Max. CC value: an input note received with a CC value included between the level 5 'Max. CC value'
    and THIS 'Max. CC value' will trigger the level 6's output note.
    Remarks:
    * this value is automatically corrected as CC ranges are contiguous.
    * if this value is < 127, input notes with upper CC values will NOT be mapped (pass thru)
  - Output note: usually the VSTi one. Level's 6 output note is usually an open hit hat sound.
    Remark: when less than 6 levels are needed, a same output note may be duplicated in several levels.
- Filter (matching) Note-off events: once an input note has been remapped, this parameter allows you
  to filter the related Note-off ("Yes", default) or to remap it as well ("No").
  "No" is useful when working with ReaSamplOmatic5000 rather than dedicated drums VSTis (like EZDrummer, 
  Addictive Drums, etc..) for ex.
  See http://forum.cockos.com/showpost.php?p=1278385&postcount=28 too.
  Remark: new parameter introduced in v0.4

Example (typical set-up for TD-3):
Same open hit hat sounds for edge & bow hits BUT 2 different closed hit hat sounds,
one for closed hit hat EDGE hits and one for closed hit hat BOW hits.
Here the source e-drum hardware is able to send 4 different notes for the hit hat:
closed bow, opened bow, closed edge and opened bow.
1) create a 1st track armed with the e-drum's midi input / midi channel (say ch. 10).
   In the FX chain, add:
   * 1 instance of this JS in "2 input notes" mode: the 2 first input note fields are filled with
     edge opened & edge closed input notes.
     The input channel is set to 10. The output channel is set to 12.
     The CC ranges are set according to the e-drum's pedal properties.
   * 1 instance in "2 notes" mode: the 2 first input note fields are filled with bow opened and
     bow closed input notes. Same other settings than the 1st fx instance -execpt the level 1's
     output note that should differ (= the VSTi's closed EDGE -OR- BOW input notes).
2) create a 2nd track. Add drum VSTi FX. Add a receive: track 1 midi events on channel 12.
3) let's groove

Remark: in this example, all open hit hat notes sent by the e-drum are ignored.
It's up to the JS to handle that according to the foot pedal position.

Last edited by Jeffos; 03-19-2014 at 05:27 AM. Reason: v0.3 -> v0.4
Jeffos is offline   Reply With Quote