New tool (3.1): MidiPerformer

MidiPerformer is a new tool that brings a MIDI “record-arming” type workflow to Renoise.

It allows you to specify, at any time, which of your MIDI controllers that should be allowed to record notes.
By default, Renoise always records MIDI when edit mode is enabled (the record button + red border around pattern). This tool offers a lot more fine-grained control by allowing each controller to be record-enabled independently of one another, either manually or by listening to specific criteria (is the assigned track silent? Is it muted?).

To use it, launch the tool and it will present a list of all instruments that specify a MIDI input:

midi-performer-screenshot-2.gif?raw=1

Click the record-arm button (or use the provided MIDI mappings) to toggle manual record-arming for a given instrument
(alternatively, you can synchronize record-arm with edit mode in Renoise by enabling this feature in Options).

A bright red button means that it’s enabled and ready to record. A dark button means that it’s not.
A dimmed red button means that it’s record-armed, but some condition has temporarily disabled recording - for example, that the assigned track is muted or silent.

You can add any number of instruments and control their MIDI settings from the MidiPerformer GUI. These settings are exactly the same as in the Renoise counterpart (Instrument panel > MIDI)

HOW IT WORKS (LIMITATIONS)
The tool is jumping through a few hoops in order to achieve it’s goal. First of all, you need to let it wrap the assigned tracks in a group track. This is the trick that makes it possible to “block” notes (otherwise, they would end up in the pattern). Also, you should go to Renoise preferences and disable any MIDI inputs that you are planning to manage using this tool - otherwise, incoming MIDI from those devices can still be recorded by accident. You can still continue using other controllers, of course.

Also, there is a limitation when a group track contains multiple assigned tracks: the next time you load the song those instruments might end up being assigned to the same track.
I’m thinking of various ways to solve this problem, but for now, simply create a group track for each assigned track (or let the tool do it for you).

IDEAS, ROADMAP
The tool is serving a particular purpose. But it could be interesting to add more “instrument features” to the grid. For example, global control of transpose or volume. An instrument “mixer” of sorts :slight_smile:

Thanks a lot Danoise,a Tiny video would be great to see how it runs.

Nice!

Just some very small suggestions for a rainy sunday, perhaps:

  1. Since the logistics for observing midi inputs and instrument list are already there, it might as well have the instrument_name_observables hooked up to keep them updated as well? 2) Would it make sense being able to delete/clean up instruments to the list that have none as input? (A small [X] far right)

Thx for the input guys,

just wanted to say that apparently, I missed a very important detail in this initial release: when the tools starts, and your song contains instruments that can be managed by this tool it actually will record ALL instruments. Exactly what it shouldn’t, haha. I must have broken it in the last minute…

It’s a quick fix and I’ll post another version later. Perhaps even with a little demo video.

I’ve uploaded a new version. Should take care of the issue mentioned above.

Also added joule’s suggestions. Small but useful additions.

I shot a quick introduction video:

I was using v0.1 for making the video, so you might spot a few differences compared to the current version…

I hope that Finnishcoffee is very happy! :slight_smile:

I surprised by the speed in the creation of the tool. Danoise, thank you always for supporting and helping!

Creating a tool with LUA is fun, more if the creator gets help when he needs it.

Hey Raul, just like you I find coding fun and challenging. I’ve spent thousands of hours tinkering with the Renoise API.
But now, in 2016, my code libraries (cLib, vLib, xLib) are what speeds up things. For each new tool, they improve a little bit…

Found a bug: if your instrument is assigned to “Current Track” and you park it in a non-sequencer track (send or master track) it can trigger an error.

Edit: fixed in v0.21. Also, the tool will now use the groupnearest to the track (when you have groups in groups…)

MidiPerformer is a new tool that brings a MIDI “record-arming” type workflow to Renoise.

It allows you to specify, at any time, which of your MIDI controllers that should be allowed to record notes.

By default, Renoise always records MIDI when edit mode is enabled (the record button + red border around pattern). This tool offers a lot more fine-grained control by allowing each controller to be record-enabled independently of one another, either manually or by listening to specific criteria (is the assigned track silent? Is it muted?).

To use it, launch the tool and it will present a list of all instruments that specify a MIDI input:

