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

  • 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/

      Reply

    Leave a Reply

    Your email address will not be published.