Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/03/2020, à 16:13

JujuLand

MPD et Sonata

Bonjour,

Je viens d'installer mpd et sonata, et ça fonctionne.

J'ai ma musique sous ~/Musique, avec une arborescence de ce type :

Artiste 1
     Album 1
     Album 2
Artiste 2
     Album 1
     Album2
     ...
...

et mpd veut tous les morceaux dans le même dossier, ce qui m'embête, car je ne voulais pas mélanger tous les morceaux de tous les albums de tous les artistes ...

Aussi, j'ai voulu faire un essai en créant dans le dossier de mpd, un lien vers un morceau situé dans un autre dossier.

Le lien est bien créé, et un ls me le montre bien, mais je ne le vois pas dans sonata

Questions:

1) Est-ce possible ?
2) Cela nécessite-t-il de reconstruire la bibliothèque ? Et comment ?

Merci
A+

Dernière modification par JujuLand (Le 21/03/2020, à 16:14)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 24/03/2020, à 23:14

maxire

Re : MPD et Sonata

Salut,

Jujuland a écrit :

et mpd veut tous les morceaux dans le même dossier

Je viens juste d'installer mpd,couplé avec une tablette android cela me permet de piloter mes écoutes à distance.

Je n'ai pas du tout ce problème d'arborescence, je pense que quelque chose coince dans la configuation que tu utilises.

Ce serait bien de donner le contenu du fichier de configuration que tu utilises :
/etc/mpd.conf si tu utilises mpd en mode système ou bien ~/.config/mpd/mpd.conf dans le cas utilisateur.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#3 Le 25/03/2020, à 15:16

JujuLand

Re : MPD et Sonata

Salut,

Bon, j'utilise le mode système, et j'ai trouvé mpd.conf dans /etc

Le voici:

# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# or /usr/share/doc/mpd/user-manual.html


# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This 
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory		"~/Musique/Beatles/Revolver"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use 
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory		"~/mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the 
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file			"~/mpd/mpd.db"
# 
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file			"/var/log/mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file			"/run/mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server 
# state will be reset on server start up.
#
state_file			"/var/lib/mpd/state"
#
# The location of the sticker database.  This is a database which
# manages dynamic information attached to songs.
#
sticker_file                   "/var/lib/mpd/sticker.sql"
#
###############################################################################


# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
#user				"mpd"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group                          "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon. Choose any if you want
# to have mpd listen on every address. Not effective if systemd socket
# activation is in use.
#
# For network
bind_to_address		"192.168.1.24"
#
# And for Unix Socket
#bind_to_address		"/run/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
port				"6600"
#
# This setting controls the type of information which is logged. Available 
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
#log_level			"default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that 
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available as vbrfix in the debian archive), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback			"yes"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists	"no"
#
# This setting defines a list of tag types that will be extracted during the 
# audio file discovery process. The complete list of possible values can be
# found in the mpd.conf man page.
#metadata_to_use	"artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This setting enables automatic update of MPD's database when files in 
# music_directory are changed.
#
#auto_update    "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself.  There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################


# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following 
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks	"yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks		"yes"
#
###############################################################################


# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled		"yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name			"Music Player"
#
###############################################################################


# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password                        "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in. 
#
#default_permissions             "read,add,control,admin"
#
###############################################################################


# Database #######################################################################
#

#database {
#       plugin "proxy"
#       host "other.mpd.host"
#       port "6600"
#}

# Input #######################################################################
#

input {
        plugin "curl"
#       proxy "proxy.isp.com:8080"
#       proxy_user "user"
#       proxy_password "password"
}

#
###############################################################################

# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple 
# audio outputs at the same time, through multiple audio_output settings 
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
audio_output {
	type		"alsa"
	name		"My ALSA Device"
#	device		"hw:0,0"	# optional
#	mixer_type      "hardware"      # optional
#	mixer_device	"default"	# optional
#	mixer_control	"PCM"		# optional
#	mixer_index	"0"		# optional
}
#
# An example of an OSS output:
#
#audio_output {
#	type		"oss"
#	name		"My OSS Device"
#	device		"/dev/dsp"	# optional
#	mixer_type      "hardware"      # optional
#	mixer_device	"/dev/mixer"	# optional
#	mixer_control	"PCM"		# optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
#	type		"shout"
#	encoding	"ogg"			# optional
#	name		"My Shout Stream"
#	host		"localhost"
#	port		"8000"
#	mount		"/mpd.ogg"
#	password	"hackme"
#	quality		"5.0"
#	bitrate		"128"
#	format		"44100:16:1"
#	protocol	"icecast2"		# optional
#	user		"source"		# optional
#	description	"My Stream Description"	# optional
#	url             "http://example.com"    # optional
#	genre		"jazz"			# optional
#	public		"no"			# optional
#	timeout		"2"			# optional
#	mixer_type      "software"              # optional
#}
#
# An example of a recorder output:
#
#audio_output {
#       type            "recorder"
#       name            "My recorder"
#       encoder         "vorbis"                # optional, vorbis or lame
#       path            "/var/lib/mpd/recorder/mpd.ogg"
##      quality         "5.0"                   # do not define if bitrate is defined
#       bitrate         "128"                   # do not define if quality is defined
#       format          "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
#	type		"httpd"
#	name		"My HTTP Stream"
#	encoder		"vorbis"		# optional, vorbis or lame
#	port		"8000"
#	bind_to_address "0.0.0.0"               # optional, IPv4 or IPv6
#	quality		"5.0"			# do not define if bitrate is defined
#	bitrate		"128"			# do not define if quality is defined
#	format		"44100:16:1"
#	max_clients     "0"                     # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
# Please see README.Debian if you want mpd to play through the pulseaudio
# daemon started as part of your graphical desktop session!
#
#audio_output {
#	type		"pulse"
#	name		"My Pulse Output"
#	server		"remote_server"		# optional
#	sink		"remote_server_sink"	# optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
#	type		"winmm"
#	name		"My WinMM output"
#	device		"Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#		or
#	device		"0"		# optional
#	mixer_type	"hardware"	# optional
#}
#
# An example of an openal output.
#
#audio_output {
#	type		"openal"
#	name		"My OpenAL output"
#	device		"Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
#	type		"pipe"
#	name		"my pipe"
#	command		"aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
#	command		"AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
#	command		"nc example.org 8765"
#	format		"44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
#	type		"null"
#	name		"My Null Output"
#	mixer_type      "none"                  # optional
#}
#
# If MPD has been compiled with libsamplerate support, this setting specifies 
# the sample rate converter to use.  Possible values can be found in the 
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter		"Fastest Sinc Interpolator"
#
###############################################################################


# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
#replaygain			"album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp		"0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp	"0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit		"yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has 
# equal "loudness". This setting is disabled by default.
#
#volume_normalization		"no"
#
###############################################################################


# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you 
# may need to modify this setting.
#
filesystem_charset		"UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
id3v1_encoding			"UTF-8"
#
###############################################################################


# SIDPlay decoder #############################################################
#
# songlength_database:
#  Location of your songlengths file, as distributed with the HVSC.
#  The sidplay plugin checks this for matching MD5 fingerprints.
#  See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
#
# default_songlength:
#  This is the default playing time in seconds for songs not in the
#  songlength database, or in case you're not using a database.
#  A value of 0 means play indefinitely.
#
# filter:
#  Turns the SID filter emulation on or off.
#
#decoder {
#       plugin                  "sidplay"
#       songlength_database     "/media/C64Music/DOCUMENTS/Songlengths.txt"
#       default_songlength      "120"
#       filter "true"
#}
#
###############################################################################

Ah oui, mais j'ai un autre problème,  c'est que quand je lance Sonate, si je suis bien connecté, la musique est envoyée sur le serveur audio du serveur, et non sur celui du client.

Là encore, il s'agit probablement d'une saucisse dans les paramètres ...

Voilà ...
Si tu vois quelque chose ...

Merci
A+

Dernière modification par JujuLand (Le 25/03/2020, à 15:29)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#4 Le 26/03/2020, à 13:16

maxire

Re : MPD et Sonata

Salut,