midi-performer-screenshot-2.gif

Click the record-arm button (or use the provided MIDI mappings) to toggle manual record-arming for a given instrument

(alternatively, you can synchronize record-arm with edit mode in Renoise by enabling this feature in Options).

A bright red button means that it’s enabled and ready to record. A dark button means that it’s not.

A dimmed red button means that it’s record-armed, but some condition has temporarily disabled recording - for example, that the assigned track is muted or silent.

You can add any number of instruments and control their MIDI settings from the MidiPerformer GUI. These settings are exactly the same as in the Renoise counterpart (Instrument panel > MIDI)

HOW IT WORKS (LIMITATIONS)

The tool is jumping through a few hoops in order to achieve it’s goal. First of all, you need to let it wrap the assigned tracks in a group track. This is the trick that makes it possible to “block” notes (otherwise, they would end up in the pattern). Also, you should go to Renoise preferences and disable any MIDI inputs that you are planning to manage using this tool - otherwise, incoming MIDI from those devices can still be recorded by accident. You can still continue using other controllers, of course.

Also, there is a limitation when a group track contains multiple assigned tracks: the next time you load the song those instruments might end up being assigned to the same track.

I’m thinking of various ways to solve this problem, but for now, simply create a group track for each assigned track (or let the tool do it for you).

IDEAS, ROADMAP

The tool is serving a particular purpose. But it could be interesting to add more “instrument features” to the grid. For example, global control of transpose or volume. An instrument “mixer” of sorts :slight_smile:

Ooooh… :w00t: Downloading this now… Will try it out as soon as real life stop kicking me in the balls and I have time to do some ReNoising again. :slight_smile:

Will try it out as soon as real life stop kicking me in the balls and I have time to do some ReNoising again. :slight_smile:

Very cool. Since I have limited use for this tool myself, I’m all ears.

But also, no pressure!! I’ve subscribed to this topic will get notified as people comment…

1 Like

Good lord it’s been a while… School is killing me…

I finally managed to get some time to test out this tool and I’m to stupid to make it work.
It recognises the volume sliders that I put on Group volume to the point where the tool itself says “Auto” and “silent”.
But the darn editor is still recording either all notes, or none.
I see something about having to disable the midi controls tool is supposed to manage and that is probably where I fudge up. I can not figure out what midi stuff to turn off in there.

https://www.dropbox.com/s/ayhcp86ad0diaep/Capture.JPG?raw=1

I’ve tried everything so far but i’m either getting all VST recorded, or none. I also get some reslly strange things happening with interrupted notes even tho the editor is not showing any Note OFF inputs.

I’m thinking this could be related to MIDI routing and that each vest that is supposed to be armed or un-armed must sit on different MIDI channels, but if I do that, ReNoise stars to act weird and the assigned Tracks randomly stop working for one or more of the VST.

Oh and umm… How the heck do I add screenshots here? Thing asks me for a URL for images and that’s not working well with DropBox files it seems like. :unsure:

OK, I see. I must admit, this is one tool I had pretty much forgot about.

Only the fact that there’s a unresolved bug makes me think about it every now and then <_<

It certainly hasn’t been tested enough…so good that you report this. I’ll give it a little spin tonight.

Oh and umm… How the heck do I add screenshots here? Thing asks me for a URL for images and that’s not working well with DropBox files it seems like. :unsure:

It’s indeed related to dropbox. Replace the ?dl=0 with ?raw=1 and you should be able to embed images.

Just did a quick test, and it works “as advertised”.

I did the following:

  1. Made sure no MIDI inputs were specified in Renoise prefs.

  2. Loaded an instrument (in my case, sample based).

  3. Launched the tool and clicked “Add instrument”

  4. Selected my MIDI input from the tool

  5. Clicked the record-arm button - lights up with red, saying “Manual”

Now if I start pressing keys they end up in the pattern.

But the moment I mute the track or turn the volume down, the special group track is created and notes are routed here, instead of the track.

As for the glitches you’ve experienced:

I’m thinking this could be related to MIDI routing and that each vest that is supposed to be armed or un-armed must sit on different MIDI channels, but if I do that, ReNoise stars to act weird and the assigned Tracks randomly stop working for one or more of the VST.

