Feature request: Improved MIDI recording, adding usual standards and maybe a bit more

Hi,

Renoise is such a nice DAW, but when it comes to basic midi recording, it is quite frankly a mess. There are a lot of basic problems with midi recording, which I think could be solved with a proper thought concept update. I already posted such a request back in 2017, but I would like to update here my thoughts. I also spoke to a bunch to Renoise users, which are much better in live recording than me, and all agree that Renoise is problematic here.

I wish you devs could take heart and finally come up with improvements here. I would like to list the problems first and then discuss a solution for each problem. If you guys have ideas, please refer to the point and write about your solution for it. Thanks!

So I see these essential problems:

Problem 1: Midi CC recording

Midi mod wheel (cc#01) and pitchwheel and so on are all always recorded as pattern commands. This really messes up maintainability quickly. As soon as you want to record multiple of these, you are required to use even multiple tracks! So this area as I see it is filled with a lot of workarounds instead of an easy and nice UX. Even worse, the midi pattern automation always requires the instument number, so it semi-automatically opens a new sub-track on the right. This can easily collide with on/off automation, and still leads to spontanous accidentally on/off automation, too.

Problem 2: No overwrite for midi value recording

If you map a midi control to a slider, the automation recorded will mess up, if you try to overwrite it. So you have to stop recording, go into the automation, delete points, and then try again. Flow is completely interrupted.

Problem 3: Mess up while pattern looping, note-offs are messed up

If you record in a pattern loop, Renoise comes up with a bunch of bugs. For example, if you hold a note longer then the pattern, Renoise places the note-off after an already recorded note at the beginning. So Renoise does not seem to remember already recorded notes in the current take, neither interprets the note data correctly at the current position.

Problem 4: No proper overwrite mode

It is simply not possible to automatically overwrite notes. It will completely mess up the track.

Problem 5: Moving notes in a multi-voice track is very tedious

As soon as you record more than monophonic stuff, or have just overlapping notes, the editing of this will be very difficult. You will have to fix often note placements, always keeping an eye on the related note-offs. It is neither visually easy to see. Both UX and visibility are just like a Soundtracker 1 or so.

So here are my approaches for these problems. I am convinced that Renoise requires an objective representation of the recorded and playing notes while recording, and NOT just iteratively interpret the pattern data at cursor. So while a recording, Renoise should directly record the notes into note objects, which are in some kind of list structure, and once recording is stopped, THEN the list is written into the track. This also requires conversion pattern data → object representation and vice versa. The permenent storage here then still can be only the pattern data.

Solution 1 It should be possible to record midi cc straight into an Instrument Midi Control device instead. All of it, pitchbend, mod wheel, mono aftertouch. Using the Renoise mapping, I can at least map midi cc#1 / modwheel to the MIDI Control device. But this does not work for pitchbend, since you can’t map it. Why? And why is fresh automation lane always in points mode by default, and not the recent line mode?

The mapping of the controls in this context also is a show stopper, because then you will have to map the device, and then unmap it as soon as you edit another track. So the mapping would require some filter at least, like “only apply to selected track”. Then you could map to each track’s midi device first. And save the whole setup into your template.

Solution 2 Overwrite mode would be an essential IMO. Once activated, automation AND notes should be properly overwritten. Tools can’t really fix this, it will be always a workaround.

Solution 3 I think this one could be quite “easily” fixed in a dirty way at least. Remembering currently used sub-track numbers and its playing note, and if a new note appears after loop, do not set a note-off anymore.

Solution 4 As mentioned in solution 2, a general / global overwrite mode is an essential requirement. As described above, I think that Renoise needs a pattern<->object data conversion for this working properly.

Solution 5 It should be possible to select a note until its note-off with a single click+modifier. So you don’t have to manually select the range of the note. And then it should be possible to simply move the note around, and the surrounding notes are adapted on the fly, not destroying any other note. And then there should be a modifier key which allows moving within sub-ticks range (fine grained movement). So a real note-select + a non-destructive note-movement.

What are your thoughts here? Thanks for contributing!

2 Likes

Or maybe a new API version of Renoise could provide an objective representation of all note data. Note objects, containing all the note automation, contained in a list/queue like object. The tools then could read from it and also manipulate it. Once written into it, Renoise then takes care for all the correct placement.

So an abstraction layer for all the note + note automation. Then tool writing would be much more easy, and also not every tool would bring its very own implementation of interpreting pattern data.