À la réflexion je ne comprends pas vraiment ton problème de répertoire, j'utilise moi-même un répertoire musical avec cette arborescence Artiste/Album, l'affichage de la bibliothèque dépend de l'application cliente de mpd donc de sonata dans ton cas.
Oui, mpd n'accepte qu'un seul répertoire musical avec une sécurité bloquant les liens symboliques internes et externes :
Cette sécurité est désactivable en utilisant un ou les deux paramèters suivants dans mpd.conf :

# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following 
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks	"yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks		"yes"
#
###############################################################################

Je pense que dans ton cas :

follow_outside_symlinks	"yes"

devrait suffire, à essayer.

Ton autre problème :

JujuLand a écrit :

la musique est envoyée sur le serveur audio du serveur, et non sur celui du client

Je crois que tu n'as pas bien compris ce qu'est mpd.
mpd est d'abord un démon musical local, il est accessible du réseau uniquement pour son contrôle c'est à dire un pilotage à distance via un autre pc,un smartphone ou une tablette.
Son rôle n'est initialement pas du tout de diffuser de l'audio dans le réseau.

Cependant tu peux contourner cette limite en utilisant pulseaudio ou un serveur Icecast.

En ce qui concerne Icecast je ne suis à ce jour pas capable d'utiliser le plugin icecast (httpd) de mpd, il ne démarre pas, bug possible.

En ce qui concerne pulseaudio :
1 - tu commentes audio_output alsa dans mpd.conf puisque tu ne veux pas une écoute locale :

#audio_output {
#	type		"alsa"
#	name		"My ALSA Device"
#	device		"hw:0,0"	# optional
#	mixer_type      "hardware"      # optional
#	mixer_device	"default"	# optional
#	mixer_control	"PCM"		# optional
#	mixer_index	"0"		# optional
#}

2 - tu ajoutes ces lignes dans mpd.conf :

audio_output {
       type             "pulse"
       name             "Pulse audio"
       server           "adresse du client sous forme d'adresse ipv6 ou ipv4 ou nom qualifié d'hôte"
}

3 - Tu actives l'écoute réseau de pulseaudio de ta session utilisateur cliente (celle dans laquelle tu utilises sonata) en passant cette commande :

pactl load-module module-native-protocol-tcp auth-anonymous=1

Après redémarrage du serveur mpd, le son devrait sortir des hauts-parleurs du client.

Il faudra que tu mettes en place un script pour activer la réception audio à chaque démarrage de session cliente, c'est préférable à une version utilisateu de default.pa.

Dernière modification par maxire (Le 26/03/2020, à 14:11)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#5 Le 26/03/2020, à 14:27

JujuLand

Re : MPD et Sonata

Salut,

Effectivement, je pensais que les clients (sonata, par exemple) permettait d'écouter de l'audio sur un ordi distant avec l'aide de mpd qui, dans ma tête était un serveur d'audio.

Ce que je cherche, c'est d'écouter de la musique située sur un serveur, depuis n'importe lequel de mes ordis, dans des pièces différentes, et de même, si je veux écouter un morceau, que mon épouse située dans une autre pièce, puisse écouter ce qu'elle veut, et qui pourrait être différent, évidemment. Et donc, la solution icecast ne me semble pas convenir ... puisque on utilisera une même playlist.

Pour les liens, j'avais vu, mais je n'ai pas encore réussi à mettre ça en place.
Je me demandais si je ne devrai pas créer un dossier spécifique qui recevra les liens de tous les morceaux et faire pointer mpd sur ce dossier ...

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 26/03/2020, à 14:32

Compte supprimé

Re : MPD et Sonata

Cette page de la doc, explique aussi le paramétrage pour écouter sur une autre machine.
https://doc.ubuntu-fr.org/tutoriel/conf … ttp_de_mpd

J'ai arrêté mpd depuis que j'utilise Nextcloud. Mon raspberrypi est lui aussi en confinement depuis plusieurs mois smile

Dernière modification par Compte supprimé (Le 26/03/2020, à 14:34)

#7 Le 26/03/2020, à 14:43

maxire

Re : MPD et Sonata

mpd n'est pas une très bonne solution pour ce que tu veux réaliser :