I don’t know, haven’t really tested this with plugins. Perhaps the jumping between tracks affect things somehow.

The instruments I tried with were using effects though, and that makes them behave much the same as a plugin.

Have you tried to route the audio explicitly to a track instead of letting it output on whatever track it’s assigned to?

You can adjust this through the plugin properties (although this is surely a thing the tool could display as well).

Now, if you care to spent more time with this, cool. Just be aware that the tool is rather rough around the edges.

That’s the same reason I haven’t released it on the tools page - didn’t really feel it was ready for primetime.

But I’m seeing a lot of interest - so I would be nice to investigate how it could be improved.

To begin with, It simply could be more intuitive to use. I was going “WTF” myself, the first time I booted it up after a while.

And secondly, by letting the whole “record-arming” feature be more of nice sub-feature and not the central thing.

Instead I would focus a bit more on adding additional instrument properties. Because it’s great to have that overview.

Working with a MIDI controller and keyboard eliminates the need for doing effects via ReNoise tracks. ReNoise is excellent as for MIDI-learning any filters or effects to any given knob, button and fader, of wich I have plenty on the MIDI controller. Those are not a problem, and ReNoise will happily record any little adjustment I do in real time - UNLESS I disable a bunch of stuff in the settings for MIDI controls. Then it makes things… well… Not work. LOL

The main thing I actually DO need is that arm-record thing since when you got 2 synthesizers in front of you, my arms are not long enough to reach the computer keyboard and mouse.
Having those on either side of the whole rig is also inconvenient (for me that is) since my hands need to be on the keyboard as much as possible, not flailing around searching for computer keyboard or mouse. :panic:
I’ve tried a TON of DAW and not a darn one of them has the Arm Record even open up for MIDI learn. I find that mindboggling since toggling instruments on and off (as in VST plugins) is the most essential thing of all.

My goal is to be able to control ALL things recording related from the controller, hence they are called “MIDI Controllers” after all. :smiley:
So far, I can do nearly everything from the M-Audio except that Arm-Record on a per instrument basis.

Ideally, the “-INF” thing would simply turn off any and all MIDI being sent to that particular VST as well as the track it’s routed to, then resume MIDI communications with it as soon as it is no longer “-INF”.
That is basically what the Arm Record does in the DAWs that have it. Unfortunately though, as mentioned, I have yet to find one that allows me to put their Arm Record on a MIDI cc or even hotkey. They require mouseklicking wich is exactly what I want to get rid of, mouseklicking things. :slight_smile:

I must be the only person in the world of music that makes music this way it seems. lol

(( The Original YouTube video explaining the problem ))

I have a trial version of Presonus Studio One2 installed for the moment. I could make a video on it to show how it works there with Arm Record per VST (MIDI OFF/ON in reality).
I don’t use that DAW either though since we can’t map the Arm Record to anything, and also… ReNoise is much cooler with the tracker that we all love.
I hate pianoroll editors with a passion. :stuck_out_tongue:

Last but not least: This is not a rant. I’m grateful for any efforts improving ReNoise workflow with MIDI. At my age, stretching across the instruments for a mouse or computer keyboard and flip a switch on the actual screen is not an option in a recording where you have a second at best to make the change before your fingers gotta be back on the piano keys. :smiley:

It’s funny when you mention avoiding mouse-clicking. Because, right now I find it damn confusing that you can’t manually toggle record-arming on the tool.

Maybe we’ve taken the idea of avoiding mouse-clicks a little_too far_ :slight_smile:

What clicking does instead, is to toggle between “auto” (synchronize with edit mode in Renoise) or “manual” record arming.

But that doesn’t really make much sense, IMO. I mean, it’s good to have the choice, but you are not likely to mix auto and manual settings for different instruments, are you?

So I would rather see this become a global setting for the tool instead of a per-instrument setting.

Then, clicking the record-arm button could instead do what everybody would expect for such a tool: toggle record-arming :slight_smile:

I’ve tried a TON of DAW and not a darn one of them has the Arm Record even open up for MIDI learn.

That’s weird - but, just like this tool kind of “encourages” you to map the volume or mute states of the mixer, wouldn’t the same thing apply to other DAWs?

