Obsah fóra hifi.slovanet.sk hifi.slovanet.sk


 
 FAQFAQ   HľadaťHľadať   Zoznam užívateľovZoznam užívateľov   Užívateľské skupinyUžívateľské skupiny   RegistráciaRegistrácia 
 NastaveniaNastavenia   Súkromné správySúkromné správy   PrihláseniePrihlásenie 
http://www.tnt-audio.com/gif/smallstereo_white.gif

DIY all-in-one pro neskalního hifistu bastlíře
Choď na stránku Predchádzajúca  1, 2, 3
 
Pridať novú tému   Zaslať odpoveď    Obsah fóra hifi.slovanet.sk -> Zosilňovače
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: 3137
Bydlisko: Plzeň

PríspevokZaslal: Št august 10, 2017 09:56:53    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Pi september 29, 2017 11:01:07    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Št október 05, 2017 10:28:37    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi expert


Založený: 08 september 2010
Príspevky: 7090

PríspevokZaslal: Št október 05, 2017 10:50:17    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Št október 05, 2017 11:23:19    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Ne október 08, 2017 09:18:50    Predmet: Odpovedať s citátom

Tak už vypadalo nadějně, že by se dalo mopidy zaintegrovat https://discuss.mopidy.com/t/how-to-communicate-availability-of-uri-class-to-mpd-clients/1938/4 , jenže stále běží jen na pythonu 2 a to je pro mě show stopper. Třeba bude někdy příležitost je zaintegrovat, teď ale pojedu dál bez něj.
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Ne október 15, 2017 20:46:23    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
gnat
Hifista - pokročilec


Založený: 06 jún 2012
Príspevky: 268

PríspevokZaslal: Po október 16, 2017 11:38:57    Predmet: Odpovedať s citátom

Zkoušel jsi to Mopidy otevřít to v Python3 přes knihovnu past ?
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Po október 16, 2017 11:53:39    Predmet: Odpovedať s citátom

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... Smile
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Ne október 29, 2017 15:03:38    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Št november 16, 2017 23:42:53    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
kazzatel
Hifi expert


Založený: 19 január 2007
Príspevky: 6725

PríspevokZaslal: Pi november 17, 2017 00:50:40    Predmet: Odpovedať s citátom

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
Zobrazit informácie o autorovi Odoslať súkromnú správu
miero
Hifi expert


Založený: 08 september 2010
Príspevky: 7090

PríspevokZaslal: Pi november 17, 2017 11:59:00    Predmet: Odpovedať s citátom

Programovanim sa da stravit tak neskutocne mnozstvo casu... tolko nepresuka ani plemenny byk...
_________________
6036.
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
dustin
Hifi expert


Založený: 06 október 2006
Príspevky: 3137
Bydlisko: Plzeň

PríspevokZaslal: Pi november 17, 2017 12:01:03    Predmet: Odpovedať s citátom

Jo, věci holt trvají, to už tak je.
Návrat hore
Zobrazit informácie o autorovi Odoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:   
Pridať novú tému   Zaslať odpoveď    Obsah fóra hifi.slovanet.sk -> Zosilňovače Časy uvádzané v GMT + 1 hodina
Choď na stránku Predchádzajúca  1, 2, 3
Strana 3 z 3

 
Prejdi na:  
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.


Powered by phpBB © 2001, 2005 phpBB Group
Slovenský preklad phpBB Slovak - www.pcforum.sk
TOPlist