New Tool: Vocal Ops

1029 vocalops3.png

does two things:

smoothing, which is pretty much self-explanatory.

mute the selection while fading the edges, where you you can set the fade duration in seconds or frames, or get it from the length of the current selection.

Even though it’s very limited I still decided to call it Vocal Ops because a.) that’s cheesy and b.) it’s what I intend to use it for: when working with vocals I don’t want to have two floating windows open (or even more should I come up with other ideas), so that would all go into this little baby. Maybe you people can give me a lot of ideas to put into it, so it would actually deserve that name… ^^

Please not that currently, undo behaves weirdly with this: to undo, you have to press undo twice, then redo.

Ignore version 0.01 please, I can’t delete it myself… (Bantai?)

Maybe you could add a feature that steps through parts of the sample where the amplitude lies below a certain threshold, to semi-automatically “gate” the sample.

I would imagine a workflow like this:

  1. User selects a threshold of -Xdb
  2. User clicks on “Auto-select next part below threshold”
  3. Loop markers (or selection) get set to the start and the end of the part below the treshold
  4. User fine-tunes the loop/selection start and end positions to match his preference
  5. User clicks on “Insert smooth silence at selection”
  6. User repeats steps 2-5 until all desired parts are removed/gated

Do you think that would work?

how do we install this,cant drag n drop??

that’s a great idea! but I think we can’t set the selection in the sample editor with scripting yet, just read it (I might be wrong though). I thought of something similiar, but without the manual tweaking, just gating practically… but doing that properly would proably make my head hurt, even doing badly would - so I like your idea much more (and even that will still be challenging enough once it’s possible :D) thanks!

oh, I totally forgot about that.


i just tried loading it up with a vocal sample,and it crashes renoise and i get program is not responding message

Nice customizable ‘smoothing’ function, cheers!



hmm, I kinda assumed LUA would be cool with doing

local new_buffer = {}  
 for int_frame = buffer.selection_start, buffer.selection_end do  
 new_buffer[int_frame] = real_average  
 for int_frame = buffer.selection_start, buffer.selection_end do  


instead I’m up in your memoriez, corrupting it… :( (I assume, I never had it crash on me, but I think this might be it)

but I’m going to bed soon so, I guess someone else will have to fix it… :D

okay, so at least it’s only crashing for 50% of end user people right now! XD

but yeah, until a knowledgeable person looked at this I’ll add a disclaimer to the first post… because throwing an error, yeah okay, but CRASHING RENOISE!!! whoooa… don’t wanna have that kind of blood in my hands :P

Doh. This is my bug.

You should never be able to crash Renoise with a script (well, endless loops can not really be avoided, but thats a different topic). If you manage to do so, then please let me know. This is a bug in Renoise and should be treated like any other crash bug…

HAH! I knew it. you noob!


so the code I posted is okay from a LUA perspective?

No, that’s definitely not a good idea. if you need a sample buffer, create one in Renoise by creating a tem sample/instrument, then throw it away afterwards. Using lua tables this way wastes a lot of memory, and will also be slow.

On a second thought: The script maybe simply takes ages to do its job? Its not crashing, but its simply “frozen” for a while?

Please carefully use the term “crash” to avoid sudden heart attacks on my side.

but it doesn’t do anything of the whacky stuff that can happen when you get sloppy with C and arrays/pointers, right?

what’s the best way to do that?


removes bright red disclaimer with caps

Of course. When I’ve done a mistake, then this can crash the C++ code that is running behind all this. But this is as usual my problem, and not yours. Feel better now?

I don’t know what you’re saying, but I like the sound of it…

yeah, that’s good to know. “just like PHP” :D

I utterly love how LUA/Renoise immediately tells you where what went wrong, by the way, I just wish that could be more “syntax” highlighted: error message, file names and line numbers -> maybe they could be bold?

Actually… I’m disappointed that I haven’t found a horrible bug in the scripting engine :lol:

any ideas how to make it suck a bit less in regards to smooth transitions with the parts of the sample outside of the selection? it’s a bit wonky with big window sizes(check it out with the draw tool)… hmmm. oh well, it works best with small window size and multiple passes anyway, so maybe I’ll just leave that as is.

edit: I think I have fixed this in a way that is not perfect, but good enough, so cheers :)

(Ab)Using the loop markers should be possible, though. At least I read in a thread about It-Alien’s Sampleslicer that he’s planning to use the loop markers to visualize the slices.

I agree that doing this fully automatically would be hard and prone to errors (and it would be no better than a gate) so giving the user the final word about where the silence should be inserted is the best solution, I think.

thanks, that’s a nice idea, but still… that would feel ugly :( and what about samples that have a loop already set?

selections are much easier to handle, I mean mouse wise… and this is what they’re for, so I’d rather hold out on that one.

actually, I think manually selecting the parts I wanna mute might even be faster than tweaking the variables until they are somewhat reliably detected, and then still having to tweak them indidivudally…?

by the way, my personal “trick” for this is to vertically zoom in a lot, until only the breathing noises aren’t clipped - then they’re very easy to spot (for a human, not so sure about algorithms), sometimes I don’t even have to listen to what I’m doing.

it’s mostly the (mute it, select the start, fade in, select the end, fade out) part I want to reduce to a single click…

but hey, it’s open source after all, so if there’s a real demand it will surely will creep its way in there somewhere :)

You could save the old loop positions and restore on closing the dialog

I agree completely.

I agree again. Now that I think of it, my suggestion was not such a great idea after all :rolleyes:

Time will tell, time will tell.

well yes and no - if the API allows us to set the selection some day, I might toy around with this… but until then, I don’t desire it enough to make it work with loop markers :P

maybe that could even be another tool, something that sets the selection… “next silent part”, “next peak”, “expand selection to zero crossings on both channels” etc. etc., more than I can think of right now, so that really should be it’s own floating window, so all other tools can enjoy it too :D

Done for the next Renoise update.

hooray! scriptable renoise is the best thing since sliced bread, and it’s kinda hard to fathom just exactly how much work went into this…

speaking of hard work, I updated Vocal Ops :lol:

realized it breaks undo! so use with care, and if anybody has a suggestion, I’d be grateful, because this and the wasted memory kinda are the only things that keep me from submitting it to tools.renoise.