106 lines
4.0 KiB
Markdown
106 lines
4.0 KiB
Markdown
|
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.
|