Since I can't find the answer here and I would like to be able to do so the next time I need to do this, here is how to convert shorten (.shn) audio files to another format that ffmpeg can handle (e.g., flac, wav). A lot of the old information out there points to getting the codec from etree.org and compiling it, but those links are dead and shorten is no longer being developed (see rationale below).

When you get this error:

shntool [conv]: warning: : [shn]
shntool [conv]:          + you may not have permission to read file: [jlc2003-02-14d1t01.shn]
shntool [conv]:          + arguments may be incorrect for decoder: [shorten]
shntool [conv]:          + verify that the decoder is installed and in your PATH
shntool [conv]:          + this file may be unsupported, truncated or corrupt

From https://www.wikiwand.com/en/Shorten_(file_format):

Shorten (file format)
From Wikipedia, the free encyclopedia
Shorten Link dead: etree.org/shnutils/shorten/ Shorten Filename extension .shn Type of format Audio

Shorten (SHN) is a file format used for compressing audio data. It is a form of data compression of files and is used to losslessly compress CD-quality audio files (44.1 kHz 16-bit stereo PCM). Shorten is no longer developed and other lossless audio codecs such as FLAC, Monkey's Audio (APE), TTA, and WavPack (WV) have become more popular. However, Shorten is still in use by some people because there are legally traded concert recordings in circulation that are encoded as Shorten files. Shorten files use the .shn file extension.

Handling Shorten files Since few players or media writers attempt to decompress Shorten files, a standalone decompression program is usually required to convert to a different file format that those applications can handle. Some Rockbox applications can play Shorten files without decompression, and third-party Shorten plug-ins exist for Nero Burning ROM, Foobar2000, and Winamp. All libavcodec based players and converters support the Shorten codec.

Converting on Linux Current versions of ffmpeg or avconv support the shorten format. To convert all .shn files in the current directory to FLAC on Linux:

for f in *.shn; do ffmpeg -i "$f" "${f/%.shn/.flac}"; done

There are also various GUI programs which can be used, like SoundConverter

To split files with a .cue into tracks in .flac format:

shnsplit -P face -o flac -t "%p -- %n - %t" -f "file.cue" "file.shn"

(The various metadata for file names can obviously be arranged as you prefer. This also works for .ape & .wv files)

  • Perhaps reword this post as a 'question and answer'?
    – andrew.46
    Commented Sep 21, 2019 at 8:24


You must log in to answer this question.

Browse other questions tagged .