 |
hifi.slovanet.sk
|
 |
Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému |
Autor |
Správa |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Št august 10, 2017 09:56:53 Predmet: |
|
|
Finálním výsledkem bude domácí integrované audio řešení - kombinace
* integrovaného zesilovače s přepínatelnými analogovými vstupy
* malé PC desky s CD mechanikou, disky, netem a slušnější zvukovkou
* řídící jednotky (STM32 za stovku) s dotykovým TFT
* DO se stejným TFT/ovládáním
Mezi PC/řídicí jednotkou/DO se komunikuje zprávami. Nenašel jsem žádnou knihovnu, která by řešila zasílání a hlavně routování zpráv po sériovém portu. Vše je buď pro síť (tedy vyžaduje IP konektivitu), nebo pro sdílené sběrnice typu CAN.
Vlastní přehrávání v PC neřeším, komunikuje se s MPV (příp. časem mopidy/MPD). Ale i tak to vyžaduje vrstvu, která API MPV a podklady pro výběr tracku (soubory v adresářích, tracky na audio CDčku, streamy internetových rádií atd.) konvertuje do těch zpráv.
Protože je to dost složité a mikročipy se blbě ladí, musím nejdřív připravit prototyp celého řešení/všech modulů v pythonu na PC. Včetně GUI pro dotykové displeje - k tomu se právě perfektně hodí ta zmiňovaná knihovna pro webové rozhraní remi https://github.com/dddomodossola/remi .
Až to bude kompletní, ověřené, odladěné, přepíšu do céčka ty moduly, které budou pro jednočipy řídící jednotky a DO potřeba.
Výstupem bude několik "produktů":
1) knihovna pro komunikaci zprávami mezi nezávislými moduly přes síť uzlů spojených sériovými porty (Python pro PC + C pro jednočipy). Lze použít i pro úplně jiný projekt, princip je univerzální
2) řídící systém pro integrovaný zesilovač (vstupy, hlasitost + příp. DACy) s dotykovým ovládáním a dálkáčem. To nevyžaduje ani žádné úpravy finální verze - jednoduše když se k řídící jednotce žádné PC nepřipojí, nepřijdou žádné zprávy o dostupnosti modulů běžících na PC (CD přehrávač, internetová rádia, lokální soubory, digitální vstupy přes zvukovku, nahrávací modul) a ty se na displeji nenabídnou.
3) celé integrované řešení zesilovač + PC pro analogové i digitální zdroje hudby.
Zde existuje řada projektů (hlavně pro RPi i pár pro PC), ale vše je to napřímo napojené na zobrazovadlo (Xka či framebuffer - VGA, TFT LVDS) a vzdáleně se ovládá jen po síti (webové rozhraní nebo protokol MPD/squeezebox). Jako DO se používá mobil/tablet.
Malý tablet jako DO k internetovému rádiu s MPD mi visí na zdi na nabíjecích magnetech a nemám s tím moc dobré zkušenosti. Občas mu po zapnutí displeje nenajede včas wifina, těm levným po dvou letech odejde interní fleška, občas se android hryzne a musí se restartovat. Proto zde chci jednoúčelové DO se stejným ovládáním, jako přímo na zařízení. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Pi september 29, 2017 11:01:07 Predmet: |
|
|
Konečně funguje základní sada zdrojů prototypu https://github.com/pavhofman/aio :
Analogové vstupy - dle potřeby.
Soubory - průchod stromem adresářů, přehrávání adresářů/jednotlivých souborů, zasílání/zobrazování časové délky a aktuálního času souboru
Internetové rádio - definice rádií v XML rozdělené do skupin podle žánru/jazyka atd., načítání URL streamů z běžně se vyskytujících formátů playlistů (m3u, pls, atd.), průchod stromem témat/rádií, spouštění rádií. Asynchronní aktivace/deaktivace zdroje dle aktuální konektivity do internetu
CD audio - načítání názvu média a tracků z online databáze musicbrainz, nabídka a přehrávání celého i jednotlivých tracků. Zasílání/zobrazování časové délky a aktuálního času tracku. Asynchronní aktivace/deaktivace zdroje při vložení/vyjmutí čitelného média do mechaniky.
U všech zdrojů funguje zasílání/zobrazování tagů (např. rádio - ICE tag title, bitrate) a audio formátu přehrávaného tracku.
Teď se pustím do nahrávacího modulu a chci zkusit nějaké vyhledávání ve stromech souborového a rádiového zdroje. Rovněž asi dojde na nějaké bookmarky. Pak ještě zdroj SPDIF vstupů zvukovky.
Zdroj pro nějakou music databázi zatím dělat nebudu, protože žádnou nepoužívám. Knihovny v pythonu pro standardní služby existují, takže by to neměl být později problém, pokud by bylo potřeba. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Št október 05, 2017 10:28:37 Predmet: |
|
|
Zadání:
* Uživatel může pro každý zdroj nadefinovat libovolný počet playlistů
* Výsledky vyhledávání si může uložit jako playlist
* Správa playlistů (přejmenování, mazání, přidávání/odebírání tracků)
* Track může být ve více playlistech
Funkcionalitu lze výhodně využít k přejmenování tracků/jejich skupin - např. si lze pojmenovat CD, které nenajde na musicbrainz, či některé jeho tracky.
Bezpečné ukládání do sqlite/vyhledávání je v pythonu hračka.
Když jsem vymyslel, jak by tohle bylo implementované, řízené zprávami a zobrazované v GUI, vylezla z toho další již existující funkcionalita Mopidy. Nejlepší by bylo využít Mopidy celé včetně MPD API pro nepřeberné množství MPD klientů a spoustu extenzí pro online databáze (např. Spotify, google music). Uvidíme, jestli to bude reálné https://discuss.mopidy.com/t/using-mopidy-for-hardware-all-in-one-device-features-compatibility/1937 |
|
Návrat hore |
|
 |
