New Tool: RubberBand-Aid

Hello all,

After grappling with the legacy Rubberband tool (which worked great for whole samples), I wanted to have access to some of the experimental options in Rubber Band, in addition to the ability to work on sample selections. I came up with this:
https://www.renoise.com/tools/rubberband-aid-timeshift-pitch-correction-and-multisample-builder

It works great for my own needs, and I wanted to let it out into the community. Please give it a try and let me know if anything horribly breaks. Luaā€™s not my first language, but Iā€™ve tried to make the tool as robust and flexible as possible.

Have fun and make adventurous music!

02.stretch.advanced 04.pitch.advanced 06.multisample.advanced

15 Likes

Very nice addition to the Renoise set of tools - thank you!

Thanks for sharing friend

Excellent tool, thanks!

Thanks for the kind words!

This looks awesome!

And indeed thanks for sharing!

I just uploaded a new minor version with a few bugfixes, with improved performance and clearer status messaging.

v0.6: 2020-05-19
----
- Improved status messaging
- Added coroutines to help keep UI from locking up during long operations
- Improved codebase
- Fixed: Incorrectly shifted loop points when timestretching
- Fixed: Loop mode reset for some pitch shifted samples
- Fixed: UI issues with button disabling and status text
2 Likes

Wow!!! I am commenting before trying because it looks exactly what I need :slight_smile:
If it is something like Celemony Melodyne (non-destructive, load-and-process-pitch-in-memory) plugin, then it would be possible to mix everything with everything!

Well, first that comes to my mind is possibility to create something like this:

Queen vs RATM vs Prodigy vs Skrillex - We Will kill the Breathe of Bangarang - Djs From Mars Bootleg

I will let you know how it goes!!!

Thanx a million! :grinning:

Just uploaded a fix for a serious bug which made the tool unusable for Windows users. Now fully tested working on Windows.

v0.7: 2020-06-01
----
 - Fixed path issues on Windows
 - Windows tested working

Good name on this one :slight_smile:

Looks great! downloading now, thanks for sharing!

Iā€™d like to request a feature:

Itā€™d be great if Undo command undoes the entire transformation that RubberBand-Aid performed, rather than only undoing the previous step in the sequence of actions it performed.

For example, if I just RubberBand-Aidā€™s ā€œTime Stretchā€ command to stretch a part of a sample, currently in order to get back to the state of the sample before the stretch was performed I have to hit Undo 5 times:

1 - Undo Delete instrument
2 - Undo Change sample data
3 - Undo Create new sample
4 - Undo Change SampleData
5 - Undo Insert Instrument

Instead of this, Iā€™d like to request that a single Undo command undoes everything RubberBand-Aid did to restore the sample to the state it was in before I issued the ā€œTime Stretchā€ command.

Thank you for doing the Renoise lordā€™s work. This is some great stuff, great GUI design and take on the classic Rubber Band tool. Really helps amplify the time stretching we have in 3.2!

Having a centralized Undo command would be great, as fugue said. But hey, programming is hard, take it easy :).

Got this error notice, having linked up the rubberband aid keybbindings to a keyboard shortcut while no actual sample is present in the instrument;

"ā€˜C:\Users\pluge\AppData\Roaming\Renoise\V3.3.2\Scripts\Tools\com.dlt.RubberBandAid.xrnxā€™ failed to execute in one of its key binding functions.

Please contact the author (DLT [dave.tichy@gmail.com]) for assistanceā€¦

main.lua:515: attempt to index field ā€˜indicatorsā€™ (a nil value)
stack traceback:
main.lua:515: in function ā€˜set_statusā€™
.\gui.lua:163: in function ā€˜gui_check_sanityā€™
.\gui.lua:479: in function ā€˜open_shift_dialogā€™
main.lua:170: in function main.lua:170"

MacOS 10.13.6 here, so homebrew is not supported. included binary does not workā€¦ I d/led the mac executable binary from breakfastquay and pointed to it in the rubberbandaid config path, but still no diceā€¦ advice?
please and thank you. looks useful if I can run it!

maybe it needs updating for 3.3? Iā€™m ingnorant, lol

OK, so yesterday I got rubberband installed via homebrew and pointed the tool to the binary executable path /usr/local/bin/rubberband and the tool actually worked!
ā€¦for a brief and shining instant I could timestretch and pitch shift to my heartā€™s content. All options were functional. Success!

Then, I left to do some things in real life, came back, and it was broken again, throwing up error messages:
Screen Shot 2022-02-16 at 6.25.39 AM
in terminal, however, running rubberband brings up the usage help text, and ā€œwhich rubberbandā€ points to /usr/local/bin/rubberband
So, it seems that it is fully installed in the system, but, every variation of this address Iā€™ve tried pointing the tool to returns the above error messageā€¦

Anyone have any ideas?

would be great to get this thing working consistently. Rubberband sounds decent (to me) and Iā€™d love to be able to mangle audio with itā€¦

OK, actually nevermindā€¦ I just needed to restart renoise, lol.

Itā€™s working ok now.

Fuggin, ā€œhave you tried turning it off and back on again?ā€ :upside_down_face:

3 Likes

I think the rubberband binary needs updating to latest to add support for M1 silicon chip, as I had to do this manually and replace the contents of bin/mac

I too had the same issues as you @slujr regarding setting the path. Perhaps I needed to turn off and on again :slight_smile:

fwiw, brew installed rubberband to this location on m1 mac. which you then need to point it to in rubberband configuration
/opt/homebrew/bin/rubberband

restart renoise and it works!

1 Like

anyone got tips for getting results like the native non destructive rubberband settings?

both the percussion and texture native process handle transients very well - the results are smooth and similar to the source material

using this tool ive not managed to get the same results particularly with more extreme stretching - the initial transient is almost separated from the tail to create a double attack. ive tried going through all possible parameters but maybe ive missed something?