Sample compression in XRNS files
Submitted by bantai on March 24, 2007 - 20:57
Songs take less space in Renoise 1.8 than they would have in 1.5 and before. That is because the samples inside the songs are being compressed. Renoise uses lossless compression: once decompressed, the original samples are restored without any loss of quality.
One of Renoise 1.8's best kept secrets may be the possibility to manually replace lossless samples with smaller, lossy ones. Lossy compression allows you to bring an 35 MB song back to 2 MB without degrading sound quality too much.
I will go against the natural direction of writing articles by starting with the how-to and explaining what compression is afterwards.
Note: there are now tools to compress XRNS files with Vorbis automatically.
XRNIRipper - Java program
XRNS-OGG - PHP script with Windows GUI
Still, in some cases it pays off to compress the samples manually as described below. That way you can adjust the individual compression ratio or even leave some samples in FLAC format.
Replacing samples in XRNS files
We will be compressing samples with OGG VORBIS. On Windows you can use OggDropXPd to convert WAV or FLAC files. All you need to do is drag the samples onto its tiny window. Unfortunately you cannot drop complete folders. Check Vorbis for other converters.- First make a backup copy of the song. You should always keep a lossless version.
- Take the samples from the XRNS file. Use a data compression utility capable of ZIP compression. WinRAR is a good choice. Open the XRNS file with the utility. Extract the "SampleData" folder to your harddisk.
- Search the SampleData folder for *.flac or *.wav. Drag and drop the files from the search results onto OggDropXPd to convert them to OGG VORBIS. Each converted sample is stored in the corresponding input folder.
- Remove the *.flac or *.wav samples from the SampleData folder. Again, use the search results wisely. If you are sure you don't need the original samples anymore delete them, otherwise copy them to a different folder.
- Delete the old SampleData folder from the XRNS archive.
- Add the modified SampleData folder to the XRNS archive. Do not apply ZIP compression, because the samples are already compressed well enough.
- Load the song in Renoise to check if the conversion went alright.
Tips
- Renoise deliberately only exports samples with lossless compression. If you save a song that has OGG samples to a new file, all samples are converted to FLAC or WAV. Note that converting from lossy to lossless will not increase the quality.
- Be careful with lossy formats. At all times, keep a lossless version.
- You can decide to convert a few selected samples to a lossy format. There is little to gain from compressing small files. In fact, it is better you leave those intact. Concentrate on shrinking the larger files instead.
- If you are going to replace single files: remember to add the compressed sample to the archive before deleting the original sample. WinRAR removes the folder in the archive once it becomes empty. Explanation: in reality there are no folders, only files tagged with output folder names.
- Some sounds do not respond well to being compressed. One method is to convert all the samples, then replace bad sounding samples with the original ones. You could also try to redo the compression for specific samples with a lower compression ratio.
- FLAC handles 32-bit samples pretty poorly by design. OGG VORBIS on the other hand produces near constant filesizes, regardless of the source being 32-bit 96 kHz Stereo or 16-bit 44 kHz Mono. The latter would only be about 10% smaller. Depending on the Q setting, the higher frequencies appear to be thrown away automatically.
- Assign a data compression utility to XRNS files, so you can easily open them from the context menu.
What is compression?
Compression is about making files smaller. There are two forms of compression: lossy and lossless. To turn a compressed file into a playable or editable stream, there is a penalty involved compared to uncompressed files: either you have to wait a while or your computer needs to work harder.Uncompressed
Analog audio is digitized to make it storable on for example harddisks. An uncompressed file offers the highest quality and the highest performance, but also takes the most space. Usually we talk about PCM, wrapped in a container like WAV or AIFF. You can make Renoise store uncompressed WAVs by going to Preferences > Im/Export. From the Sample Format dropdown list, choose WAV (uncompressed).Lossy compression
Lossy compression cuts away data. It is not possible to restore a lossy compressed file to its original state. The trick is to throw away as much data as possible, while keeping the compressed file recognizable. You have to be careful with lossy compression if you start using it for songs. Imagine, you edit a lossy sample and save the result again with lossy compression. Repeat it a couple of times: eventually all that is left is poo. MP3 takes advantage of the human ear not being equally sensitive to all frequencies. On very high levels of MP3 compression it generally sounds bubbly and muffled, as if played underwater. OGG VORBIS has a smarter algorithm, which allows you to decrease the filesize to a level at which MP3 would sound like a dog in a washing machine. Shrinking an uncompressed file by 80 to 90% is not unthinkable.Lossless compression
Renoise stores samples in a lossless format, either GZIP'ed WAV or FLAC. Once decoded, the compressed file matches the original uncompressed file. You can switch to formats by going to Preferences > Im/Export. From the Sample Format dropdown list, choose WAV (gzip) or FLAC. FLAC is optimized for cd audio (16-bit, 44.1 kHz) and has the generally the best compression ratio. Its encoding/decoding speed is close to that of WAV files. You probably need to convert FLAC back to WAV if you want to edit the files in an audio editor. Since the algorithm is based on linear prediction of the source material, the compression ratio varies between 30 to 50%. GZIP'ed WAV is exactly what it says: the WAV samples are simply wrapped and compressed with GZIP. You can easily extract the raw WAVs to load in other applications. Performance-wise though, it is surpassed by FLAC in both speed and compression ratio.Containers
Often misunderstood for being types of compression, OGG and WAV are actually containers for data. They allow for extra functionality, but do not alter the actual data. Usually WAV is a container for PCM audio, but it is also possible to wrap a WAV around MP3 compressed audio. In a similar way, OGG is a wrapper for usually VORBIS compressed audio.- bantai's blog
- Log in to post comments
4 comments