Sziasztok!
Következő nagyobb projektem a nassal egy "zenegép" létrehozása lett. Ez az írásom a "Hogyan" kérdésre igyekszik választ adni.
Mindenek előtt szeretném kifejezni köszönetemet barmalej2-nek és Mijzelf-nek, akiket egyébként is maximális respect illet! Nélkülük nem született volna meg ez az írás (sem).
Nos, hol is kezdjem... Találtam itthon egy kicioccó, Kínai USB hangkártyát és az az ördögi ötletem támadt, hogy én ezzel, és a nasommal este már zenét fogok hallgatni! És összejött, tulajdonképpen ezért íródott a cikk is.
Térjünk a lényegre!
Már most rengeteg megoldással találkoztam, vannak egészen egyszerűek, míg vannak komolyak is. Egy a közös bennük. Mindegyikhez kell maga a hangkártya driver, illetve a csatolási pont létrehozása.
A drivereket szerencsére megtalálhatjuk Mijzelf repójában. A telepítéshez ezt a parancsot kell kiadnunk, illetve az uwsiteloader-es repó hozzáadás alap dolog a parancs kiadása előtt!:
slacker -UuiA kmod zyxel_modules-2.6.31.8
Majd a megjelenő listában csillagozzuk meg a csomagokat (mindkettőből egyet).
Ezután adjuk ki ezeket:
modprobe snd-usb-audio index=0
mknod /dev/mixer c 14 0
mknod /dev/dsp c 14 3
modprobe snd-pcm-oss
modprobe snd-mixer-oss
Majd dugjuk be a hangkártyát! Ezután célszerű ránézni, hogy minden oké-e a csatolási ponttal (mount point). Ezt én egy egyszerű cat-tal szoktam megnézni:
cat /dev/dsp
Itt az a lényeg, hogy a cat bármit dobhat, csak No such device-t nem! Ha ezt dobja, akkor te is dobj meg kérlek egy /bin/dmesg
kimenettel!
Ezután szedjük le a "szkriptem", ami minden induláskor betölti a kellő modulokat:
wget http://users.atw.hu/mrdini/scripts/soundcard.sh -O /ffp/start/soundcard.sh; chmod a+x /ffp/start/soundcard.sh
Ha ezekkel mind megvolnánk, akkor tulképp ki is veséztük a modulokat. Ha még nem lenne telepítve a slapt-get, akkor járjunk el ezen leírás alapján, majd mehetünk is tovább magára a lejátszóprogramra! Nos, ez az, amiből már most ismerek hármat, így leírom majd az összes megoldást. Arra gondoltam, hogy a legegyszerűbb beállításút, ámde legkisebb tudásút teszem előre, majd tudás szerint haladunk a listában előre.
1. megoldás - madplay
Nos, ez a program egy nagyon kompakt CLI dekóder/lejátszó. A hátránya, hogy csak az MPEG fájlokat képes lejátszani. Ilyen például az mp3.
Szerintem gyönyörűen szól, procit nem terheli le (max 4 %-ot mértem a top kimenetében), illetve real-time dekódol, így nem kell várni a dallam felcsendülésére.
A telepítés:
Adjuk ki ezt:
slapt-get -i madplay
Ezután dugjuk be a hangkarit, ha még nem tettük meg, horkásszuk össze a mélyládánk, illletve az erősítőket/hangszórókat, majd teszteljük egy kiváló ncs számmal a projektünk sikerességét:
wget users.atw.hu/mrdini/packages/needed/test.mp3 -O /tmp/test.mp3
madplay /tmp/test.mp3 -S -A -28
Itt a -S kapcsoló a sztereó kimenetért felelős, a -A -28 kapcsoló pedig a hangerő decibellben megadva -175 és 18 (vagy 20, ez a számtól függ) között adjuk meg. Nekem a 28 eddig egy szimpatikus számnak tűnik! (az én fülemnek)
Amit még érdemes megjegyeznem, hogy billentyűkkel lehet "irányítani" a lejátszást. Pl a P betű szünetelteti a lejátszást, míg az S betű megállítja azt. A Q betűre pedig kilép a lejátszásból. Illetve a + és - a hangerőt állítja. Ez viszont nálam csak a következő számnál érvényesül, vagy például egy szünet után.
Ennyi!
2. megoldás - MPlayer
Az MPlayer egy magyar fejlesztésű, linux alatt (is) működő mindenes lejátszóprogram. Mivel tudja az ffmpeget és még sok más kodeket használni, így a különböző formátumok lejátszásával sem lesz gondunk. Én eddig flac-ot, mp3-at, aac-t és mp4-et is próbáltam. Mindegyik tökéletes volt!
Viszont, mivel ő is real-time kódol és hozzá pl az ffmpeget használja, így a procihasználat is jelentősebb lesz... A madplay résznél (1. pont) említett ncs szám max 4% procit jelentett a mad esetében, míg itt már 30% a terhelés.
A hang príma az én fülemnek, semmi búgás stb, szóval azzal nincsen gond!
Telepítés:
A legegyszerűbb megoldás jelenleg, hogy slapt-gettel telepítjük az MPlayert, mivel ő gondoskodik a függőségek telepítéséről is:
slapt-get -i MPlayer
Miután feltelepül maga a csomag és a sok-sok függősége, eresszünk rá egy teszt lejátszást:
wget users.atw.hu/mrdini/packages/needed/test.mp3 -O /tmp/test.mp3
mplayer /tmp/test.mp3 -af volume=-30
A -af volume=-30 kapcsoló nem kötelező, csak szerintem az alap (0 dB) kicsit sok. Ha a -30 is soknak tűnik, akkor nyugodtan lentebb lehet venni.
Ennyi!
3. megoldás - cmus
Nos ez a megoldás a legkényelmesebb, ámde legkomplikáltabb megoldás. Még nekem sem sikerült 100%-os csomagot kreálni belőle, de az a fő, hogy működik szuperül! Azóta (2017. 12. 30-án) ebből is készült egy stabil csomag.
cmus OS X konzolból
Igen, valahogy így néz ki a nason is, mint a képen. Láthatjuk a médiatárunk, és egy enterrel már játsza is le a számot.
Telepítés:
Adjuk ki ezt:
slapt-get -i cmus
Ha szükséges, nyomjunk yes-t a telepítés megerősítésére, és készen is volnánk vele!
--------------------------------------------------------------------------------------------------------
Ha fent van, akkor indítani a cmus
paranccsal lehet. Fontos az indulás után megadni neki az oss kimentet, amit a :set output_plugin=oss
kiadásával tudunk megtenni. Első indításkor üres médiatárral indul. Semmi probléma, ez normális! Még hozzá kell adnunk a zenemappáink így:
:add /zene/mappa/elérési/útja/
Több mappát is be lehet neki tallózni, viszont a művelet befejezése után érdemes kiadni a :save
parancsot, ami elmenti az aktuális könyvtárunk, tehát következő indításkor már mutatni fogja őket.
A felület szerintem magától értetődő, de érdemes átolvasni a hozzá járó két man oldalt (cmus, cmus-tutorial).
Ha pedig végeztünk a zenehallgatással, akkor a :quit
bepötyögése után be is zárul a program.
Ennyi!
4. megoldás - A Music Player Daemon (mpd)
Ezt a megoldást picit később fedeztem fel, csak ezért van a végén.
Ez a tool egy kicsit különbözik az eddig felvázoltaktól, mivel ehhez nem szükséges a terminálban parancsokkal játszadozni, hanem ezt elég csak egyszer megtenni és utána irányítható lesz mobilról, PCről stb...
Ezzel a nas-t egy wifi-s zenelejátszóvá varázsolhatjuk. Előnyei (többek közt), hogy kevés ramot és processzort eszik (max 4,5 %, de ha nem megy zene, akkor szinte semmit); hogy egyszerű felrakni; hogy egyszerre több hangkártyát is támogat; hogy rengeteg formátumot ismer illetve, hogy lehet irányítani bármilyen OS alól!
Telepítés:
Rendkívül egyszerű az mpd telepítése, hála barmalej2 fáradozásainak , aki nagyon jó csomagot állított össze nekünk. Én mindössze néhány konfigbeli módosítást eszközöltem.
Használjuk a slapt-get-et a telepítéséhez:
slapt-get -i mpd
Ezután már csak ki kell adni az mpd
parancsot és már el is indul a csomag. Teszteljük, hogy minden oké-e, majd lőjük ki: killall mpd
Majd nézzünk rá a konfigjára, amit a /ffp/etc/mpd.conf fájl rejteget . Ha nem akarunk rajta semmit szerkeszteni, akkor már csak ezt kell kiadnunk:
chmod a+x /ffp/start/mpd.sh; /ffp/start/mpd.sh start
Ez azért kell, hogy minden indításkor automatikusan elinduljon a program.
Ui.: Windowsos kliensprogramnak az ingyenes Auremo-t, míg Android alá a szintén térítésmentesen használható MPDroid-ot ajánlom!
Ennyi! (egyenlőre)
--------------------------------------------------------------------------------------------------------
+Néhány hasznos dolog
- Érdemes feltenni a screen-t (slacker -UuiA mz:screen
), majd a zenelejátszó parancsok elé mindig célszerű odabiggyeszteni a screen szócskát. Ez azért jó, mert ha a lejátszás közben nyomunk egy Ctrl+a+d kombót, akkor "háttérbe szorítja" a lejátszást és nyugodtan bezárhatjuk az ssh-t, a lejátszás menni fog tovább. Ha pedig vissza szeretnénk lépni, mert mondjuk zenét szeretnénk váltani, akkor lépjünk be újra ssh-ra és adjuk ki a screen -r
parancsot. Ezután vissza is kapjuk a lejátszónkat!
- Ha nem szimpatikus az ssh-n paranccsal indítós zenelejátszó, mert túl hosszú kiadni a parancsokat stb, akkor javaslom, hogy tegyük föl a Tweaks nevű csomagot, amit a Mijzelf féle MetaRepository tartalmaz, ezután a Tweaks konfig felületén az "Intercept copy button" részben mondjuk a "short press"-hez írjuk be a lejátszó parancsot, a "long press"-hez pedig egy /ffp/bin/killall <lejátszó neve>
parancsot. Figyelj arra, hogy nem elég pl a madplay parancs, hanem meg kell adni a madplay teljes elérési útját, tehát pl a /ffp/bin/madplay-t. Különben nem fog működni... Ezután egy gombnyomásra menni fog a zene és ha hosszan nyomjuk, le is fog állni!
Én például ezt írtam madplay esetén a "short press"-hez:
/ffp/bin/madplay /i-data/md0/music/*.mp3 -S -A -38 --shuffle
A --shuffle parancs még a random számválasztásról is gondoskodik!
--------------------------------------------------------------------------------------------------------
Sok sikert hozzá, jó zenehallgatást!