Link Note Data

Something that kinda bothers me in Renoise, now that I’m using mostly MIDI instruments instead of samples, is the way note data like note on, note off and velocity are different objects that I have to edit separately.

So I’m suggesting an option to make all note data linked, preferably with some graphic indication, kinda like this:

So pressing delete would erase all the note data.
Deleting other data than note on would simply delete that value but keep the rest.

Would there be any drawbacks to this? Not the way I currently use Renoise, but to others it may, so I’m asking? When would you want to delete the note on but keep note off, velocity etc?

If notes were treated like objects in this manner, I think it would make the step from a traditional DAW to Renoise a bit easier. While you still can edit the details just like we do now.

Got my +1
This idea keeps popping up from time to time. So chances are good that there is a lot too all this.

I would like some kind of different edit mode for this. Or just some “object mode” settings you can quickly toggle on and off.
Perhaps settlings like:

  • treat notes as objects
  • include velocity/pan/fx
  • Bundle data option, with tolerance setting

This way it is much easier to handle already existing data. Not just notes, but any data in the pattern editor.

For instance, when you see this:

C-4 .. .. 0101  
--- .. .. 0101  
Off .. .. 0101  
--- .. .. 0101  
--- .. .. ----  

It’s kinda obvious that the bundle of “0101” should be one “object” that you can much easier modify with these edit options.
I wrote a longer internal post about this years ago. Don’t remember if some of this was shown public back then.
Anyways, nothing secret about it. I’ll just copy/paste the post here:

As mentioned earlier when we talked about new edit steps (jump to next note etc), I also mentioned something
about a entire new edit mode.

So I tried to visualize how this could be.

The idea is very simple. The goal is to move/adjust existing data in an
easier/alternative way.
It’s kinda like the mixer. We already had a dsp chain for each track, but the mixer made it a lot easier for
ppl to handle many devices and just
mix fast and easy and do small adjustments here and there.
So is this idea, it’s nothing new really, just a helpful tool do do some things faster.

My idea is that renoise automatically bundles the data in the pattern editor and create
several selection blocks. You can then much faster and easier directly move these bundles/blocks around.

For instance:
This is from one of the demo songs:

1445 01 normal.gif

The way it works now is that if you wanna move a note up/down you have to select it, then cut/paste/DND,
or insert/del cells/lines etc.
Very tedious if you ask me. If you just insert a single clean c-4 note, then you are ok because you can
just delete the note and insert a new one, but if you have other data as well, then you wanna move the existing data.

So what if we had a mode (for now I call it ‘Object Edit Mode’) that would simply ,from some
criteria, bundle data together automatically? Like this same picture:

1446 02 full selection.gif

I just inverted the colors of the pattern data. I don’t know if this is the best way, but this is just
a fast sketch of things…

You see now that the data is bundled into selection blocks.
In this picture the note close to center is focused. You can then simply DND any of these
blocks around.

Using the arrow keys on your keyboard will not move cursor around or move up/down
one line as you are used to. Now it will select next object. So in this case if I press arrow up
it will select the block above. When you come to an end (the top block for instance) then
you will start move one line at a time. Left/right arrow moves to next column with a block
in it (visible on the screen).

This way you very easily move to blocks using the arrows in a way similar to how you
navigate to devices in the mixer.

To move a block using keyboard only, you focus one or more blocks and press Enter
This will then enable you to move the selected block:

1447 03 full selection move selection mode.gif

Red block means that you move this block with the arrow keys.
Press enter again to lock the block(s) again.

Now to push this idea further we can think of showing properties for these blocks in a graphical
way in the lower panel (in the automation or a combined (or not!) graphical window):

1448 04 selection included automation fx.gif

In this picture the little block of pattner fx’ commands are selected and shown in the lower panel.
Now in the lower panel I just borrowed things from other ideas just to give a clue of how this would look.

When selecting a note you see something like a piano-roll bar. It can be chosen to be shown by
the timeline and ignore the pitch separation like in a real piano roll. So for instance a chord
of 3 notes could be shown as 3 blocks next to eachother. The pitch is not what is important
here, the placement in time is!

If we had flexible lower panel you could also expand it a bit and also show a PR there.

The point is that is a graphical mirror of the data in the pattern editor.

This way it is possible to keep the visually quantized pattern editor and at the same time
have a more or less unquantified representation in the lower panel.

