A command line tool for fast frame accurate audio image + cue sheet splitting.
This project is started mostly out of frustration over supporting split2flac with all the external dependencies and their quirks.
You need Go installed.
go install git.sr.ht/~ft/unflac@latest
~/go/bin/unflac -h
- ffmpeg (ffprobe command is also used, part of ffmpeg package)
Yeah, that's it.
-
Set a specific sample format and rate for output files:
unflac -F -sample_fmt -F s16 -F -ar -F 192000 ...
See
ffmpeg -sample_fmts
.man ffmpeg
contains a lot more.
To set a custom output file naming use -n
option (run unflac -h
to see the default value).
The format of the argument is described here.
Elem - a function that replaces invalid file path characters with ones that look (almost) the same but valid
.Input.TrackNumberFmt - track number printf format (it's either "%02d" or "%03d" depending on the number of tracks)
.Input.Composer - composer (can be empty)
.Input.Performer - performer (can be empty)
.Input.SongWriter - song writer (can be empty)
.Input.Title - title, that's album name in general (can be empty)
.Input.Genre - genre
.Input.Date - date
.Input.TotalTracks - total number of tracks
.Input.TotalDisks - total number of disks, 0 if there is only one disk
.Input.Artist - a special handy field that is selected based on Composer/Performer/SongWriter; is never empty
.Track.Number - track number
.Track.DiskNumber - disk number, 0 if there is only one disk
.Track.Composer - composer (can be empty)
.Track.Performer - performer (can be empty)
.Track.SongWriter - song writer (can be empty)
.Track.Title - track title
.Track.Artist - a special handy field that is selected based on Composer/Performer/SongWriter; is never empty
- copying cue, log, images over to the destination
- clean up on errors
- replay gain
- support multiple artist/performer/composer?
- basic splitting
- tagging
- split to other formats (ogg/vorbis, mp3)
- parallel extraction
- support more input formats (wavpack, wave, mac)
- get the artist/performer/composer right
- multi-disk cue sheets support
- detect cue sheet encoding and convert to utf8
- an option to format the output path in a specific way
- using id3 v2.3 tags because it seems basically no software reads id3 v2.4