Merge Songs

Fixed for Renoise 2.5 in SVN. Here’s the Diff

I have to ask, is the “foreach ($sx2->OutputRoutings->OutputRouting as $x)” code really necessary? None of the modules I generate have this… I see a lot of “$sx2->Instruments->Instrument->PluginProperties->AssignedTrack” which is handled in another procedure… But the whole output routing is still a mystery to me. Can anyone confirm it actually works?

maybe the first post can be updated with this link http://xrns-php.sourceforge.net/
I like the tune, but it’s not what you want when you come here.

I saw the XRNS-PHP scripts are on the Tools and utilities pages, but maybe it’s better to add a list of scripts it contains, this merge script is simply amazing!
but stays a bit under the radar this way I think just like some other scripts inside it.
Really great package!!!

Wow, blast from the past. Some inspiring community work happened here! Is this something that could be evolved into a modern XRNX tool?

I was merging some songs to prepare for a live performance a few weeks ago. The merge songs tool is great, but the routing for sends and things like signal follower get all mixed up. It seems to be based on a fixed and not relative index, so if something is routed to Send 04, it’s still routed to Send 04 in the merged song even if that send is completely different. Also, it doesn’t account for BPM or LPB changes - it would be nice to have the option to automatically put those changes as pattern effect commands on the master channel, for example.

It would be great to see merge songs recoded as a renoise tool! (Maybe I should try to learn how to do it myself…)

absolutely +1
on xrnx

This tool has been a life saver for me, but is starting to grow obsolete:(

I’ve patched up this tool for Renoise 2.8.

@see: Xrns-php

Regards.

Much appreciated! will these programs also re-appear on the renoise.com site? maybe I overlooked them but can’t find them anymore.
It would be a shame if some people can’t find these great tools.

Crud, just noticed this. Doesn’t work as I type. Will try to fix this in the upcoming hours.

I don’t think this will happen. These PHP scripts are getting less interesting for me to maintain so I’d rather not show them off.

Lua is the future for Renoise! ;)

Fixed in v1.09. Thanks for mentioning it.

Download: XRNS-PHP download | SourceForge.net

Cool stuff, seems to work for simple song templates :)

Now a little Lua Script for Renoise that calls the script if you select two songs in the disk browser would be very nice :=)
More in detal: If you select 2 songs holding down shift and then right click, a option for “join songs” could be appear.

I looked into the Renoise’s LUA documentation of the Renoise 2.80 starter pack, but I am completly lost in this documentation…

Hey guys,

I just stumbled upon this thread via google actually, and finally got the merge script working. Now the instruments of both xrns files are merged, but the patterns of the 2nd file are missing. I’d hoped it would sorta ‘paste’ the patterns of the 2nd xrns file under the patterns of the 1st xrns (making for example two 2:00 minutes songs into one 4:00 minute song) Would there be a way to achieve this?

I’m loving the input here btw… keep it up :)

You were looking for this?
renoise.app():prompt_for_multiple_filenames_to_read({file_extensions}, dialog_title)
→ [list of filenames or empty list]

The script does exactly this, adds new channels and adds the new patterns behind on those new channels, just double checked here. If your XRNS had lot’s of channels you may have to scroll to the right in the pattern matrix to see those added blocks. Maybe i did misunderstood you?

Yes I can see the extra channels added on the right, but not the patterns of the 2nd song… so I do have the instruments of the 2nd song but not it patterns. I’m going to oldskool copy+paste for now, still better than also having to reprogram all vst instruments :)

edit: I just found out that it does copy the patterns but just doesn’t place them in the song, so if in song 1 the last pattern is e.g. 20 the first pattern of song 2 will be on 21, but you still have to manually insert them there… but beats copy+pasting… hell yea :D

This isn’t right.

Patterns of Song2 are appended to Song1. In the Pattern Sequencer with the Pattern Matrix visible scroll to the right, then scroll down. All pattenrs should all be there.

Are you sure?

If it’s really not working, then please help me solve this bug:

Test #1

  1. Create two new songs using Renoise 2.8, just simple junk.
  2. Merge these two songs
    Rationale: These will merge. I’ve tested dozens (and dozens) of XNRS files. They merge as explained above. Confirm that you see this so that we are both talking about the same thing.

Test #2

  1. In Renoise, click “Song Settings” then “Upgrade to latest version”
  2. Repeat for both songs
  3. Merge the two newly saved songs
    Rationale: Maybe you are trying to upgrade old MOD files or something and I just don’t do enough sanity check for old version I never look at anymore.

Get back to me with the results of these two tests. If it’s still not working, send me the XRNS files so I can test myself and fix the script. Send me these by email. I would like to continue this conversation offline.

Regards,

tested in both 2.8 and 2.5 (which I in most cases still prefer because of the old pattern effect codes, I actually hate the coding in 2.8, except for the other features ofcourse) and still same problem. I will send you an email with 2 really simple tracks and the merged one now.

allright guys fixed it. thank you so much ^^ guess I just needed an updated version after all :P

Just now saw this - awesome! Thanks so much for updating this. It’s already proving quite helpful getting ready for a gig next week.

I’m trying to use this tool on some rather big tracks - and cannot do it due to a memory limitation.
E.g. I get this message:

Fatal error: Allowed memory size of 13427728 bytes exhausted… in C:…xrns_functions.php on line 182.

Any way to increase the “allowed memory size”? My computer should be able to handle it.

I’m sorry if there’s no (or an obvious) way to achieve this. I’m totally ignorant when it comes to php and stuff.

Not sure if this will work, but you could try opening the PHP script file and add the following line near the top of it. Adjust the memory size as needed.

ini_set(“memory_limit”,”16M”);