Une instance de mpd = une liste de lecture
Si tu veux pouvoir proposer plus d'une liste de lecture il faut démarrer une instance mpd pour une liste de lecture, c'est un peu lourd mais faisable, il reste tout de même à diriger les flux audios de chaque liste vers le bon destinataire.

Si vous n'êtes que deux à écouter de la musique tu peux démarrer une instance mpd utilisant le port 6600 et une autre le port 6601, le problème est qu'avec pulseaudio tu utilises une adresse destinataire statique donc tu ne pourras utiliser q'un seul client par démon mpd.

Il existe bien la solution icecast soit une instance de serveur icecast pour l'usage de ton épouse, l'autre à ton usage, avec une instance mpd couplée à chacun de ces serveurs Icecast.
Il faudrait alors utiliser le plugin shoutcast pour coupler les instances mpd et icecast, pour l'instant je n'ai pas essayé.
À moins que le plugin icecast fonctionne sous Ubuntu contrairement à ma configuration qui tourne sous Archlinux.

C'est un peu lourd...

Dernière modification par maxire (Le 26/03/2020, à 14:44)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#8 Le 26/03/2020, à 14:49

maxire

Re : MPD et Sonata

Le lien donné par Tamarou explique comment lancer le serveur icecast intégré à mpd, sauf que je n'arrive pas à le lancer avec mpd version 0.21.21 alors que le plugin est bien indiqué comme actif :

[frankenstein@frankenstein ~]$ mpd --version |grep -B 1 httpd
Output plugins:
 shout null fifo pipe alsa ao oss openal solaris pulse jack httpd recorder
[frankenstein@frankenstein ~]$ 

Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#9 Le 26/03/2020, à 14:52

maxire

Re : MPD et Sonata

Jujuland a écrit :

Je me demandais si je ne devrai pas créer un dossier spécifique qui recevra les liens de tous les morceaux et faire pointer mpd sur ce dossier ..

Idée raisonnable, à essayer.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#10 Le 26/03/2020, à 15:30

Compte supprimé

Re : MPD et Sonata

Je  confonds peut-être, mais il me semble me souvenir que :
* le répertoire des playlists peut en contenir plusieurs. C'est ainsi que je zappais entre les radios avec une liste.
* on peut les composer avec Sonata

Sous réserves car le virus pourrait bien être déjà en train de me travailler.

Dernière modification par Compte supprimé (Le 26/03/2020, à 15:32)

#11 Le 26/03/2020, à 15:59

JujuLand

Re : MPD et Sonata

@ maxire

Je viens de faire un petit script pour test qui me crée des raccourcis dans le dossier ~/mpd/music
Je me suis un peu emmerdé avec ln mais bon, si ma solution est lourdingue, elle fonctionne wink

#!/bin/bash

cd ~/Musique/Beatles/Abbey\ Road

find -name "*.mp3" -print |while read fichier
do
    myfile=$(echo "$fichier"|sed 's|./||')
    ln -s "$fichier" "x$myfile"
    cp "x$myfile" ~/mpd/music
    cd ~/mpd/music
    mv "x$myfile" "$myfile"
    cd ~/Musique/Beatles/Abbey\ Road
    rm "x$myfile"
done

reste à scruter tous les répertoires, sachant que j'ai l'arborescence suivante:

Musique
                Artiste1
                      Album1
                      Album2
                     ...
                Artiste2
                     ...

Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#12 Le 27/03/2020, à 08:58

maxire

Re : MPD et Sonata

Salut,

Je viens de penser à une chose pour réaliser ta mise à plat de ta bibliothèque sous un seul répertoire il faudrait que les noms des pistes soient uniques et ce n'est pas le cas, tu as des noms de pistes sous un répertoire qui peuvent être sous la forme piste 1.mp3, piste 2.mp3 etcetera.
De plus rien n'interdit l'interprétation d'un titre par plusieurs artistes différents ni même des titres homonymes, tu risques de trouver pas mal de noms de pistes identiques pour la «Petite Musique de Nuit» de Mozart ou du «Sacre du Printemps» de Tchaïkovsky.
Je comprends de moins en moins ce que tu veux faire et quel est ton réel problème, en ce qui concerne ta gestion de bibliothèque.

Un peu compliqué ton script quand même:

