Mac workflow: hátha SONOSt hoz a Jézuska

Régóta szerettem volna rendes multiroom audio rendszert, valami olyat, amit én is könnyen bővítgetek és persze ami nem zárt, hanem beszélgethetek vele elektromosan. Long story short: az eddig használt Apple AirPlay nem ilyen, sőt, több sebből vérzik:

  • Apple === zártság, ezt tudtuk eddig is. Persze AirPlay servert azért csinálhatunk egy Raspberry Pi-ből, használhatunk hozzá egy kis Airport Expresst vagy egy Apple TV-t ha elég annak az egy darab digitális audiokimenete, de ezekhez még mind speakert kell illesztenünk ugye.
  • Az AirPlay lagos. Isten látja lelkemet, amióta az AirPlay megjelent, azóta várom, hogy majd a szuper mérnökök megoldják azt, hogy az egymástól 10 méterre levő két hangszóróból egyszerre szóló zene ne legyen a késés miatt visszhangos, de a 2010 szeptembere óta létező AirPlay a mai napig késik, úgyhogy épp 6. éve már, hogy képtelenek orvosolni a bosszantó problémát.
  • Ahhoz, hogy AirPlayen játszak le, a mai napig futnia kell egy AirPlay targetre zenét küldő szoftvernek valami dedikált frontend vason.

Sokat olvastam már a SONOS-ról, csábított is, de az Apple Music támogatás hiánya mindig vissza tartott. Pár hónapja azonban megjött a SONOSokba ez is, úgyhogy az idei karácsonyi hajrában bevásároltunk egy kazal speakert.

A SONOS speakerek saját maguk cibálják el a zenét a forrásból, a controller szoftvernek csak addig kell futnia, amíg te kiválasztod, hogy mit akarsz hallgatni, melyik hangszórókon és milyen hangerőn. Hab a tortán, hogy brit szoftveresek rég meg tudták oldani a lag problémát: az összes hangszóró teljes szinkronban tolja ugyanazt a kontentot.

Ez így közel tökéletes lenne, ám nekem sokszor jött elő munka közben, hogy egy playlistben olyan track került sorra, ami zavart. Ilyenkor taskot kell váltani meg egerezni ahelyett, hogy a billentyűzet elengedése nélkül foshatnám a kódot. Na ezért született a SONOS Controller workflow.

A SONOS Controller egy Alfred 3-ba begyógyítható workflow. Az agyát nem én írtam, hanem 2012-ben itt Sydneyben a Music Hack Day nevű eseményen kezdte Rahim Sonawalla, majd egy csodálatos Python fejlesztői közösség gyűlt köré és tartja karban a projektet a mai napig.
Ahhoz, hogy az általam hackolt Alfred workflow bármit is csináljon a SONOS speakereiddel, előbb a SoCo python classt kell installálnod mondjuk a Python csomagkezelőjével:

pip install soco

Eszembe nem jutott zeneválasztó funkcionalitást gyártani, hiszen egyfelől a SONOS kismillió adatforrásból képes audiot lejátszani, másfelől erre tökéletesek a desktop és mobil appok, amiket a gyártó ingyen kínál, végül pedig nem ez volt a cél, hanem csak annyi, hogy meló közben gyorsan tracket léptessek, halkítsam/hangosítsam a cuccot, vagy megállítsam a streamet, mindezt úgy, hogy a kezemnek ne kelljen elhagynia a billentyűzetet.

A workflow két keywordöt ismer:

  • sc – ha ezzel a kulcsszóval indítasz, akkor az összes zónát vezérled egyszerre:
    soco_alfred-commands_on_selected_zone
  • scs – ez a kulcsszó pedig előbb összeszedi a LAN-odon látható SONOS speakereket, amikből választasz egyet, majd ezután kapod a parancsmenüt, ami így értelemszerűen a már az előbb kiválasztott speakerre fog vonatkozni:
    soco_alfred-zone_selector

A parancslista sincsen széjjel bonyolítva:

  • play – elindítja a lejátszást
  • pause – megállítja a lejátszást
  • next – a következő trackre ugrik
  • inc – emel a hangerőn 5%-ot
  • dec – csökkent a hangerőn 5%-ot
  • vol XX – beállítja a hangerőt XX% értékre, ha XX-nek 0-100 közötti egész számot definiáltál:
    soco_alfred-set_volume

Az ikonokon nem megbotránkozni, én Mórickáztam össze őket éjjel amíg ti alukáltatok (a 10 óra timezone offset legrosszabb tulajdonsága, hogy az azonnali agymenéses petprojecthez nem tudok leakasztani egy ingyendesignert :))

A workflowt szokás szerint szedheted a packal.org-ról vagy tőlem. Boldog Karácsonyt!

5 thoughts on “Mac workflow: hátha SONOSt hoz a Jézuska

  1. AiRLAC

    Nekem 4 darab Chromecast audio van elszórva a lakásban, tökéletes szinkronban szól rajtuk a rádió most is :) Imádom, mondjuk az általad igényelt homeautomation nem próbáltam, de van API rá:

    “The Google Cast SDK lets you extend your Android, Chrome or iOS app to control a TV or sound system. It supports many media formats, protocols and codecs to ease integration. Continuous playback is enabled by autoplay and queuing APIs and Game Manager APIs make Cast enabled gaming a breeze.”
    https://developers.google.com/cast/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.