I mean, this tool is also not (yet)offering direct control of the record-armed state, it achieves this by looking at the state of the mixer.

Well the mouseklicking I mean is the one that you gotta do many times, equivalent to mute or solo buttons.
The tool itself works just fine as far as seeing when the volume slider on my m-audio is pulled down to -inf. That’s not the problem either. Works flawlessly.
It’s just that for whatever reason, Renoise, the main editor, refuses to give control to the tool and so the midi notes and everything on that track is still being recorded when the tool is reporting the instrument and track as “silent”.
As soon as I hit “edit” (wich I have mapped to a button on the M-Audio) - The tool does what it’s supposed to do with the “auto” thing, it registers what’s going on.
The darn main program however, seems to ignore this and keeps recording everything and sending notes to the VST, even tho they are not in rality producing any sound because their volumes are zero.
The kicker with that is that when I got some of the more demanding VST’s - even my 8 core CPU occasionally gets overloaded and cause a crackling static noise.
This is easier to avoid if the silent VST don’t recieve any MIDI signals at all, as in doesn’t trigger all the stuff a softsynth like VST does. :slight_smile:

It also creates a problem when certain filters are recorded on silent tracks, such as modulation, pitch, sustain and other similar things.

What I mean by that is in a scenario like this:

Solo instrument is active, I use a lot of modulation and other faders to make it sound more “alive” with variation. A controller usually has only one modulation wheel and so more then one VST are reacting to it.
But the silent ones are not supposed to be affected but are in fact recording all those things as well. So when I switch to another VST and I have not manually put back the modwheel, that instrument can sound very weird or different. Orchestra strings are a good example of those types of VST for the modwheel very often controls tremolo and/or attack “breath control” on those.

When a DAW has arm-record properly working, the vst’s set to not be recorded does not recieve midi control commands at all. Just like real life instruments do nothing when it’s not their turn to sound.

Working with MIDI like this is so much more fun to me then samples and doing one track at the time in a very timeconsuming and “programming” style.
I much prefer to play as much of it as I can simultaneously and use the MIDI controller the way it’s meant to be used.

Hmm… Not sure that made things any clearer. LOL - But it’s how I prefer to make music. So much of what I do is made up on the fly, while playing just for the sake of playing.
The old school way of doing one instrument at the time takes immense time that real life does not quite have room for. My workflow is much easier (and more fun) if I can just hit the start recording and then do everything directly from the M-Audio. Especially considering that I almost always record with OBS Studio and visualizer and stuff hapening all at once. :smiley:

Indeed, the volume and all that does work. It’s just that ReNoise for whatever reason, record everything wether you want to or not, on all VST, as soon as there is MIDI Routing going on.
Presonus Studio One2 has the record arm per instrument and it does make it so that the VST that is not armed, doesn’t do a darn thing. it’s completely passive, the way it’s supposed to be.
But the idiots that made that program and other DAW’s - Forgot to put in a way to map that arm-record button for each track/instrument to anything at all - We have to klick the tiny little things on the screen with the mouse cursor, and I just can’t do that while recording live like this. Not even Apples superfamous program ProTools has that specific thing mappable - At least not in the version I tried. I don’t know about the newer versions since they run only on MacOS nowadays.

