Digital audio utilities.
- Cassette Rip Utilities
- Audio File Utilities
- FLAC File Utilities
- M4A File Utilities
- Music Collection Utilities
- Running The Project's Tests
- License & Usage
Record, split, and re-encode analog audio from cassette or vinyl.
rip-c.sh - Rip audio cassettes or vinyl.
Usage: rip-c.sh [flags]
Option flags:
--base-name - Output file base name. Default: '/tmp/audx-rip'.
--start-duration - Silence start duration. Default: '0.2'.
--start-threshold - Silence start threshold. Default: '0.6%'.
--end-duration - Silence end duration. Default: '0.2'.
--end-threshold - Silence end threshold. Default: '0.6%'.
-f --force - Force overwrite if output file exists. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution. Default: '1'.
-g --debug - Extra verbose execution. Default: ''.
Info:
AUDX rip-c.sh
Project Home: https://github.com/glevand/audx
rip-c-to-flac.sh - Encode SOX files as FLAC.
Usage: rip-c-to-flac.sh [flags] top-dir
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX rip-c-to-flac.sh
Project Home: https://github.com/glevand/audx
rip-c-flac-tags.sh - Add FLAC metadata tags to rip-c FLAC files.
Usage: rip-c-flac-tags.sh [flags] top-dir
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX rip-c-flac-tags.sh
Project Home: https://github.com/glevand/audx
- Sony VGN-SZ330P VAIO Notebook.
- ART USB Phono Plus Audio Interface.
- Sony TC-WE305 Dual Cassette Deck.
- Sony MDR-DS6000 Wireless Headphones.
Utilities for working with encoded audio files.
audx-play.sh - Play FLAC and AAC encoded M4A files.
Usage: audx-play.sh [flags] <top-dir | M3U playlist | M4A file | FLAC file>
Option flags:
-s --state-file - State file. Default: '/tmp/audx-state/state'.
-h --help - Show this help and exit.
-v --verbose - Verbose execution. Default: ''.
-g --debug - Extra verbose execution. Default: ''.
Input:
Info:
AUDX audx-play.sh
Project Home: https://github.com/glevand/audx
Playing: China Crisis, Working with Fire and Steel - 1983 (40:23)
-----------------------------------------------------------------
1/10: Working with Fire and Steel (3:41)
2/10: When the Piper Calls (4:04)
3/10: Hanna Hanna (3:29)
4/10: Animals in Jungles (3:40)
5/10: Here Comes a Raincloud (4:16)
6/10: Wishful Thinking (4:42)
7/10: Tragedy and Mystery (4:03)
8/10: Papua (3:36)
9/10: The Gates of Door to Door (4:16)
10/10: The Soul Awakening (4:36)
-----------------------------------------------------------------
audx-print-tags.sh - Recursively print metadata tags.
Usage: audx-print-tags.sh [flags] <top-dir|file>
Option flags:
-a --all-tags - Print all tags (VORBIS_COMMENT block, etc).
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX audx-print-tags.sh
Project Home: https://github.com/glevand/audx
Utilities for working with FLAC encoded audio files.
flac-print-tags.sh - Recursively print FLAC metadata tags.
Usage: flac-print-tags.sh [flags] <top-dir|file>
Option flags:
-a --all - Print the VORBIS_COMMENT block.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX flac-print-tags.sh
Project Home: https://github.com/glevand/audx
flac-write-tag.sh - Write new FLAC metadata tags using --tag, or --tag-name and --tag-value.
Usage: flac-write-tag.sh [flags] <top-dir|file>
Option flags:
-t --tag - Full tag 'NAME=VALUE'. An empty VALUE will delete tag. Default=''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't modify files.
Common tags:
ARTIST
ALBUM
TITLE
GENRE
DATE
TRACKNUMBER
TRACKTOTAL
Examples:
flac-write-tag.sh --tag='ALBUM=No Jacket Required' "${collection}/Phil Collins/No Jacket Required"
flac-write-tag.sh --tag='ARTIST=Ultravox' "${collection}/Ultravox"
flac-write-tag.sh --tag='COMMENT=' "${collection}/Bruce Cockburn/Stealing Fire"
Info:
AUDX flac-write-tag.sh
Project Home: https://github.com/glevand/audx
flac-add-tracktotal.sh - Add FLAC tracktotal metadata tags.
Usage: flac-add-tracktotal.sh [flags] top-dir
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't modify files.
Info:
AUDX flac-add-tracktotal.sh
Project Home: https://github.com/glevand/audx
flac-clean-tags.sh - Clean FLAC metadata tags using standard rules.
Usage: flac-clean-tags.sh [flags] top-dir
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't modify files.
Info:
AUDX flac-clean-tags.sh
Project Home: https://github.com/glevand/audx
flac-meta-rename.sh - Rename files based on FLAC metadata tags.
Usage: flac-meta-rename.sh [flags] top-dir
Option flags:
-a --various - Use 'Various Artists' logic.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't rename files.
Info:
AUDX flac-meta-rename.sh
Project Home: https://github.com/glevand/audx
flac-tag-switcher.sh - Swap FLAC title/artist tags.
Usage: flac-tag-switcher.sh [flags] <top-dir|file>
Option flags:
-o --output-dir - Output directory. Default: '/tmp/audx-switcher'.
-c --clobber - Overwrite existing files. Default: ''.
-r --rename - Rename output files ${track}-${artist} - ${title}.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX flac-tag-switcher.sh
Project Home: https://github.com/glevand/audx
flac-fixup-cddb.sh - Convert eight character DISCID tags to CDDB tags.
Usage: flac-fixup-cddb.sh [flags] <top-dir>
Option flags:
-k --keep_id - Keep DISCID tag. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't modify files.
Info:
AUDX flac-tag-switcher.sh
Project Home: https://github.com/glevand/audx
Utilities for working with AAC encoded MPEG-4 audio files.
m4a-print-tags.sh - Recursively print M4A metadata tags.
Usage: m4a-print-tags.sh [flags] <top-dir|file>
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX m4a-print-tags.sh
Project Home: https://github.com/glevand/audx
m4a-write-tag.sh.in - Write M4A metadata tags.
Usage: m4a-write-tag.sh.in [flags] <top-dir|file>
Option flags:
-t --tag - Full tag 'NAME=VALUE'. An empty VALUE will delete tag. Default='COMMENT=gftggv'.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
-d --dry-run - Dry run, don't modify files.
Common tags:
ARTIST
ALBUM
TITLE
GENRE
DATE
TRACKNUMBER x of y
Examples:
m4a-write-tag.sh.in --tag='ALBUM=Street Survivors' "${truck-music}/Lynyrd Skynyrd/Street Survivors"
m4a-write-tag.sh.in --tag='ARTIST=Al Jarreau' "${truck-music}/Al Jarreau"
m4a-write-tag.sh.in --tag='COMMENT="${truck-music}/Dixie Chicks/Landslide"
Info:
AUDX m4a-write-tag.sh
Project Home: https://github.com/glevand/audx
m4a-converter.sh - Convert FLAC files to AAC encoded M4A files suitable for download to Walkman type devices.
Usage: m4a-converter.sh [flags] <top-dir | M3U playlist | flac file>
Option flags:
-b --bitrate - Encoding bitrate. Default: '328k'.
-o --output-dir - Output directory. Default: '/tmp/audx-m4a'.
-c --clobber - Overwrite existing files. Default: ''.
-k --keep-tmp - Keep tmp directory. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution. Default: ''.
-g --debug - Extra verbose execution. Default: ''.
Common bitrates:
Truck Music: 328 bps
Phone Music: 192 bps
Low-Fi Music: 96 bps
Input:
top-dir - '/home/music-collection'
Info:
AUDX m4a-converter.sh
Project Home: https://github.com/glevand/audx
Utilities for managing a collection of audio files.
Recursively check for valid vfat file names by writing zero length files to a vfat device.
check-vfat-names.sh - Check vfat file names.
Usage: check-vfat-names.sh [flags] top-dir
Option flags:
-d --vfat-dir - vfat test directory. Default: ''.
-c --clean-names - Clean file names using standard rules. Default: ''.
-k --keep-going - Do not exit on file error. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX check-vfat-names.sh
Project Home: https://github.com/glevand/audx
make-inventory.sh - Make inventory lists of an album collection.
Usage: make-inventory.sh [flags] src-directory [src-directory]...
Option flags:
-o --output-dir - Output directory. Default: '/tmp/audx-inventory'.
-a --age-sort - Sort list by age. Default: ''.
-t --tracks - Output album tracks. Default: ''.
-n --canonical - Output full canonical paths to lists. Default: ''.
-c --config - Configuration file. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX make-inventory.sh
Project Home: https://github.com/glevand/audx
# make-inventory.sh (AUDX)
# /music/collection/country: 1001 albums.
[1] 'Aaron Lewis/Frayed At Both Ends'
[2] 'Aaron Tippin/Greatest Hits - And Then Some'
[3] 'Aimee Mann/Mental Illness'
[4] 'Alabama/16 Biggest Hits'
[5] 'Alabama/Alabama and Friends At The Ryman - Disc1'
[6] 'Alabama/Alabama and Friends At The Ryman - Disc2'
[7] 'Alabama/Alabama and Friends'
[8] 'Alabama/Alabama Greatest Hits'
[9] 'Alabama/Angels Among Us - Hymns and Gospel Favorites'
[10] 'Alabama/Dancin on the Boulevard'
make-playlists.sh - Recursively create M3U album playlists.
Usage: make-playlists.sh [flags] top-dir
Option flags:
-n --canonical - Output full canonical paths to playlist.
-t --file-types - File extension types {flac mp3 m4a sox wav}. Default: 'flac'.
-c --clobber - Overwrite existing files. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Inputs:
top-dir - '/home/music-collection'
Info:
AUDX make-playlists.sh
Project Home: https://github.com/glevand/audx
#EXTM3U
#PLAYLIST: AUDX playlist
#EXTART: Boz Scaggs
#EXTALB: Hits
#EXTDATE: 1980
#EXTGENRE: ROCK
#CDDB: 710a150a
01-Lowdown.flac
02-You Make It So Hard.flac
03-Miss Sun.flac
04-Lido Shuffle.flac
05-Were All Alone.flac
06-Breakdown Dead Ahead.flac
07-Look What Youve Done To Me.flac
08-Jojo.flac
09-Dinah Flo.flac
10-You Can Have Me Anytime.flac
make-age-list.sh - Make age lists of an album collection.
Usage: make-age-list.sh [flags] src-directory [src-directory]...
Option flags:
-o --output-dir - Output directory. Default: '/tmp/audx-age'.
-t --tracks - Output an album track list. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX make-age-list.sh
Project Home: https://github.com/glevand/audx
make-shufflelist.sh - Create an M3U playlist of random albums.
Usage: make-shufflelist.sh [flags] top-dir
Option flags:
-c --count - Number of albums in playlist. Default: '6'.
-o --output-file - Playlist output file. Default: '/tmp/audx-shufflelist.m3u'.
-s --start-date - Starting date. Default: ''.
-e --end-date - Ending date. Default: ''.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Inputs:
top-dir - '/home/music-collection'
Date Specifiers:
'2 days ago'
'3 months ago'
'last week'
'last Thursday'
Info:
AUDX make-shufflelist.sh
Project Home: https://github.com/glevand/audx
shuffle-playlist.sh - Randomly shuffle an M3U playlist.
Usage: shuffle-playlist.sh [flags] <M3U playlist>
Option flags:
-o --output-file - Shuffle list output file. Default: '/tmp/audx-shufflelist.m3u'.
-h --help - Show this help and exit.
-v --verbose - Verbose execution. Default: ''.
-g --debug - Extra verbose execution. Default: ''.
Input:
''
Info:
AUDX shuffle-playlist.sh
Project Home: https://github.com/glevand/audx
batch-shufflelist.sh - Batch create M3U shuffle lists.
Usage: batch-shufflelist.sh [flags] top-dir
Option flags:
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Inputs:
top-dir - ''
Info:
AUDX batch-shufflelist.sh
Project Home: https://github.com/glevand/audx
genre-sort.sh - Sort FLAC files base on GENRE metadata tag.
Usage: genre-sort.sh [flags] <top-dir>
Option flags:
-o --output-dir - Output directory. Default: '/tmp/audx-sort'.
-c --copy-cmd - Copy command. Default='cp -avi --link'.
-h --help - Show this help and exit.
-v --verbose - Verbose execution.
-g --debug - Extra verbose execution.
Info:
AUDX genre-sort.sh
Project Home: https://github.com/glevand/audx
create-compare-tests.sh - Create encoding comparison files.
Usage: create-compare-tests.sh [flags]
Option flags:
-i --input-file - flac input file. Default: '/tmp/compare.flac'.
-o --output-dir - Output directory. Default: '/tmp/audx-compare'.
-h --help - Show this help and exit.
-v --verbose - Verbose execution. Default: ''.
-g --debug - Extra verbose execution. Default: ''.
Info:
AUDX create-compare-tests.sh
Project Home: https://github.com/glevand/audx
total 86M
36M '04-Werewolves of London.wav'
20M '04-Werewolves of London.flac'
8.2M '04-Werewolves of London - 328k.m4a'
8.0M '04-Werewolves of London - 328k.mp3'
4.9M '04-Werewolves of London - 192k.m4a'
4.8M '04-Werewolves of London - 192k.mp3'
2.5M '04-Werewolves of London - 96k.m4a'
2.4M '04-Werewolves of London - 96k.mp3'
audx_root=???
rsync -a --delete ${audx_root}/audx/ /tmp/audx-tester/
git -C /tmp/audx-tester reset --hard HEAD
/tmp/audx-tester/tests/build-test.sh /tmp/audx-tester
/tmp/audx-tester/tests/lib-test.sh /tmp/audx-tester
/tmp/audx-tester/tests/help-test.sh /tmp/audx-tester
/tmp/audx-tester/tests/rip-test.sh /tmp/audx-tester
All files in the audx project, unless otherwise noted, are covered by an MIT Plus License. The text of the license describes what usage is allowed.