How To Delete Delay Effect, Not Note?

Hi, I’d really like to know how to delete the delay effect htat my cursor is on, not the note that is on the same row as the delay effect. How do I do that, please?

i guess i’m missing something here but either
hit 0 for one or both delay digits in record mode or
use the advanced edit thingie and select only delay, selection and cut. (quite awkward, yes)

but i’m guessing you are after something else here, amirite?

Yeah, definitely looking for a computer keyboard solution to this, not a mouse workaround involving 4 steps :)

Put the cursor over the Delay value.
Hit the Delete key.

What is wrong with that?

could be that there is a tool for this. it’s def scriptable. maybe you can use http://tools.renoise…replace-pattern ?

You are using Delete and not Backspace aren’t you? As Backspace deletes whole line and moves the rest of the Pattern up a line. Delete only deletes what is under it. (Note/Delay/Vol/Pan etc - Not the whole lot.)

You’ll probably end up scripting this anyway, so here you go:

  
  
function delete_selected_note_volume()  
 renoise.song().selected_note_column.volume_value = 255  
end  
  
function delete_selected_note_panning()  
 renoise.song().selected_note_column.panning_value = 255  
end  
  
function delete_selected_note_delay()  
 renoise.song().selected_note_column.delay_value = 0  
end  
  
renoise.tool():add_keybinding {  
 name = "Pattern Editor:Column Operations:Delete Selected Note Volume",  
 invoke = function()   
 delete_selected_note_volume()  
 end  
}  
  
renoise.tool():add_keybinding {  
 name = "Pattern Editor:Column Operations:Delete Selected Note Panning",  
 invoke = function()   
 delete_selected_note_panning()  
 end  
}  
  
renoise.tool():add_keybinding {  
 name = "Pattern Editor:Column Operations:Delete Selected Note Delay",  
 invoke = function()   
 delete_selected_note_delay()  
 end  
}  
  

This will delete the values for whatever note is underneath the cursor. Maybe “Pattern Editor:Column Operations” is not the best place for the keybindings, but you can change that if you like.

128 and 64 isn’t it? Both 7 bits, volume max (128) and Pan central point (64.)

Although both maybe should be rounded down by 1…

Nope. I wouldn’t post unless I’d tested it first :)

Values from a blank C-4 note with no volume, panning or delay values set:

  
>>> print(renoise.song().selected_note_column.note_value)  
48  
>>> print(renoise.song().selected_note_column.volume_value)  
255  
>>> print(renoise.song().selected_note_column.panning_value)  
255  
>>> print(renoise.song().selected_note_column.delay_value)  
0  
  

Values from a C-4 note with volume set to 80 and panning set to 40:

  
>>> print(renoise.song().selected_note_column.note_value)  
48  
>>> print(renoise.song().selected_note_column.volume_value)  
128  
>>> print(renoise.song().selected_note_column.panning_value)  
64  
>>> print(renoise.song().selected_note_column.delay_value)  
0  
  

So, yeah, if you actually want to keep the commands in the pattern and just set them to their default values, then you’re correct to use 128 and 64. But if you want to clear them completely then you need to use those special out of range values to override it. (I didn’t design it this way!)

There’s a similar thing in place for note-off commands. The valid/active note_value range in Renoise is from 0 to 119, while a note off is actually represented by a note_value of 120.

If Delete is set to “Delete Current Note or Effect” then yes, it does delete current_row effect or delay, but then the cursor moves an editstep amount forward, instead of staying in its place. It’s very confusing.

Obviously what would be perfection would be to detect which column one is in, and run a different delete-command per row, which I’m hoping that vV’s Content Masking and what dBlue posted will enable me to eventually focus enough to do :)

wouldn’t having shortcuts/presets to setups in the advance edit pane be a pretty nifty thing?

just like how you can recall screen layout via f1 to f8? check whatever buttons you like and right click a recall button to store it.

API having the Advanced Edit in it’s entirety and them being either automatically keybinded in Native renoise (expand, shrink ;) )
or accessible by add_keybinding.

OK fair enough, putting FF in manually also clears it. I submit to your method being correct and tidier.

Really? So internally it doesn’t follow the same note structure as MIDI? Strange that the XML then shows as actualy note value as we read it, not any numerical representation. (Although it does cover a perfectly valid audible range, MIDI really doesn’t need to go to Note0 at around 8Hz, and I assume the value in the XML gets translated into a number value for the core code of Reniose (C++?). Still would of thought it made sense to mirror MIDI’s standardbut as long as it’s working :)

Exactly the same as it would if you entered a value there! Set your editstep to 0 :P

But it does do exactly what you asked for in your first post and you can’t deny that.

So either it solves your problem or you should ask your questions better :P

Ok, I’m up for the challenge.

Pattern Editor: Delete Current Note or Effect moves the cursor according to editstep amount.
Pattern Editor: Delete Current Row in Column however ignores editstep and deletes quite well. However, while it does have the cool feature of being able to delete pattern effects, it acts too heavyhandedly towards instrument,delay,pan,volume section.

So how do I do a “Delete Current Note or Effect”, retain previous_editstep, treat that command with editstep=0 , run the command, and set the editstep back to prev_editstep? :)

Thank you very much for these pointers! That’s really quite lush. I hope to be able to utilize these in other ways, and it is nifty to have a cursor_is_on cmd-n which kills delay from said_cursor.

How would one go about accomplishing this removal of delay values, or setting of it to every_row of the selected_track +pattern?

Mmm, this is very nice.

Let’s see if I can have it detect all the 3 states of the cursor and map these all to a selectable 2nd delete.

Quite a lot of confusion aside, I now have a little script shiwh +1 / -1 's the delay. While it does it very roughly (I’m sure dBlue wouldn’t mind me already catching how to modify min+max to work with note effect data :) ))) but it does do it.

  
  
function minusdelay()  
local d = renoise.song().selected_note_column.delay_value  
local nc = renoise.song().selected_note_column  
nc.delay_value=d-1  
end  
function plusdelay()  
local d = renoise.song().selected_note_column.delay_value  
local nc = renoise.song().selected_note_column  
nc.delay_value=d+1  
end  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Increase Delay",  
invoke = function() plusdelay()  
end  
}  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Decrease Delay",  
invoke = function() minusdelay()  
end  
}  
  

min.max it is :)

function plusdelay(chg)  
local d = renoise.song().selected_note_column.delay_value  
local nc = renoise.song().selected_note_column  
--nc.delay_value=(d+chg)  
nc.delay_value = math.max(0, math.min(255, d + chg))  
end  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Increase Delay +1",  
invoke = function() plusdelay(1) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Decrease Delay -1",  
invoke = function() plusdelay(-1) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Increase Delay +10",  
invoke = function() plusdelay(10) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Decrease Delay -10",  
invoke = function() plusdelay(-10) end }  
  
function pluspan(chg)  
local d = renoise.song().selected_note_column.panning_value  
local nc = renoise.song().selected_note_column  
--nc.delay_value=(d+chg)  
nc.panning_value = math.max(0, math.min(128, d + chg))  
end  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Increase Selected Panning +1",  
invoke = function() pluspan(1) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Decrease Selected Panning -1",  
invoke = function() pluspan(-1) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Increase Selected Panning +10",  
invoke = function() pluspan(10) end }  
renoise.tool():add_keybinding {  
name = "Pattern Editor:Column Operations:Decrease Selected Panning -10",  
invoke = function() pluspan(-10) end }  

Altho panning tends to be a bitwonky