Aside from that one little detail, ReNoise is exactly the kind of DAW I been looking for ever sine I worked with Amiga back in the early 90’s and a program called “OctaMED Soundstudio”.
It’s much much easier for me to read the tracker when I need to, for there are times where I do record one or more instrument tracks separately. Then I don’t remember the chords I used unless I can see them coming on the screen, and that’s where the Tracker GUI of ReNoise shines. Pieanoroll editors are much harder to read out since again, some idiot decided to put them verticaly on the screen.
There is no such thing as a vertical pianoroll that I know of. I’m playing the Piano, not an accordion. LOL -
Also, not all DAW even has the note name (i.e C#3) clearly visible on their pianorolls. it’s just a bunch of lines and dots on a striped background texture that is almost painful to look at while playing.
ReNoise also seems to run smoother on my system then most other DAWs except possibly for Reaper or what it’s name is.
ReNoise also seems to be able to run a mix of 32 and 64 bit VST’s without the aid of third party program Jbridge. (Presonus crashes every so often).
and finally… Renoise has a much nicer pricetag on it then the hundreds of Euro others cost. :smiley:

If we only had the individual Arm-Record MIDI mappable it would be the purrfect DAW. :w00t:

Woah, big subject. I’m going to stick with the points about Renoise.

First of all, it’s intentional that the keyboard will continue to trigger notes in a muted track.
When record-arm is off, it’s basically in “rehearsal mode”. You can play, but things are not recorded (well, we’ll get to that).

So if you would like it to not trigger notes, well this is possible too, but it adds complexity:
The tool would need to temporarily disable the MIDI input for that instrument, and then re-enable it as needed.

Now, you mentioned that you are using MIDI mappings for all sorts of things, and therefore, can’t really
let the MIDI inputs (in Renoise prefs, that is) be left unassigned. That makes sense, but it will conflict with the
idea about temporarily disabling the MIDI inputs, because then the Renoise default behavior takes over and notes
will be recorded in the selected track, for the selected instrument…

Now, the final bit: why you are still getting notes recorded. I just did another quick test, and was able to
select my keyboard in the Renoise prefs without it interfering with the record-arming workflow.
I guess I discouraged having it enabled there, because of the potential for the “default behavior” to take over,
but this only happens when you have it selected in Renoise prefs and NOT in the instrument MIDI input.

I am not entirely sure, but as I pointed out this tool is rough around the edges. If you could try to follow the steps
above and see … perhaps there’s something you are doing slightly different from me?
https://forum.renoise.com/t/new-tool-3-1-midiperformer/47001

hmmm …

If I can’t figure this out… In ReNoise prefs - MIDI what exactly do you want me to turn off?
One can put up to 4 devices here, “In device A - D”.
This is where I have Code 61 (The M-Audio controller) as In Device A
and then DigitalKBD-1 (The Yamaha underneath it) as In Device B.

Those have to be there, or none of the controllers, fader, sliders, buttons - you name it - will work at all.

Then there is a bunch of checkboxes under the “Record & Play Filter”
Velocities, Note Offs, etc etc… If I uncheck all those, pretty much same thing happens. They simply stop working.

I just opened up ReNoise with a clean slate and had everything off there, no devices selected either.
Then I load a vst and assign the Code 61 as Input Device directly in the tool and only there.
The result being that it does play the VST notes, but thats it. Sliders and all that stuff is not working, not even to map them to anything with the MIDI MAP key. ReNoise ignores it all since none of it is selected in its prefs.

Extra Info:

The MIDI standard consists of command parameters. 128 of them in total. Many of those have a specific effect according to General MIDI, for example MIDI cc 01 is always Mudulation, 02 is Breath Control etc etc…
Those might work directly to ReNoise via the Tool and using samples, I don’t know to be honest, I never use samples. hehe.

However, a large number of these MIDI cc parameters are not assigned to anything specific and those are the ones that I have on all the sliders and buttons on my setup. I then have a pre-made MIDI MAP done for ReNoise where I sat down and maped all these things to specific stuff, such as volume for track one is MIDI cc 21 (unassigned parameter in GM list), Track 2 is MIDI cc 22 (also unassigned by default in GM) etc etc…

This is why I can’t really have “none” selected as “In device A (and B)” in ReNoise prefs and probably also why MIDI input of any kind needs to simply be blocked to that specific instrument by ReNoise, and therefor not affecting the track it’s assigned to as well.
I know nothing about coding but I’m starting to think that ReNoise is reading MIDi Input first, then adds them to the track, then sends the track content to assigned VST whereupon VST proceeds to send to Mixer, then it goes to Audio Out.

When a vst is muted, ReNoise only stops the signal between Mixer and Audio Output.
This would explain why all VST are constantly “working” and doing their things, eating up CPU and recieving all kinds of parameter commands, even tho they are completely quiet and also putting all that info in the track.
Arm Record needs to stop it before it even reaches the track writing process and maybe that has to be coded into ReNoise itself by Tactic.

I have no idea what the scripting allows for.

If this is the case, the only workaround I can think of would be to have Arm Record in the tool thingy to suddenly change the MIDI channel for
that VST to some non existing dummy black hole instead although that would most likely produce an error or worse.
I could of course be completely out in the blue here tho. :smiley: