Experiment: Live Sample Morphing

  • Download and install the attached XRNX tool: 1487 com.renoise.LiveSynth.xrnx
  • Download and open the attached XRNS song: 1480 synth.xrns
  • play the song
  • Go to sample editor and watch for Instrument 00 - sample 00, called “Synth destination”.

note: it is recommended to turn off sample editor undo even when running the simple LiveSynth script

quoting manifest.xml:

  
  
 This script will scan any loaded song for:  
 - an instrument called "Synth";   
 - inside this instrument, samples which have the name "Synth source"  
 - inside this instrument, a sample which has the name "Synth destination"  
 - in the master track, a MidiCcDevice and will create it if not present  
  
 if everything is found/created successfully, the first parameters of the first MidiCcDevice found/created will control   
 the "weight" of each source sample in the creation of the synth destination sample, which will also used as the only   
 sample for the instrument (id est: its sample ordinal number will be set as the only  
 sample present into the notes split array).  
  
 Note that you can use this script inside an existing song by creating/renaming the instrument and samples as needed.  
  
  

of course, this same technique can be used to allow Sample loop markers to be moved using DSP sliders

TODO:

  • complete support for more than one Synth instrument into the same song
  • move the MidiCcDevice into a dedicated send track

Burning the midnight oil, eh? This is bloody AWESOME!!

of course, this same technique can be used to allow Sample loop markers to be moved and Sample data to be written using DSP sliders

i get the feeling you are really pushing the boundaries of the current possibilities of Renoise scripting. great stuff!

Wow, I was looking for mooving Sample Loop Markers for long time… Nice!

Thank you :)

It took me a few tries to get it to work but will continue to experiment with this tool.

I’m currently in the making of a much more flexible version. progresses may be slow because of lack of spare time, so keep on experimenting :)

native sytnh it,s great idea:D

is this morphing ( spectral way ) or sample fading ?

it’s justing fading one sample into another. the idea is to use this tool (and its forecoming new incarnation) to work with simple waves

if it’s not cpu hungry and if the fade curve could be automatized
hurray :)

Morpher might be introducing some kind of undo bug, maybe it happens when I create new sample for “Morpher source 1” and “Morpher destination”. I think they’re suppose to be the same type of sample, so sometimes I just copy paste instead of creating the same exact sample twice (using ZynZilla). I’ll keep at it until I figure out the sequence of events in order to replicate this.

Basically I can no longer undo and the undo history is gone and when I try to manually undo by clicking on edit and highlighting undo, it says “undo change sample data”.

edit: i have an lfo -> midi cc set up, the last quick debugging i did, i was messing around with the lfo and i was able to replicate the undo bug. prior to messing around with lfo, i was creating new samples for the three slots and changing them to the proper names. will test more later.

update: I have managed to mix more than two sources and add more synths and sources “ad libitum” (currently limited to 2 synths with a maximum of 8 sources each per song), but I’m facing with a problem which I feared since the beginning: when using more than two sources, you need to set one parameter for each source to define how much that source will “count” into the destination sample, so you will need a DSP slider for each source and you have to put a notifier on each slider. Unfortunately, this means that the notifiers will try to work concurrently on the destination sample if more than one parameter gets changed at a time, causing hiccups. With two sources, the situation is good on my quite fast PC, but with three sources problems start to arise.

I will try to think more at a solution for this. I will probably avoid this concurrence with simple “semaphores” (programmers who are familiar with threading will understand)

note: it is recommended to turn off sample editor undo even when running the simple LiveMorpher script

thanks to Taktik help, I have managed to finish another step: go on top of this page to download version 0.2 which now can mix more sources into a single one.

About concurrency: now the mixing of the samples happens in background. This is the only way to prevent GUI from being sluggish, but still does not solve a problem which cannot be solved anyway: the sample writing does not happen in real-time so, if you try rendering songs in real-time priority, the result won’t play well.

Next step: the code is almost ready to support more than one Synth instrument per song. To manage this scenario better, next version will create/search one MidiCcDevice for each Synth instrument, and the device must reside into a dedicated send track with a specific name. This way, you will be able to mix up to 16 samples together per Synth, and have more than Synth per song.

Wow, I somehow missed this, thnks!

hey thx again 4 ur hardwork…unfortunately i can’t use your tool just yet as it automatically creates morpher destintation as expected but just a horizontal wave in the slot…plus it seems to crash whenever i use it…something to do with failing notifiers…would u like me to post the message i get?

leaving pc now but can do it tomorrow.
thx again :walkman:

tarek, yes, please show me the crash message, thanks

right mouse click clearing the destination sample gave me:

Trying to load a sample into the destination slot & then undoing using ctrl+z gives me:

thanks for reporting. this was quite a hell to sort, but should work now. Please download version 0.21 from the top of the thread. If everything works well now, I could start the last step. As far as I have tested it, it worked.

soooo sorry, have not been feeling well, however, the message shown above looks very similar to the one i get…i will just download the new version and c if i still get the crash.