Flac Support

just kind of daydreaming here, i think FLAC support would be very useful. to me it would be at least as useful as mp3-support- if i had a hypothetical bunch of samples i only intended for immediate use with renoise i could save a fair amound of diskspace. i don’t like to use lossy compression on samples, myself. FLAC gives compression ratio close to .5 sometimes, and it is open source so it would be easy to implement (at least in a legal sense).


In my opnion, using lossy compression for samples is also senseless:
as you may see, ReNoise does store MP3/ogg samples as WAVs in RNS files, and this is because, of course, it should not recompress samples each time.

Having a lossless compression support implemented, instead, would be a great bonus

I’ve heard that Monkey’s Audio is more processor-friendly than FLAC, and even the trickier licensin theme is about to change AFAIK.

If anything like this will be implemented, how about rendering to these formats too, instead of WAV?

I would very much like support for playing samples in flac-format. Working from a laptop, HD space is sparse, and I don’t want to use compression on my samples.
Flac seems to be the most common lossless format, and I would say that it’s a big bonus that it’s open source.

I don’t know if rendering to flac (as suggested) is really something you need, it’s not difficult to convert to flac if you have a wav. But you know, if you have the time B)

Look there is no need for flac support if save as song would mean that it just saved the shortcuts for the samples.
That would save much more HD space :)

Than we could add save as module, which would include the samples like it is now.

Though it is very rarly I think people would want to save their songs with the sample included.

That would be a bit to much. why not simply ask when you save the song.
Why if you try to save song as song and not as module simply have a warning, that you must first save your new samples.
Then when you save your song, it remebers where you saved your samples and simply keeps the shortcut.

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 :P


Just to kind of clarify what my need/want was (not to say that any of you are off topic):
I have a bunch of samples and limited HD, so I convert them from .wav to .flac to save space. But if I then want to load one of those samples into renoise I would first have to convert it to .wav, which is bothersome if you just want to browse through a large collection of samples and want to hear them inside the song instead of playing them in winamp or something.

I believe there are some players for flash that support various mod formats.
I doubt they will lack interactive controls.

I like the idea to save samples as FLAC in a song.
I’d even find it useful to save lossy compressed samples (e.g. ogg) in an RNS. This makes sense if you are not always into professional top-notch-quality. I’m thinking about sharing my modules. A song with vocals and a quality of 44khz should not always have a size of 10 MB or more. If your song’s size is small, you can easily do co-op’s or even take the limits at demoparties.
For me it’s not a solution to use different software that supports those compressed modules. Simply because of the many features that Renoise offers.

I’ve always been against keeping samples in a lossy format (i.e. ogg). But as you say Gilli there might be situations where it’s useful, like for long vocals. And the whole discussion about how samples must be recompressed after you have changed/cut them etc has just made the whole concept to seem more problematic than useful. But now I got a simple idea, which I don’t think has been proposed before (probably has, but I’ve just missed it :) )…

How about if you load an ogg you can click a checkbox that says “store as ogg”. Then all buttons that change the sample (cut, paste, process fx etc) are simply deactivated with a tooltip or similar saying “you need to convert to wav to do this action”. And finally you would need two buttons in the sample editor to convert between wav and ogg. Throw in some warnings somewhere that you will loose sample quality when (re)compressing.

Not a revolutionary idea, I know, and probably needs some more thinking through. But the main idea is the fact that you must manually convert between ogg and wav, which will eliminate any questions on how recompressing works and when it’s done. I’ve written ogg above, but the same could be applied to mp3 as well, maybe with some restriction on how/if converting to mp3 can be done.

Not that I consider it the most important feature, but it would of course also be nice if all the other samples would use FLAC to save diskspace (or maybe more relevant, downloading times).

Completely agree with you, Johan :)
I just guess that Renoise saves sample informations (like loop, etc) not within the sample. And once the RNS is loaded into your RAM, the files could be converted to plain PCM anyways, right? Otherwise you’d have to decode each sample in realtime when it’s demanded. I mean, say you load an mp3 in a wave editor like SoundForge. It will load the mp3 but it will decode it to a plain pcm wavefile before you can work on it.
So even editing the sample wouldn’t be a problem, or did I misunderstand your thought about ‘save as ogg’ ?

No you got it right. Just like sound forge, in other words.