find "$HOME/Musique/Beatles/Abbey Road" -name *.mp3 -print  | while read fichier; do nom=${fichier/['/']*['/']/}; ln -s "$fichier" $HOME/mpd/music/"$nom"; done

devrait faire le boulot, pas besoin de sed, BASH propose tout le nécessaire pour traiter les chaînes de caractères.
Lis la documentation BASH via la commande info BASH, paragraphe «3.5.2 Tilde Expansion» tu trouveras comment manipuler les chaînes de caractères des variables c'est tout de même beaucoup plus logique que d'afficher une variable pour la transformer en un fichier utilisable par sed, en plus il est alors nécessaire de charger le programme externe sed.

Je vais tester une solution Icecast pure sans passer par le plugin httpd de mpd qui chez moi ne fonctionne pas, je vous tiens au courant.

Dernière modification par maxire (Le 27/03/2020, à 09:02)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#13 Le 27/03/2020, à 09:21

JujuLand

Re : MPD et Sonata

Salut,

maxire a écrit :

Je viens de penser à une chose pour réaliser ta mise à plat de ta bibliothèque sous un seul répertoire il faudrait que les noms des pistes soient uniques et ce n'est pas le cas, tu as des noms de pistes sous un répertoire qui peuvent être sous la forme piste 1.mp3, piste 2.mp3 etcetera.
De plus rien n'interdit l'interprétation d'un titre par plusieurs artistes différents ni même des titres homonymes, tu risques de trouver pas mal de noms de pistes identiques pour la «Petite Musique de Nuit» de Mozart ou du «Sacre du Printemps» de Tchaïkovsky.

Non, justement, à cause d'un bug de rythmbox qui a tendance, par moment à véroler la base de données, et pour, dans ce cas, retrouver facilement les vrais caractéristiques des morceaux, je renomme systématiquement les mp3 de cette façon:

"Artiste - Album - numéro - titre"

exemple:

Beatles - Abbey Road - 09 - You Never Give Me Your Money.mp3

et avec, par exemple, l'arborescence suivante:

~/Musique/Beatles/Abbey Road

Ce qui fait que les noms sont homogènes.

Je vais tester ta solution qui devrait sans toute fonctionner pour un dossier d'album, mais il me faudra une boucle pour traiter tous mes albums. Mais je ne vois pas comment faire avec des dossiers qui ne comprennent que des sous-dossiers ...

Merci
A+

Dernière modification par JujuLand (Le 27/03/2020, à 09:32)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#14 Le 27/03/2020, à 10:21

maxire

Re : MPD et Sonata

Ok si tu as déjà défini des noms uniques de pistes audio, cela devrait fonctionner.

La commande que je t'ai donnée peut traiter toute l'arborescence de ton répertoire musical, comme ceci:

find "$HOME/Musique/" -name *.mp3 -print  | while read fichier; do nom=${fichier/['/']*['/']/}; ln -s "$fichier" $HOME/mpd/music/"$nom"; done

Dans un premier temps réalise un test à blanc :

find "$HOME/Musique/" -name *.mp3 -print  | while read fichier; do nom=${fichier/['/']*['/']/}; echo "Chemin=$fichier Nom=$nom"; done

Je te conseille d'utiliser le nom complet du fichier  cible pour créer le lien symbolique c'est à dire /$HOME/Musique/piste au lieu de ~/Musique/piste, cela évite de traiter le . dans la génération du nom de fichier et un chemin absolu dans ce cas est préférable à un chemin relatif ./piste pas besoin de se positionner dans les répertoires.

Edit : correction d'un copier/coller rater d'un exemple de commande.

Dernière modification par maxire (Le 27/03/2020, à 10:39)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#15 Le 28/03/2020, à 18:05

JujuLand

Re : MPD et Sonata

bon, j'ai essayé la commande de test, et ça fonctionne bien.
J'ai simplement modifié les sorties des echo vers un fichier afin de vérifier que tous les dossiers ont des noms qui répondent à la structure que j'utilise.

Et évidemment, j'ai ai trouvé quelques-uns qui ne sont pas ok.
Je corrige ça et essaierai l'autre secript après çà ...

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne