Articles tagged ‘mpd’
* Popup upozornění na změnu písničky v MPD
8. June 2009, Jakub Horák. Zařazeno mezi Unassigned.
Zkouškové je období, kdy se má student učit. Bohužel zjišťuji, že se o zkouškovém učím ještě míň než v průběhu semestru. Moje nechuť dělat cokoliv do školy tak dala vzniknout další utilitě pro MPD.
Zachtělo se mi vědět, jaké písničky moje MPD právě přehrává. Po chvilce hledání jsem našel skript, který používá Galago notification-daemona. Přišlo mi ale zbytečné používat dalšího daemona, když už mám standardně puštěného knotify4 kvůli aplikacím KDE. Napsal jsem si tedy vlastní KDE aplikaci, která zobrazuje pěkné popupy včetně album arts.
Další info na http://mpd.wikia.com/wiki/Client:MpdKNotifier
UPDATE: xaizek vylepšil můj MpdKNotifier a zveřejnil kód na GitHubu. Doporučuji použít tuto verzi.
* Zobrazování textů písní pro MPD
19. April 2009, Jakub Horák. Zařazeno mezi Scripts.
Narazil jsem na další problém přehrávače MPD. Kvůli absenci grafického rozhraní nemá jak zobrazovat texty písní. Zkoušel jsem různé skripty, které mají texty zobrazovat, ale žádný nefungoval, takže jsem se rozhodl obětovat chvíli času a napsat si skript vlastní.
Zajímavé bylo řešit, jak texty získat. Existuje totiž spoustu webů s databázemi textů, které jsou ale značně pochybné a texty se z nich špatně vytahují. Napadlo mě použít nejlepší výsledek vyhledávání v Yahoo! a zobrazit ho v prohlížeči. Yahoo! poskytuje webovou vyhledávací službu BOSS, pomocí níž by se toto implementovalo velice snadno. Bohužel testování ukázalo, že v praxi Yahoo! na první pozici často nedá správný odkaz. Škoda… Ještě v souvislosti s vyhledávači a jejich službami mě překvapila skutečnost, že Google tu svojí přestal poskytovat.
Vzpomněl jsem si na Amarok a na jeho řešení vyhledávání textů písní, které ve verzi 2.0+ funǵuje docela spolehlivě. Po chvilce pátrání ve zdrojácích jsem objevil službu lyricwiki.org. LyricWiki.org podporuje vyhledávání textů pomocí SOAP, což je pro programátora velká výhra 🙂 Zbytek práce už bylo jenom skládání v Ruby.
Více o skriptu na oficiálních stránkách MPD
* MPD hack v Ruby
17. January 2009, Jakub Horák. Zařazeno mezi Scripts.
Vždy jsem byl příznivcem hudebního přehrávače Amarok. Nedávno mě ale jeho autoři naštvali. V nové verzi 2.0 jako databázový backend použili MySQL embedded. To je sice pěkné, ale tahle vlastnost je dostupná jenom v nejnovějších experimentálních verzích MySQL 5.1. Vzhledem k tomu, že MySQL potřebuji do práce, nechci nainstalovat nestabilní verzi, která se chová jinak než verze MySQL na ostrém serveru.
Před pár lety jsem používal jako hudební přehrávač MPD, a tak mě napadlo, že bych se mohl podívat, jak se za tu dobu změnil. Přehrávač MPD je zajímavý hlavně svojí architekturou — vlastní MPD se chová jako server a existuje spousta klientů, které se k němu připojují a doplňují přehrávací GUI. Vzhledem k tomu, že dávám přednost rychlým konzolovým aplikacím, vybral jsem si klienta ncmpcpp, který má jednoduché, ale přitom efektivní rozhraní.
Oproti Amaroku mi ale chyběla jedna důležitá vlastnost hudebního přehrávače — možnost přehrávat hudbu z externího disku. Amarok to řeší tím způsobem, že kromě songů z vlastní databáze umí přehrát i soubory vybrané v integrovaném prohlížeči souborů (KPart). Pro MPD je tohle bohužel docela velký problém. Rozhodl jsem se proto napsat si vlastní hack 🙂
Můj oblíbený filemanager Midnight Commander umí samozřejmě spustit hudební soubory jakýmkoliv programem mu řeknu. Takže mi stačilo napsat prográmek, který vybrané hudební soubory přidá do playlistu MPD. V praxi to provádím tak, že ve složce na lokálním disku, kam MPD může, vytvořím symbolický odkaz na soubor z externího disku. Když pak MPD pustí aktualizaci databáze, zaindexuje i tyto soubory a tím pádem už je možné je snadno přidat do playlistu a přehrát.
Napsat takový krátký program v kompilovaném jazyce mi přišlo nevhodné a v PHP zas jako naprostá prasárna. Ze skriptovacích jazyků se podle mě k tomuto účelu nejvíc hodí jeden z jazyků Perl, Python nebo Ruby. Ačkoliv každý z této trojice jazyků má něco do sebe, nakonec jsem si vybral Ruby. Na Ruby se mi líbí jeho filozofie “Všechno je objekt” a “Princip menšího překvapení”. Ruby má také interaktivní shell zvaný IRB, což je docela pěkná věc, ve které se dají zkoušet rozmanité jazykové konstrukty a kterou používám místo kalkulačky.
Zdrojový kód hacku je ke stažení zde. Pro ovládání MPD používám knihovnu librmpd.rb.
Instalace
Otevřete mpdplay.rb
v editoru a nastavte MUSIC_DIR
na složku s hudbou, jakou máte v konfiguraci MPD.
$ vi mpdplay.rb |
Dále spusťte:
# mv mpdplay.rb /usr/local/bin/mpdplay # chmod +x /usr/local/bin/mpdplay.rb # mv librmpd.rb /usr/local/lib/ $ vi .mc/menu |
Na konec souboru .mc/menu
přidejte text:
| Enqueue mpdplay -a %f \ Play mpdplay %f |
Otevřete .mc/bindings
$ vi .mc/bindings |
Upravte
regex/\.([mM][pP]3)$ View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p' Open=mpdplay %f regex/\.([oO][gG][gG])$ View=%view{ascii} ogginfo %s Open=mpdplay %f |
A je to! Kdykoliv teď chci přehrát soubor, zmáčknu v Midnight Commanderu F2 a \ pro přehrání nebo | pro zařazení do playlistu.
Archives
- March 2024
- October 2023
- May 2020
- December 2018
- October 2018
- July 2017
- April 2017
- March 2017
- November 2016
- April 2016
- March 2016
- November 2014
- September 2014
- May 2014
- March 2014
- February 2014
- August 2013
- June 2013
- April 2012
- August 2011
- May 2011
- October 2010
- September 2010
- August 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- April 2009
- January 2009
- December 2008
- October 2008
- September 2008