I really like the idea of being able to save a song/module that is just pattern data, and keeping my samples on disk. For a person like me who often starts several (sometimes as many as 20 or more) variations on a song theme, all using pretty much the exact same sample set, this would be an extremely useful feature. Not to mention for the purposes of 2 (or more) people working on a song over the internet. Passing back and forth the simple pattern data instead of the whole module every time would be absolutely wonderful.
What springs to my mind immediately, a thing to get around the problem of “what happens if you destructively edit a sample?” or “what happens if Person B adds new samples to the track (pattern data) we’re both working on?”, would be a per-sample flag of some kind. Some kind of yes/no or on/off value that simply tells Renoise “this sample is unique” or “this sample should be included with the module”. If it is “on” the .rns file will include the sample data itself as the program currently works. If it is “off” the sample data will be kept on disk and not saved in the .rns file.
Somewhere in the sample editor you will be able to toggle the value. Then for example, if you’re doing a co-op tune with someone, passing the .rns pattern data back and forth, and you’ve included some new samples in your recent edits, you set the flag to “on” for those new samples and they get included with the .rns file. Then your friend only gets the new stuff he/she needs, and once they receive the .rns file and make their edits to the song, they can set the sample flag(s) back to “off” so that they don’t resend you stuff you’ve already got.
There’d be a place in the config screen somewhere to set the default behaviour, ie. whether the flag defaults to “on” or “off”. For me personally, I would have it default to “off”. There should also be a sort of override option somewhere, maybe in the song properties config screen, to choose whether “all samples are included with this module” or “all samples are stored on disk only” or “samples are included with the module based on their individual settings” (the default option). Adjusting this option shouldn’t change any of the per-sample flags, it should just be a sort of master override for when you quickly need to make a unique copy of the whole module (ie. for making a complete backup of the project, or for the first time you need to send your module to a friend who is gonna work on it with you, and they need to get all the samples too).
I also think that when using the sample editor, Renoise should check what that sample’s flag value is set to. If the flag’s value is “off” (ie. do not include sample data with module) and you are about to perform some kind of destructive operation on the sample, Renoise should then automatically pop up a simple confirmation dialog box: “Warning: This sample is currently stored on disk. Editing it will affect all other songs that use this sample. Do you wish to make this sample unique to this song/module?”.
Choosing “yes” at the dialog box would cause Renoise to make a duplicate copy of the sample somehow in memory, and perform the destructive operation on that copy instead of the original. Then obviously the flag’s value should automatically be set to “on” and the unique sample gets included with the module, leaving your on-disk version safely unchanged.
Anyway… there are a couple of other potential logistical problems with how it should all work exactly, but that’s my basic idea of how I imagine it could work. Hope my ramblings made sense