Edit this script has now been realised, alone with the randomiser, thanks to conner_bw and Beatslaughter. For new people coming into the thread I’ll keep this updated:
Original post:
I occasionally have the need to merge to songs, especially when merging seperately made verse and chorus ideas. Could a 3rd party xrns program handle this task?
The arrangement would be simple: You have file1 and file2. File1 is the selected host and file2 is considered as the import. The master effects of the host are retained. In the merge process the respective file2 amount of new channels and sends are made after the file1 channels and sends. All automations and send addresses are re-ordered to accommodate the file2 data. The pattern data from file2 is appended after the patterns of file1.
It is then up to the user and the new file to edit the merge manually to their liking, having all the data from both parent songs to meld at their fingertips.
I would program this if I had the skills, but I’m flat out being a composer. Any one think this is a juicy idea?
i have an amen file 'O patterns that i always constantly want to update with new patterns, but it gets kinda mundane so i havent been keeping it up.
so this would really help for that !
atm the only way to do it really is to run 2 instances of renoise, which atm i dont have enough power for, but when i really need to do it, renoise will at least let me! an that is sooo nice about 1.8!
i really need to research an look deeper into this xml stuff.
there is some code in sc3 that enables users to record the OSC timing/duration/notes… etc. basically the same as pattern data without instruments linked. all in realtime to a text file an i’m positive it could be told to write to the file in a xml compliant format.
so then we take that data being compliant then use what this thread is about, merge it with a renoise song!
give the patterns instrumentas an presto!
non realtime pseudo algorthymic compostition!
a rather strange way of cheating i guess, but eheheh!
This is extremely early development. There is no code to unpack songs. I’m basically working with two renamed Song.xml files that only contain VSTi instruments, I am running php script.php > Song.xml at the bash prompt, zipping that file, renaming it .xrns and double clicking it to launch.
If I merge instruments, and only instruments, the above works fine. If I merge any other parts of the xml I am getting Kernel panics / Renoise crashes.
I’m obviously hacking my way through this, but if anyone familiar with the XML of Renoise and a copy of PHP5 with the SimpleXML extension can tell me where I am going wrong, it would be appreciated.
EDIT: Scroll Down...
EDIT: I’ve added validation. My XML is valid (yay!) … but it still crashes Renoise.
Alright, I’ve spent a lot of time debuging this (thanks BeatSlaughter in IRC) and I’m at a loss. Merging my songs makes renoise crashes like nobody’s business…
Interested? Check out the above. Output.xml is the results of merging Song2.xml into Song1.xml. If you zip Song1 and Song2, they open (rename to Song.xml, zip, then rename to .xrns) but if you zip output.xml, my renoise crashes (again, rename to Song.xml, zip, then rename to .xrns).
I’ve spent 2 hours on this, so advice like “is it UTF-8” or “what about the order of the child nodes in Tracks” or “linebreaks between two tags” have all been tried…
I will publish the source code and people can do what they want with it. My intention is to make a shell script (unix/dos style) but that might not be appropriate everyone.
I re-read this… The original songs are the ones extracted from Renoise saved .XRNS files (on OS X)… so I’m having trouble understanding how they can be corrupted?
I’m using this thread as my own CVS/Subversion but, yes, I got rudimentary merge working! Now I need to: compensate for send tracks, load up more complex xrns files with samples, and sleep. Be back later this week.