Audio (ALSA + MPD + MPDScribble)
aptitude install mpd mpdscribble ncmpcpp -y
Po spróbowaniu odtworzenia dowolnego utworu pojawił się problem:
mpg321 nazwa_utworu.flac ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
Naprawa jest banalna, wystarczy otworzyć plik alsa.conf oraz zmienić 1 linijkę:
nano /usr/share/alsa/alsa.conf pcm.front cards.pcm.front -> pcm.front cards.pcm.default
Również musiałem dodać do pliku asound.conf:
nano /etc/asound.conf pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 }
Po wyświetleniu dostępnych kart otrzymałem:
cat /proc/asound/cards 0 [sunxicodec ]: sunxi-CODEC - sunxi-CODEC sunxi-CODEC Audio Codec 1 [sunxisndspdif ]: sunxi-sndspdif - sunxi-sndspdif sunxi-sndspdif 2 [sunxisndi2s ]: sunxi-sndi2s - sunxi-sndi2s sunxi-sndi2s
Utworzyłem folder .mpd, .mpdscribble oraz .ncmpcpp w katalogu domowym każdego użytkownika oraz pliki konfiguracyjne.
mkdir .mpdscribble && touch .mpdscribble/mpdscribble.conf mkdir .ncmpcpp && touch .ncmpcpp/config mkdir -p .mpd/playlists && cd .mpd && touch tag_cache mpd.log pid state sticker.sql mpd.conf
Konfiguracja MPD Kingi:
nano .mpd/mpd.conf music_directory "/media/dysk/Muzyka" playlist_directory "~/.mpd/playlists" db_file "~/.mpd/tag_cache" log_file "~/.mpd/mpd.log" pid_file "~/.mpd/pid" state_file "~/.mpd/state" sticker_file "~/.mpd/sticker.sql" port "7777" bind_to_address "any" gapless_mp3_playback "yes" metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" auto_update "yes" zeroconf_enabled "yes" zeroconf_name "Music Player" filesystem_charset "UTF-8" id3v1_encoding "UTF-8" audio_output { type "alsa" name "Analog" device "hw:0,0" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "0" # optional } mixer_type "software" #volume etc
Moja konfiguracja:
nano .mpd/mpd.conf music_directory "/media/dysk/Muzyka" playlist_directory "~/.mpd/playlists" db_file "~/.mpd/tag_cache" log_file "~/.mpd/mpd.log" pid_file "~/.mpd/pid" state_file "~/.mpd/state" sticker_file "~/.mpd/sticker.sql" port "6666" bind_to_address "any" gapless_mp3_playback "yes" metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" auto_update "yes" zeroconf_enabled "yes" zeroconf_name "Music Player" filesystem_charset "UTF-8" id3v1_encoding "UTF-8" audio_output { type "alsa" name "SPDIF" device "hw:1,0" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "0" # optional } audio_output { type "alsa" name "I2S" device "hw:2,0" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "0" # optional } audio_output { type "alsa" name "Bifrost USB" device "hw:3,0" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "1" # optional } mixer_type "software" #volume etc
Dzięki rozdzieleniu profili możemy słuchać równocześnie różnej muzyki w dwóch pokojach, siostra wykorzystuje złącze analogowe, a ja podpinam przetwornik cyfrowo-analogowy pod USB albo wyjście S/PDIF. Warto zauważyć, że lecimy na różnych portach, Kinga na 7777, a ja na szatańskim 6666.
Konfiguracja MPDScribble:
nano .mpdscribble/mpdscribble.conf daemon_user = Kinga log = syslog verbose = 1 host = 127.0.0.1 port = 7777 [last.fm] verbose = 2 url = http://post.audioscrobbler.com/ username = konto_lastfm password = haslo_do_konta_lastmf journal = ~/.mpdscribble/lastfm.journal
No i ncmpcpp wraz ze zmienionym wyglądem:
nano .ncmpcpp/config mpd_music_dir = "/media/dysk/Muzyka" ncmpcpp_directory = "~/.ncmpcpp" mpd_host = "127.0.0.1" mpd_port = "6666" visualizer_in_stereo = "yes visualizer_fifo_path = "/tmp/mpd.fifo" visualizer_output_name = "FIFO" visualizer_sync_interval = "30" visualizer_type = "spectrum" message_delay_time = "3" playlist_shorten_total_times = "yes" playlist_display_mode = "columns" browser_display_mode = "columns" search_engine_display_mode = "columns" playlist_editor_display_mode = "columns" autocenter_mode = "yes" centered_cursor = "yes" user_interface = "alternative" follow_now_playing_lyrics = "yes" locked_screen_width_part = "60" display_bitrate = "yes" allow_physical_files_deletion = "yes" allow_physical_directories_deletion = "yes" external_editor = "vim" use_console_editor = "yes" header_window_color = "cyan" volume_color = "red" state_line_color = "yellow" state_flags_color = "red" progressbar_color = "yellow" statusbar_color = "cyan" visualizer_color = "red"
Aby MPD i scrobbler uruchamiał się automatycznie jako proces konkretnego użytkownika (ważne!) należy dodać 3 linijki:
nano /etc/rc.local #!/bin/sh -e sudo -u Kinga mpd sudo -u Kinga mpdscribble sudo -u Mariusz mpd exit 0
Globalna konfiguracja MPD na koniec:
nano /etc/default/mpd START_MPD=false MPDCONF=~/.mpd/mpd.conf
Sprawdzenie poprawności działania MPD:
ps aux | grep mpd Kinga 2684 28.9 0.3 65040 8056 ? Ssl 11:26 0:08 mpd Kinga 2690 0.0 0.1 14784 2224 ? Ss 11:26 0:00 mpdscribble Mariusz 2693 29.9 0.3 64880 7236 ? Ssl 11:26 0:08 mpd root 2732 0.0 0.0 3128 720 pts/0 S+ 11:27 0:00 grep mpd
Sprawdzenie poprawności odtwarzania i działania karty (standardowe wyjście analogowe 3,5 mm):
cat /proc/asound/card0/pcm0p/sub0/hw_params access: RW_INTERLEAVED format: S16_LE subformat: STD channels: 2 rate: 44100 (44100/1) period_size: 2048 buffer_size: 8192