miero Hifi expert
Založený: 08 september 2010 Príspevky: 7546
|
Zaslal: Št október 05, 2017 10:50:17 Predmet: |
|
|
offtopic vsuvka: na prehravanie youtube z terminalu je pekny program mpsyt, mozno by slo rozsirovat ten (spusta mpv/mplayer na pozadi) _________________ 6036. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Št október 05, 2017 11:23:19 Predmet: |
|
|
Díky za tip, mrknu na něj.
Mě na Mopidy ani tak nalákají ty playlisty, ty mohu celkem snadno naimplementovat sám a určitě s menším úsilím, než to ohýbat pro mopidy. Mě zajímá jejich implementace rozsáhlého MPD API pro mraky MPD klientů (s tím měli spoustu práce, hlavně s fixy pro správnou funkci různých klientů https://github.com/mopidy/mopidy/commits/develop/mopidy/mpd , to vyžaduje široké testování) a již hotové i přibývající backendy pro nejrůznější online databáze.
Mopidy je "jenom" infrastruktura mpd serveru se spoustou implementací jednotlivých modulů napojených přes jejich centrální API (např. přehrávání mají přes gstreamer). Je to prostě dneska celkem standard. Navíc má apache licenci, volnější než GPL. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Ne október 15, 2017 20:46:23 Predmet: |
|
|
Mopidy je tak pěkně udělané, že jsem těch dosavadních 80 souborů s nechutí downgradoval na zastaralý python 2.7 a teď si s mopidy hraju a řeším varianty integrace. Možnost plně ovládat AIO včetně ovládání hardwaru (přepínání analogových i digitálních vstupů, hw hlasitost) z libovolného MPD klienta a hotové pluginy pro Spotify, Google Music, ITunes, Youtube, SoundCloud, Tidal atd. je prostě obrovský plus. |
|
Návrat hore |
|
 |
gnat Hifista - pokročilec
Založený: 06 jún 2012 Príspevky: 294
|
Zaslal: Po október 16, 2017 11:38:57 Predmet: |
|
|
Zkoušel jsi to Mopidy otevřít to v Python3 přes knihovnu past ? |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Po október 16, 2017 11:53:39 Predmet: |
|
|
Zajímavé, to jsem nezkoušel, v pythonu se teprve rok učím. Díky moc za tip!
Budu ze svého kódu dělat nové extensions do mopidy a rozšiřovat stávající (např. syrový ale fungující https://github.com/forscher21/mopidy-cd ), tak ty stejně budu muset psát ve starém pythonu, aby to běželo ostatním i na standardním mopidy.
Jenom škoda, že jejich fórum není moc aktivní, z jiných projektů jsem zvyklý na trochu rychlejší reakci. Ale co nadělám, zadarmo...  |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Ne október 29, 2017 15:03:38 Predmet: |
|
|
Po několika týdnech hrabání se ve zdrojácích mopidy, úpravách pokus/omyl a nikam nevedoucích diskusí s autory se vracím ke svému původnímu kódu. Zkoušel jsem pár rozšíření mopidy a aby fungovaly pořádně a spolehlivě, musel bych stejně mopidy forknout a dělat do něj úpravy, které upstream odmítá (např. https://discourse.mopidy.com/t/hook-before-audio-playback-change/1973/9 ). Třeba takovou základní věc, jako snížení rychlosti otáček CD mechaniky na 1x. Nebo jednoduché přehrání celého adresáře najednou (mopidy nepracuje se stromovými strukturami). Se změnou dostupnosti backendu (vložení/vyjmutí média) se ve stávajícím návrhu mopidy vůbec nepočítá a byly by to ošklivé hacky.
Navíc úpravy kódu ve starém python 2.7 bez uvedených vstupní i výstupních datových typů (type hintů), bez přímé podpory unicode (vývoj stylem pokus omyl), to mě ani trochu nebaví a koníček má člověka bavit.
Raději méně funkcí, ale dodělané v reálném čase. Tak snad se to zase teď trochu pohne. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Št november 16, 2017 23:42:53 Predmet: |
|
|
Návrat k původnímu kódu to zase trochu nakopl. Hotovo:
Dynamická aktivace zdrojů ze souborů při detekci removable zařízení (typicky USB fleška/disk)
Po startu se nabízí jen zdroj pro přehrávání lokálních adresářů/souborů na disku (a/nebo staticky namontovaných přes síť). Po zasunutí flešky se automaticky namontuje pro čtení a na displeji se nabídne přehrání jejích souborů/adresářů. Flešek lze současně zasunout více, s každou další se aktivuje další zdroj. Po vytažení flešky odpovídající zdroj z nabídky zmizí.
Stejně se chová CD v mechanice. Teoreticky lze úplně stejně přidávat více CD mechanik (interní SATA, další přes USB), ale to je asi zbytečné. Asi to nebude používat DJ na párty.
Nahrávání
Vše aktuálně přehrávané zvukovkou se klonuje přes modul alsa-loop na vstup virtuální zvukovky, ze které lze nahrávat. Stejně tak lze nahrávat ze vstupu reálné zvukovky analogový vstup i SPDIF. Nahrávání na tlačítko zapnout/vypnout, ukládá se do flacu v samplerate aktuálně přehrávaného materiálu, 16 či 24 bit. Flacy jsou pojmenované dle názvu tracku + datum do adresáře odpovídajícího zdroji.
Automaticky se ořezává úvodní ticho ( stačilo jen přidat efekt silence nahrávacímu SoXu - https://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/ , funguje pěkně)
Zpětné nahrávání
Často se stává, že člověk třeba poslouchá např. rádio (Vltavu, Beat), něco se mu zalíbí a chce si to nahrát. Jenže kus skladby mu už utekl. Proto má nahrávání streamů, u kterých to nelze jednoduše pustit znovu (rádio, analog, spdif), na vstupu implementovanou frontu, která pořád udržuje několik minut vzorků. Tato fronta je aktivní pořád, i když zrovna nahrávání neběží. Případné nahrávání pak čte vzorky z této fronty (tj. po spuštění ji rychle vyprázdní a pak už jede s minimálním zpožděním). Opět se ořezává ticho na začátku. Takže si třeba pustím SPDIF stream z DVD přehrávače či televize a když kdykoliv během např. 2 minut od začátku stisknu nahrávání, vždy dostanu flac s půl sekundou ticha před začátkem skladby. Konec odpovídá okamžiku ukončení nahrávání.
Nafukovací frontu se zahazováním vzorků jsem musel napsat v pythonu, bohužel jsem nenašel žádné takové řešení už hotové, sox to také neumí.
Teď se pustím do ripování CD do souborů s názvy z CDDB/Musicbrainz, což je také díky knihovně http://audiotools.sourceforge.net/ celkem jednoduché. |
|
Návrat hore |
|
 |
kazzatel Hifi expert
Založený: 19 január 2007 Príspevky: 6821
|
Zaslal: Pi november 17, 2017 00:50:40 Predmet: |
|
|
Když se tak dívám, co všechno jde naprogramovat, tak mě napadá, jestli máš taky takhle naprogramovaný i šukání...troufnul bych si tipnout, že těžko.... |
|
Návrat hore |
|
 |
miero Hifi expert
Založený: 08 september 2010 Príspevky: 7546
|
Zaslal: Pi november 17, 2017 11:59:00 Predmet: |
|
|
Programovanim sa da stravit tak neskutocne mnozstvo casu... tolko nepresuka ani plemenny byk... _________________ 6036. |
|
Návrat hore |
|
 |
dustin Hifi expert
Založený: 06 október 2006 Príspevky: 3344 Bydlisko: Plzeň
|
Zaslal: Pi november 17, 2017 12:01:03 Predmet: |
|
|
Jo, věci holt trvají, to už tak je. |
|
Návrat hore |
|
 |
|
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre. Nemôžete pripojiť súbory do tohto fóra. Nemôžete sťahovať súbory z tohto fóra.
|
|