The lower panel have the advantage of not being dependent of showing the pattern editor.
When later having an arranger for instance then the lower panel would still be just as useful!
Also you can have independent zoom from what you see in the pattern editor and what you
see in the graphical editor. And that can save you a hell of a lot of time IMO.

If it was up to me I would love to have an option to toggle the Object mode and the normal
edit mode.
So when edit is ‘on’ you see the normal mode, and when you turn it off you see the blocks.
Of course this would be fully optional…

More ideas:

In the advanced edit box we could perhaps have a ‘tolerance’ setting to set how sensitive
renoise would be to set the blocks? Like how many lines between data, or if it should bundle
chords together etc or in the opposite range it will bundle only single cells… dunno if this is too
much. But something to thing about…

In the lower panel/graphical editor you have much more view options, like follow cursor, zoom
to block (like you see now), separate note columns, or show entire track, or even several
tracks etc. Much more zoom options etc…

More move options (using modifier keys): move objects one visible line, or move one real line,
or move one tick (this depends on how the pattern zooming concept will be)…

Hotkeys to adjust parameter values on selected block (also use mouse scrollwheel to do this?)

Some good ideas there!

This “object toggle” could allow for easier editing with a mouse, like dragging objects, moving note off… perhaps even editing data by click/drag.

While I enjoy how you can edit everything using the computer keyboard, I tend to use the mouse a lot these days - keeping one hand on the MIDI gear combined with a small crappy laptop keyboard makes sure of that. So I don’t think lack of mouse support should be defining a tracker. :)

Here is a little (actually my FIRST!!! working) script which adds a key-binding for deleting a note and its corresponding note-off.

Suggestions and tips are welcome!

Can you tell me please how the script works?
When deleting a note, the following note off is not deleted…

There’s a new key-binding.
Go to Preferences [CTRL + ,] -> Keys -> in the Search-box type “Delete Note”
The new key-binding will appear there as “Delete Note & Note-Off”
Assign a custom key for it and you’re good to go. I used [SHIFT + Del] for example as it was unassigned and sounded logical.

It also works when your cursor is not on the exact note but as well when it’s on the note-off or between the note and note-off.

Nice little script there.
You forgot
rs.patterns[pt_id].tracks[tr_id].lines[note_off_ln_id].note_columns[cl_id].delay_value = 0

to delete delay value for note offs.

Scripting will of course help. But can’t replace the idea for a toggle of these functions, and things like the visual aspects and mouse support.

There is a lot of stuff you can script however, like make a nudge and move function for notes. Being able to nudge the note a whole line up/down. Nudge with a custom set of sublines (like we can do in the advanced editor, but sadly can not put on hotkeys). Move notes to other columns, and resize notes etc.

At first I thought I messed it up somehow between different versions, but I downloaded and installed this one and strangely it works fine. Also this line is present.

Thanks, great! :)

This line was not present in my version, too, when I have downloaded the above script again.

I also added volume and instrument value

 rs.patterns[pt_id].tracks[tr_id].lines[note_off_ln_id].note_columns[cl_id].delay_value = 0  
 rs.patterns[pt_id].tracks[tr_id].lines[note_off_ln_id].note_columns[cl_id].volume_value = 255  
 rs.patterns[pt_id].tracks[tr_id].lines[note_off_ln_id].note_columns[cl_id].instrument_value = 255  

because when I record midi-note-offs from my synth, the volume is added to the OFF column.

Oh, didn’t think of that. I can fix this and make a new version.

EDIT: Here you go…

+1 for bundling data together as objects! If I’ve programmed some nice little snippet I want to keep it intact, move it easily and not slowly via keyboard mark/cut/paste. Drag’n drop makes for faster workflow.

Also such snippets (like note, note-off and related automation) could be easily retimed by dragging top/bottom of the selection. This would suit future Renoise very well if it has zoomable patterns and can have notes visually between the lines (I find current grid-based approach useful but it would be good to be able to break free from it for sound design, free tempo etc).

This actually would be really cool. It’d be nice if each note block could be resized as well as moved around with the mouse (increase/decrease note length). I like this idea a lot, it’d be nice if it behaved mostly like a piano roll (mouse shortcuts to increase/reduce volume of note blocks, etc). I’m not really asking FOR a piano roll, but it’d be cool if we could easily drag and drop resize move around adjust note placement etc. Maybe alt + click to adjust volume, command+click to adjust pitch? I’d use that.

Congrats and welcome to the club!

Good to see you making progress as a fellow newb!