Midi Control Of Native Renoise Sampler

First I want to say how glad I am to have found Renoise, and how impressed I am by the community here. I share what seems to be the stereotypical story – first made bad techno on my Amiga using OctaMED, moved onto PC and Cubase, was excited but ultimately dissatisfied by Live – and I had no idea how much I missed trackers. I was flirting with the idea of using Supercollider but with the scripting abilities Renoise comes with I have no doubt that I can make it do what I want, but I was hoping someone could point me in the right direction while I get the basics set up.

A major part of my music making involves playing drum patterns on an electronic kit (I’ve played drums since before I got hold of OctaMED) and I have a Roland Handsonic HPD-15 for this purpose. One of the great things about this as a midi controller is the way it gives pressure and position control through separate midi control channels. Another thing is that it allows the use of a hi-hat control pedal so that HH closed, HH open, and HH close sounds can be mapped to separate notes.

I’ve been familiarizing myself a bit with the Duplex keyboard api and have been messing around creating a layout for the Handsonic while also experimenting with some mappings in the sampler without Duplex. Essentially what I want to do is use the Handsonic as a midi controller for drum sample set instruments which could be recorded or played live, and I want these to sound realistic or at least be responsive to how I play (bearing in mind that a kit might be e.g. a cut up amen break) which means utilizing some of the features I mentioned above to get out a dynamically responsive kit sound (or at least some mangled kit sounds). Here’s a quick wish list of things I’d like to be able to do:

  1. While I can easily map the hi-hat notes to the appropriate samples, I’m not sure how to get the right behavior out e.g. when I trigger an HH open sample closely followed by HH close I want that to gate the HH open sample. I’m probably missing something obvious here.

  2. I’d like to be able to use e.g. velocity / pressure data to change the way the sample is played back. This might be a subtle change in e.g. filter cut-off, but another scenario is having a flat sample volume response (e.g. always 127) but using the velocity to change the pitch in semitone steps (this gives an early jungle style sound when applied to the amen snare). A third scenario is using a sample library kit and changing which sample is played depending on the velocity (or position / pressure data).

  3. This is probably trivial, but how do I filter out the note off commands (and other commands) when recording?

Thanks for reading!

1: you can set the NNA of the HH open sample to “cut” this allows you to gate it using the HH Close, but that sample will be gated by any other sample as well, to circumvent that, simply only use the HH samples on the same note column but use the other samples on another note-column.
2:I think scenario 3 is your best bet here.
3:Preferences → Midi → Record & Play filter: Untick “Note offs”

Renoise has to admittedly still be quite far away from the ideal container for a native drum kit to be played live. There have been some advancements in this area but still some way to go.

If there is a way to get your Handsonic to output different pads on different MIDI channel but this I very much doubt to be the case. Anyway I will answer best I can.

3. Open Preferences (Ctrl+,), click on MIDI tab and untick Note Offs. Same for other things you may not wish to record.

How 1 & 2 is where we’ll see there are some problems.

1. You can set the NNA in Instrument settings to Cut, Note Off or Continue. This will choose what actions happens when one note is cut off by another being triggered in the same note column. Problem here is it’s instrument wide, so you’re just as likely to have your open hi-hat cut by a kick or snare as by your closed hat. NNA-Grouping is something many people have lusted for and requested so fingers crossed soon.

2. Unfortunately the Instrument Settings section is not controllable by MIDI directly. There is access to the parameters in the API though, so it may be possible for you to code your own script to have a certain CC value change transpose or finetune etc if you wish. Not sure if anybody has tried it. Velocity routing and envelope follow settings are again things that could do with some improvement.

If you can output different pads on different channels you could do it though. Have an instrument for each type of drums, so you can set the NNA as you like per group. In the MIDI section of Instrument Settings you can then tie each instrument to it’s own track. Now if you were to use the xy (only middle pad has position?) and Velocity Tracker device to control effects on that Track you would be starting to get towards the flexibility you desire.

Thanks a lot, so that’s 1. and 3. sorted. But for 2. I was hoping that I would be able to do each of those things, not just the third (which for velocity I think the Duplex keyboard app would do). Any more hints?

Wow, thanks guys! I had no idea that answers would be so rapid.

Sounds like it’s already time to get my hands dirty with some scripting then… I’ll look into it. If anyone else has walked this road before I’d appreciate your input.

well, you could script a function which would allow you to send midi-CC which would control a specific sample’s pitch. would that help?

Yeah, that would be the general idea. I’m a complete beginner with lua but this doesn’t sound beyond my potential capabilities.

well, can you map out which specific samples you wish to control, and which settings of them you wish to control? i read you wanted to repitch snares, you could …hmm… except every slider change would mean that the previously played-in sounds would pitch to that pitch.

well, anyway, could you tell me which sample settings you’d like to affect via midi?

Hmm… that’s interesting – so a solution that worked for live kit playing might not work when recording.

The main idea is that the snare needs to be dynamically interesting (and closed hi-hat ideally, but that’s less important). So it sounds like the snare should have it’s own track and dedicated instrument, with the other drum sounds on another track. I think the Duplex keyboard would allow this to be triggered from a pad (I can’t assign one pad a dedicated channel with hardware, but might be able to do something with e.g. Midi-OX if needed). So let’s say I have this set up. Here’s my wish list:

i) affect fine tune and panning with velocity / CC data.
ii) affect transpose with velocity / CC data.
iii) affect filter settings e.g. cutoff value of the instrument with velocity / CC data.
iv) play different samples depending on velocity / CC data.

It sounds like I can do iv) with velocity (“you can set an instrument up to trigger different samples depending which note is played, how hard it’s played and when it is released”) but I can’t see how to do this from looking at the manual.


Wait, I just figured that last thing out from looking more closely at the screenshot at Screenshots | Renoise. So that’s not a problem.

Transpose and Finetune are for the sample and not automatable. This means, that even if you got it so you could play live with the variants you want, this is never going to be recordable as midi type data. You could try and low Tick value (1 ideally although it will affect other parts of renoise) and then use the CC value to enter Pitch Slide Pattern Effect Commands…

Ok, I think I see. So in order to get exactly what I want, my script should be such that CC causes the sample pitch to change when playing live, but when recording it converts this data to pattern effect commands. Or could I use these commands on the fly?

I really don’t know. For a start LUA is not realtime but only works at the GUI level so it is not really designed for time-critical recording of data, which you could argue that this fall under. I think you would have to experiment and see what gets closest to your needs. Maybe even consider a third party sampler plugin…

Right, ok. I think your suggestion about VSTs is probably the right way to go – I’m going to give Shortcircuit a shot. And maybe make a request for some of these features in Renoise 3.0

Edit: Thanks so much for your help! Very impressed with the community spirit.