Split multimedia into audio and graphics
Also to mimic pkgsrc categories. While there: - Convert the READMEs to MarkDown to make forges happier. - Split French README section to audio/README-fr.md. - Rewrap READMEs at 80 characters.
This commit is contained in:
parent
58b409b82f
commit
a7c8880230
|
@ -0,0 +1,43 @@
|
||||||
|
metflac-field2field.sh
|
||||||
|
======================
|
||||||
|
|
||||||
|
`metaflac-field2field.sh` utilise metaflac pour effectuer des actions de copie
|
||||||
|
ou déplacement de champ à champ sur les fichiers FLAC.
|
||||||
|
|
||||||
|
Invocation du script :
|
||||||
|
|
||||||
|
metaflac-field2field.sh <ACTION> <SRC_FIELD> <DST_FIELD> <FILE.flac> \
|
||||||
|
[ <FILE2.flac> [...] ]
|
||||||
|
|
||||||
|
`<ACTION>` est l'action à effectuer sur les champs, parmi « copy », « move »,
|
||||||
|
« rmcopy » et « mvcopy » :
|
||||||
|
|
||||||
|
- **copy** : chaque occurrence de `SRC_FIELD` est dupliquée pour créer une
|
||||||
|
occurrence de `DST_FIELD` ; toutes les occurrences existantes de `SRC_FIELD`
|
||||||
|
et de `DST_FIELD` sont conservées.
|
||||||
|
|
||||||
|
- **move** : chaque occurrence de `SRC_FIELD` est déplacée pour créer une
|
||||||
|
occurrence de `DST_FIELD` ; les occurrences existantes de `DST_FIELD` sont
|
||||||
|
conservées.
|
||||||
|
|
||||||
|
- **rmcopy** : les occurrences existantes de `DST_FIELD` sont supprimées, puis
|
||||||
|
chaque occurrence de `SRC_FIELD` est dupliquée pour créer une occurrence de
|
||||||
|
`DST_FIELD` ; les occurrences de `SRC_FIELD` sont conservées.
|
||||||
|
|
||||||
|
- **rmmove** : les occurrences existantes de `DST_FIELD` sont supprimées, puis
|
||||||
|
chaque occurrence de `SRC_FIELD` est déplacée pour créer une occurrence de
|
||||||
|
`DST_FIELD`.
|
||||||
|
|
||||||
|
`<SRC_FIELD>` est le champ source de l'action.
|
||||||
|
|
||||||
|
`<DST_FIELD>` est le champ de destination de l'action.
|
||||||
|
|
||||||
|
On spécifie ensuite un ou plusieurs fichier sur lequel ou lesquels effectuer
|
||||||
|
l'action.
|
||||||
|
|
||||||
|
À noter que vous devriez toujours employer des noms de champs en lettres
|
||||||
|
MAJUSCULES ; les champs en minuscules ne sont pas gérés, et le comportement du
|
||||||
|
programme est indéfini si vous les employez. Par exemple, si vous essayez de
|
||||||
|
renommer un champ en minuscules (exemple : `metaflac-field2field move DATE
|
||||||
|
date`), le champ sera simplement supprimé, car `metaflac --remove-tag` ne
|
||||||
|
tient pas compte de la casse.
|
|
@ -0,0 +1,105 @@
|
||||||
|
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.
|
|
@ -1 +1 @@
|
||||||
../multimedia/apply-exif-orientation.sh
|
../graphics/apply-exif-orientation.sh
|
|
@ -1 +1 @@
|
||||||
../multimedia/just-play-something.sh
|
../audio/just-play-something.sh
|
|
@ -1 +1 @@
|
||||||
../multimedia/metaflac-field2field.sh
|
../audio/metaflac-field2field.sh
|
|
@ -1 +1 @@
|
||||||
../multimedia/mp3car.sh
|
../audio/mp3car.sh
|
|
@ -0,0 +1,14 @@
|
||||||
|
apply-exif-orientation.sh
|
||||||
|
=========================
|
||||||
|
|
||||||
|
`apply-exif-orientation.sh` retrieves the Orientation EXIF tag from an image
|
||||||
|
file and rotates the actual image data according to the said orientation. The
|
||||||
|
EXIF Orientation tag is deleted in the process. The goal is to allow the image
|
||||||
|
to be displayed correctly by tools that don't handle EXIF metadata (such as
|
||||||
|
ImageMagick's display).
|
||||||
|
|
||||||
|
EXIF information is manipulated using exiftool, shipped with the
|
||||||
|
`Image::ExifTool` Perl module (Debian package: `libimage-exiftool-perl`).
|
||||||
|
Image is rotated using ImageMagick's `convert`.
|
||||||
|
|
||||||
|
**Warning**: no backup of the original file is made!
|
|
@ -1,151 +0,0 @@
|
||||||
# apply-exif-orientation.sh #
|
|
||||||
|
|
||||||
apply-exif-orientation.sh retrieves the Orientation EXIF tag from an
|
|
||||||
image file and rotates the actual image data according to the said
|
|
||||||
orientation. The EXIF Orientation tag is deleted in the process. The
|
|
||||||
goal is to allow the image to be displayed correctly by tools that don't
|
|
||||||
handle EXIF metadata (such as ImageMagick's display).
|
|
||||||
|
|
||||||
EXIF information is manipulated using exiftool, shipped with the
|
|
||||||
Image::ExifTool Perl module (Debian package: libimage-exiftool-perl).
|
|
||||||
Image is rotated using ImageMagick's convert.
|
|
||||||
|
|
||||||
Warning: no backup of the original file is made!
|
|
||||||
|
|
||||||
|
|
||||||
# just-play-something.sh #
|
|
||||||
|
|
||||||
As its name indicates, the main goal of just-play-something.sh is to put
|
|
||||||
some music on. Just 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
|
|
||||||
doesn't use any utility that might not be present on embedded systems.
|
|
||||||
Here are the required dependencies (beside MPD itself and its
|
|
||||||
command-like client, mpc):
|
|
||||||
- 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 ci-dessous.]
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
metaflac-field2field.sh utilise metaflac pour effectuer des actions de
|
|
||||||
copie ou déplacement de champ à champ sur les fichiers FLAC.
|
|
||||||
|
|
||||||
Invocation du script :
|
|
||||||
|
|
||||||
metaflac-field2field.sh <ACTION> <SRC_FIELD> <DST_FIELD> <FILE.flac> \
|
|
||||||
[ <FILE2.flac> [...] ]
|
|
||||||
|
|
||||||
<ACTION> est l'action à effectuer sur les champs, parmi « copy »,
|
|
||||||
« move », « rmcopy » et « mvcopy » :
|
|
||||||
- copy : chaque occurrence de SRC_FIELD est dupliquée pour créer une
|
|
||||||
occurrence de DST_FIELD ; toutes les occurrences existantes de
|
|
||||||
SRC_FIELD et de DST_FIELD sont conservées.
|
|
||||||
- move : chaque occurrence de SRC_FIELD est déplacée pour créer une
|
|
||||||
occurrence de DST_FIELD ; les occurrences existantes de DST_FIELD sont
|
|
||||||
conservées.
|
|
||||||
- rmcopy : les occurrences existantes de DST_FIELD sont supprimées, puis
|
|
||||||
chaque occurrence de SRC_FIELD est dupliquée pour créer une occurrence
|
|
||||||
de DST_FIELD ; les occurrences de SRC_FIELD sont conservées.
|
|
||||||
- rmmove : les occurrences existantes de DST_FIELD sont supprimées, puis
|
|
||||||
chaque occurrence de SRC_FIELD est déplacée pour créer une occurrence
|
|
||||||
de DST_FIELD.
|
|
||||||
|
|
||||||
<SRC_FIELD> est le champ source de l'action.
|
|
||||||
|
|
||||||
<DST_FIELD> est le champ de destination de l'action.
|
|
||||||
|
|
||||||
On spécifie ensuite un ou plusieurs fichier sur lequel ou lesquels
|
|
||||||
effectuer l'action.
|
|
||||||
|
|
||||||
À noter que vous devriez toujours employer des noms de champs en
|
|
||||||
lettres MAJUSCULES ; les champs en minuscules ne sont pas gérés, et le
|
|
||||||
comportement du programme est indéfini si vous les employez. Par
|
|
||||||
exemple, si vous essayez de renommer un champ en minuscules (exemple :
|
|
||||||
metaflac-field2field move DATE date), le champ sera simplement supprimé,
|
|
||||||
car metaflac --remove-tag ne tient pas compte de la casse.
|
|
||||||
|
|
||||||
|
|
||||||
# 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 might be interested in the dirpacker.py script provided in this
|
|
||||||
repository.
|
|
Loading…
Reference in New Issue