scripts/audio
Matteo Cypriani aca5e08738 metaflac-field2field: minor improvements, shellcheck 2018-04-11 22:11:13 +02:00
..
README-fr.md Split multimedia into audio and graphics 2017-09-22 22:19:48 -04:00
README.md Split multimedia into audio and graphics 2017-09-22 22:19:48 -04:00
just-play-something.sh just-play-something: reindent, shellcheck 2018-04-11 21:46:47 +02:00
metaflac-field2field.sh metaflac-field2field: minor improvements, shellcheck 2018-04-11 22:11:13 +02:00
mp3car.sh mp3car: use printf instead of echo 2018-04-11 21:47:10 +02:00

README.md

just-play-something.sh

As its name indicates, the main goal of just-play-something.sh is to put some music on. Anything. What the name doesn't indicate is that the music is played by MPD.

Its use case is to be binded to a physical button of my router (which is also my music box), so that I don't have to start a device with an MPD client to start music (this is especially useful when I first wake up in the morning). Therefore, it is written with portability in mind and tries to not use any utility that might not be present on embedded systems.

Here are the required dependencies (beside MPD itself):

  • mpc (MPD's command-line client)
  • time
  • ps
  • date
  • md5sum
  • sed

What this script will do for you:

  • first of all, if the MPD daemon looks down, it will be restarted; then,
  • if there are songs in the playlist but the playback is paused, it will unpause;
  • if there are songs in the playlist but the playback is stopped, it will start playing the playlist from the begining;
  • if there are no songs in the playlist, it will add a random album from your library and play it;
  • if music is already playing, it will be paused.

Tips:

  • You can bind a short button press to just-play-something, and a long press (or another button) to mpc clear ; just-play-something, so that if you don't like what is currently in the playlist, you can force playing a random album with a long press.
  • Running this script from another host works just fine by setting the MPD_HOST variable (and possibly MPD_PORT), for example: MPD_HOST=192.168.0.254 just-play-something

metflac-field2field.sh

Français: voir README-fr.md.

metaflac-field2field.sh uses metaflac to process field to field copy/move on FLAC file metadatas.

Invocation:

metaflac-field2field.sh <ACTION> <SRC_FIELD> <DST_FIELD> <FILE.flac> \
    [ <FILE2.flac> [...] ]

<ACTION> is the action to perform on the fields, amongst “copy”, “move”, “rmcopy” and “mvcopy”:

  • copy: each occurrence of SRC_FIELD is duplicated to create an occurrence of DST_FIELD; all the existing occurrences of SRC_FIELD and DST_FIELD are kept.

  • move: each occurrence of SRC_FIELD is moved to create an occurrence of DST_FIELD; the existing occurrences of DST_FIELD are kept.

  • rmcopy: the existing occurrences of DST_FIELD are deleted, then each occurrence of SRC_FIELD is duplicated to create an occurrence of DST_FIELD; the occurrences of SRC_FIELD are kept.

  • rmmove: the existing occurrences of DST_FIELD are deleted, then each occurrence of SRC_FIELD is moved to create an occurrence of DST_FIELD.

<SRC_FIELD> is the action's source field.

<DST_FIELD> is the action's destination field.

Finally, the file(s) on which the action has to be run are specified at the end of the command line.

Please note that you should always use UPPERCASE fields; lowercase fields are not supported, and the behaviour is undefined. For example, if you try to lowercase a field with the move command (e.g. metaflac-field2field move DATE date), the field will just be deleted. This is because metaflac --remove-tag is case-insensitive.

mp3car.sh

mp3car.sh uses the pacpl (Perl Audio Converter) multi-purpose audio converter to convert audio files in any format to low-quality MP3s suitable for listening in a car. The goal is to maximise the number of albums that can be contained in a CD-ROM (or USB stick). The default encoding parameters are variable bitrate (VBR) from 32 to 128 kbps, in joint stereo.

Usage: just call the script with one or more files or directories, and they will be converted recursively and put in the target directory (~/tmp/mp3car/ by default, edit the script to change that).

You must have installed pacpl and lame for this script to work.

Note: if you want to burn all these converted audio files to CD-ROMs, you may be interested in the dirpacker.py script provided in this repository.