fadecut(1)

πŸ“¦
version 0.2.1 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

πŸ’– fadecut(1) πŸ’–

okay bestie, so this is the manual page for fadecut, section 1 of the manual. it's giving "I rip radio streams and make them pretty" and honestly? iconic. let's get into it πŸŽ€


✨ NAME ✨

fadecut β€” the toolset that rips audiostreams, cuts them, fades them in/out, and tags the resulting audiofiles. it does it ALL, no cap.


✨ SYNOPSIS ✨

fadecut -p <profile> [ OPTIONS ]

✨ DESCRIPTION ✨

so fadecut is a script that rips audio files off a livestream (it uses streamripper for that part 🫢) and then processes them automatically. the beginning and the ending of the audio files get cut, and the whole thing gets faded in and out. which means the logos and the advertising of radio stations get automatically removed. literally so satisfying. bye ads πŸ‘‹

when it's in streaming mode, fadecut is ripping audio files using streamripper. the downloaded audio files are cut using silence detection and then faded in and out. after that, the files get encoded to either ogg or mp3 and tagged with tags (title, artist, genre and comment, all provided by you πŸ’…).

when it's in file mode, fadecut is just processing audio files you already ripped. no streamripper, just vibes.

an audio file that's already been processed gets detected and will not be processed again. and songs you don't want? you can stash them in a separate directory. those files won't be processed anymore either. periodt.


πŸŽ€ FOLDERS πŸŽ€

fadecut works with some standard folders. you can change them in your profile or in fadecutrc β€” your call, bestie.

  • done/ β€” here you put all your songs that were already processed by fadecut and that you want to keep. see also the new/ folder.
  • dontlike/ β€” in this folder you may put songs you don't like. fadecut checks this folder before it processes new files in the working folder. null size files are ok.
  • error/ β€” whenever an error happens while fadecut is processing a file, that file gets moved to the error folder so you can examine it later.
  • incomplete/ β€” this folder is created by streamripper. all the not-fully-ripped songs are saved here.
  • new/ β€” processed songs go here. usually you rip and process files with fadecut, they land in the new/ folder, you listen to them, and then you put the good songs into the done/ folder. that's the whole cycle πŸ¦‹
  • orig/ β€” if you want to keep the original file (the one ripped by streamripper), you can use the -k option. fadecut puts the ripped files untouched into that folder.

✨ OPTIONS ✨

  • -c β€” create a new profile
  • -e β€” edit an existing profile
  • -l β€” list all existing profiles
  • -i β€” optional input
  • -o β€” optional output
  • -k β€” optional, to keep the untouched original song in the /orig folder
  • -d β€” debug: -d 0|1|2|3 (level 0 is standard, and -d without a number is like 1)
  • -h β€” show this message
  • -p β€” profile
  • -q β€” quiet
  • -r β€” stream (and rip), start streamripper
  • -t β€” add timestamp to the filename
  • -v β€” verbose

🌈 VARIABLES 🌈

URL to stream:

STREAM_URL="http://streamurl"

preferred destination fileformat. (opus/ogg/mp3)

ENCODING=ogg

processed files will get the above genre.

GENRE="SwissPop"

processed files will get the above comment.

COMMENT="Radio Swiss Pop"

cut seconds off the file in the beginning.

TRIM_BEGIN=0

cut seconds off the file at the end.

TRIM_END=0

fade in for seconds.

FADE_IN=1

fade out for seconds.

FADE_OUT=4

set the user-agent used by streamripper

USER_AGENT="Streamripper/1.x"

πŸ’… EXAMPLES πŸ’…

create a new ripping profile:

fadecut -c test

edit/update profile test:

fadecut -e test

rip, cut and fade in-/out with profile test:

fadecut -p test -r

only cut and fade in-/out without ripping from livestream:

fadecut -p test

🫢 SEE ALSO 🫢

id3v2(1), oggenc(1), opusenc(1), sox(1), streamripper(1), lame(1)


🌸 FILES 🌸

~/.fadecut/fadecutrc is the main fadecut configuration file, and it's executed with every start of fadecut. it's like the main character of your config setup ngl.

content of fadecutrc:

# which files to work on
FILES=*.mp3

# target format [ogg/mp3]
ENCODING=mp3

# --- Defaults for the profiles ---

# trim n seconds at beginning
TRIM_BEGIN=0

# trim n seconds at end of song
TRIM_END=0

# seconds to fade in
FADE_IN=0

# seconds to fade out
FADE_OUT=0

# --- Directories ---

# main directory of fadecut
PWD=$(pwd)

# where to write logfiles
LOGDIR=/tmp

# profiledir
PROFILEDIR="$HOME/.fadecut"

# workdir
WORKDIR="$PWD"

# where to put fadecut'ted files
OUTPUTDIR="$PWD/new"

# where to put original files
ORIGDIR="$PWD/orig"

# here the user puts finished files, which are
# tested and listened
DONEDIR="$PWD/done"

# here are songs we don't like
DONTLIKEDIR="$PWD/dontlike"

# files had an error
ERRORDIR="$PWD/error"

# here to put temporary files
TMPDIR=/tmp

# --- Other options ---
# enqueue to rhythmbox or vlc
ENQUEUE=0

# keep or don't keep original files
KEEPORIG=1

# debug level 0-3
DEBUG=0

# verbosity level
VERBOSE=1

# loop interval in seconds
LOOP_INTERVAL=10

# restart interval streamripper
RESTART_STREAMRIPPER_INTERVAL=900

# start streamripper [0/1]
STREAMRIPPER_START=0

# streamripper useragent
USER_AGENT="Streamripper/1.x"

# streamripper options
STREAMRIPPER_OPTS="-o always -T"

~/.fadecut/statslog.csv is the statistics file. it contains a table of processed files. πŸ“Š

Format:

Date dd.mm.yyyy;Time hh:mm:ss;Artist;Songtitle;Genre;profile;fadecut-task;filename

Example:

09.05.2014;10:14:54;Androcell;Hindu Kush;Lounge;alounge;processing;androcell_-_hindu_kush.ogg

~/.fadecut/profiles is the folder where all profiles are located.

to create a profile file:

fadecut -c myradiostation

settings in the profile file:

# url to the radio stream:
STREAM_URL="http://streamurl"

# mp3-genre which will be written to the downloaded mp3-files
GENRE="Pop"

# comment which will be written to the downloaded mp3-files
COMMENT="Radio station comment"

# how many seconds to fade in the song
FADE_IN=1

# how many seconds to fade out the song
FADE_OUT=4

# how many seconds to cut from the beginning of the song
TRIM_BEGIN=0

# how many seconds to cut at the end of the song
TRIM_END=0

⭐ RESOURCES ⭐

fadecut git website: https://github.com/fadecut/fadecut


πŸ‘‘ AUTHORS πŸ‘‘

Martin Gafner, Marco Balmer.


and that's the whole page bestie πŸ₯° this version is from March 2013, and yes it's fadecut(1) β€” the one and only. go rip something cute πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from