feature request: subsongs

I would like to build several songs within one renoise file.

There are a couple of other topics which flirt with this:

https://forum.renoise.com/t/tabs-loading-playing-multiple-songs/28769

https://forum.renoise.com/t/loading-multiple-songs-into-nested-group-tracks/35781

Specifically what I am trying to achieve is to have one set of instruments used for several songs (this is a necessity for some kinds of video game music). It is a huge and nearly impossible nuisance for me to manually synchronize all the instrument banks. Yet I know more professional musicians do just this, so maybe I should just not be a baby.

It’s possible that I could achieve this by some scripts which move all the instruments from one file to another, but this isn’t very fun.

So what I’m looking for is basically tabs in the pattern editor panel (it would swap the tracks and the pattern list and pattern matrix)

It’s possible this could be implemented by the user via a plugin that hides or all the patterns based on their section names (let any section split, or a specially named section split determine the boundaries between songs). it would need to be accompanied by similar handling for the tracks. I think I might try this if I end up using this workflow. Note: in this case, the fact that the master tracks wouldn’t be swapped out between “subsongs” is a feature for me-- I wish I did not have to synchronize my master track settings between songs either. However, others might consider that a deficiency.

I acknowledge that my choice of what should be swapped between “subsongs” will seem effectively arbitrary to anyone else, but I hope I’ve explained the logic well enough.

If I had this implemented ( https://forum.renoise.com/t/mapping-sample-effects-to-midi/47880 ) Then I may not need this feature, since in that case it’s more likely I’ll be sending everything as midi to an external synthesizer and I can just use midi program changes…maybe?

One option is to create a template song and use that for all the new songs that need the same instruments.

Renoise has an option of setting an xrns file as the template for all new songs, and there are some tools that offer new-song template options as well.

http://tutorials.renoise.com/wiki/Template_Song

https://github.com/Neurogami/renoise-ng/tree/master/lua/com.neurogami.NewFromTemplate.xrnx

Major downside to this is when you want to change the instruments in one song and have that change propagated to all other songs based on the same template. Since each xrns file carries with it a copy of the instruments used this is not going to happen on its own.

A workaround is to re-save each instrument if you make changes, and then make sure you reload/replace that same instrument in the other songs.

It’s a lot of work.

Another option is to make a giant song that has multiple sections for each subsong.

You can use the ZTnn fx command to change the BPM so each song can have a different tempo. I suspect this might get unwieldy but I’ve never tried it. (I’d be curious to hear of any inadvertent Renoise stress tests with massive song files.)

I’ve wondered about synchronizing instruments across songs, as I’ve been creating some custom instruments. Often I decide that, say, the kick drum in my percussion instrument needs fixing, and want the changes to automagically appear in all songs that use that instrument. But so far I’m at the “manually replace it” stage.

I think some of these issues could be mitigated with some tools or external scripting. I’ve written some Ruby scripts to generate instruments from flac files and other scripts that unzip/zip xrns files so, in principal, a script to update an instrument in multiple xrns files should not be not terribly hard, but I’ve yet to do it. (And I suspect there are details I’ve not yet encountered when munging instruments in existing xrns file.)

I’d love the idea of “subsongs” for different reasons…

Use one for me would be to encapsulate resampling steps in instrument design…so I have the nessecary patterns for this step seperated from the main song. And have kind of a direct way to change aspects of the resampled instruments on the fly from within the same project. Normally I would do this in seperate projects, one per instrument, which is cumbersome to update things, or mess up the end of the pattern matrix with the resampling patterns if I do within the main song project.

Another use for me would be to hide draft patterns etc. So I could design certain patterns with care, and arrange to the whole final song via copy/paste from the relevant subsong(s). Right now these pattern drafts or backups of different versions also mess up the rear end of my projects.

I like your idea of using subsongs as staging areas for building instruments for rendering–that encourages keeping all your raw materials in one place.

I feel the “junk patterns at end of song” must be a universal phenomenon.

But I think subsongs as I proposed them would make moving patterns between subsongs problematical technically: the track structure might not be the same. Sure, they might be the same for you, if youre diligent about manually keeping them synchronized, but it’s tough to solve generally. So I would have proposed to forbid moving patterns between subsongs, if I had even thought of that use-case.

One way (maybe?) to work around this would be to have renoise insert an all new track group when moving patterns between subsongs, and then let you clean up the mess. But I don’t understand what the implications would be here on master tracks. Probably… not relevant.

If necessary, for simpler implementation on the UI, the movement operation could be more highly managed. For instance: implemented as “merge subsongs” which would concatenate the patterns, and create the tracks as mentioned above.

And your abusing-subsongs-as-pattern-repositories idea has made me think of some other scenarios: we should be able to create subsongs from existing patterns (to copy the track structure along with it). At least that’s pretty easy to implement in renoise, and saves the user having to build track structures repeatedly.

Here’s another thread too (link), where it’s revealed that you can simply duplicate the Renoise app and open up the secondary project so you can copy / paste / etc between the projects in question. Sure, it’s not as convenient as tabs in a single app and I’m not sure if it’s 100% flexible. But it’s an OK workaround in some cases.

Here’s another thread too (link), where it’s revealed that you can simply duplicate the Renoise app and open up the secondary project so you can copy / paste / etc between the projects in question. Sure, it’s not as convenient as tabs in a single app and I’m not sure if it’s 100% flexible. But it’s an OK workaround in some cases.

You can put multiple songs in a single renoise .xrns file really easily. Use different sections for different songs. Group song tracks together. The main limitation I think is that send tracks can’t be grouped. But maybe you want to reuse sends anyway…

It’s pretty simple to do this manually, but you could make it faster by making a tool that acts based on following naming conventions on the sections and group track names.

Maybe you have a section called “START Track 1”, and a group track called “Track 1”, and then the tool has a navigator which lets you select Track 1. This would navigate to the start section, expand the Track 1 group track, and hide all other group tracks.

I realize this isn’t exactly what you’re asking for, I’m just thinking through a way that you can get some of the functionality you’re looking for via a tool.