Implementácia slobodného hudobného podmazu v komerčnej predajni

30.03.2015 | 23:01 | originalnynazovblogu | LUcoRP

V prípade, že ste niekedy robili vo firme zaoberajúcej sa maloobchodným predajom a táto firma časom začala rásť a otvárať nové prevádzky, tak ste určite narazili na problematiku hudobného podmazu na predajniach. Takéto zadanie som začal prednedávnom riešiť aj ja...

V prípade, že ste niekedy robili vo firme zaoberajúcej sa maloobchodným predajom a táto firma časom začala rásť a otvárať nové prevádzky, tak ste určite narazili na problematiku hudobného podmazu na predajniach. Iste, podmaz by sa dal jednoducho spustiť z rádia a tváriť sa že je všetko v poriadku, veď to týmto štýlom má implementovaných 99% všetkých drobných predajní. Ale ako si vytvárate značku, tak aj nároky na prezentáciu firmy rastú a spoločne s nimi rastú aj požiadavky na kvalitu a výber hudby. A keďže komerčné rádiá príliš často prerušujú reklamu hudbou, ktorá navyše väčšinou nestojí za nič, ste nútení spraviť vlastnú implementáciu, alebo si kúpiť hotové riešenie. Takéto zadanie som začal prednedávnom riešiť aj ja.

Samozrejme, celá zložitá inštalácia sa dá "obísť" jednoduchým hudobným streamom zo serveru pre všetky predajne. V mojom prípade som však kvôli striktným požiadavkám zvolil necentralizované riešenie. Požiadavky na systém boli:

  • kvôli nespoľahlivému pripojeniu, čím menšia náročnosť na prenos dát cez internet
  • možnosť vzdialeného ovládania
  • možnosť vzdialeného nahratia/vymazania hudobných súborov
  • automatizácia zapnutia/vypnutia zvukového signálu a prepínania medzi hudobnými žánrami podľa času
  • cena a spoľahlivosť

Výber silovej časti

Silová časť je v tomto prípade chápaná ako sústava zosilňovača a reproduktorov. Ako som postupoval? V prvom rade, keďže predajní na ktoré som riešenie implementoval bolo viac, som vyzistil akú majú momentálne zvukovú aparatúru (tu sa dajú ušetriť celkom pekné peniaze, takže odporúčam tento krok neobskočiť). Väčšina z nich bola novootvorených, takže aparát nebol žiadny (reálne bola iba  na jednej predajni staručká Sony veža, ktorá ale na tento účel poslúžila dobre). Nasledovalo dimenzovanie výkonu aparátu. Pri návrhu treba myslieť na to, že je predajňa zväčša väčší priestor v ktorom sa nachádza viac ľudí a vzruchov, než bežná obytná miestnosť a tomu svoj návrh prispôsobiť. Takisto je finančne menej náročné kúpiť drahší aparát a tým pádom ho na rozdiel od slabšieho aparátu nezaťažovať na plno. Ja som zvolil na predajniach s podlahovou plochou cca 40m2 štyri širokopásmové reproduktory JBL Control 1 Pro zapojené ako 2+2 do série na každý kanál zosilňovača Behringer iNuke NU1000 (síce nekvalitná značka - kto pozná, vie o čom rozprávam, ale svoje si splní, a hlavne je lacný). V reále, je z mojich skúseností, na požadovanú plochu a zamýšľané použitie výkon aparátu úplne postačujúci.

Výber hudobnej služby

Ako som písal vyššie, rádiá sú pre nasadenie v predajni, kde sa to myslí s predajom vážne, úplný nezmysel. Je samozrejme možné kúpiť jedno CD a to pustiť do slučky, máloktorý zákazník sa totižto v predajni zdrží dlhšie ako je priemerná dĺžka hrania CD, takže to zdanlivo vadiť nemusí. Treba však rátať s tým, že skôr či neskôr by sa mohli vyskytnúť náhodné fyzické napadnutia členov IT zodpovedných za implementáciu hudby od zamestnancov vystavených takýmto pokusom.

Rozhodnutie preto padlo na alternatívnu hudobnú službu združujúcu umelcov, ktorí nechcú byť zastupovaní autorskými zväzmi, Jammendo, kde za pomerne smiešny ročný poplatok na predajňu dostanete profesionálny in-store program s množstvom (ale naozaj veľkým množstvom >10GB) skladieb v mp3 formáte s bitovým tokom 320kbps a veľkým prierezom tématiky, od klasickej hudby, cez ambient a longue až po metal. Pokiaľ sa na to cítite, tak nemusíte vďaka licencii s Jammendom platiť ani výpalníkom zo sozy, slovgramu, atd., musíte ho však priznať v daňovom priznaní (poplatok cca 2€ na licenciu). Ak máte k tomu bližšie info, tak si ho rád prečítam v komentoch, my sme zvolili cestu že platíme aj výpalníckym zväzom, čo je zatiaľ pre firmu lacnejšie než prípadný súd.

Tu chcem ešte podotkúť, že používať daný playlist, ktorý sťahujete zo služby, máte právo jeden rok, potom sa odporúča doterajšie mp3 odstrániť a nahrať nové, kvôli obnove zastupovania autorov Jammendom, ale aj kvôli obnovovaniu playlistov, ktoré sa deje približne raz za kvartál, čo som doteraz odsledoval.

Výber riešenia prehrávania

Ako zdroj signálu je možné využiť akýkoľvek zdroj, z ktorého výstupný signál je na linkovej úrovni. Pokiaľ si nestiahnete iba jednu hudobnú tému, kedy by úplne postačoval iba mp3 prehrávač pripojený k zosilňovaču a prepnutý na náhodné poradie, prípadne pokiaľ vám nie je jedno v akom poradí sa jednotlivé žánre prehrávajú, je potrebné si nakonfigurovať prehrávacie zariadenie.

Pretože je v mojom prípade na každej predajni umiestnený jeden microPC slúžiaci ako tenký server na inú aplikáciu a zostalo mu dostatok výkonu aj aby slúžil ako prehrávacie zariadenie. Teoreticky by sa malo dať vyžiť akékoľvek lacné počítadlo s fungujúcim zvukovým výstupom, dostatkom úložného priestoru a dostatočným výkonom na prehrávanie mp3 (alebo ogg po konverzii ;) Pri nasadení raspberry pi prvej generácie sa dá vôjsť v nákladoch do 50€, čo je už myslím veľmi zaujímavé. Na prehrávacích zariadeniach beží v mojej implementácii Debian, preto bude aj následovný odstavec o konfigurácii prehrávača pod Debianom – príkazy si prosím upravte podľa svojho distra.

Konfigurácia prehrávača

Po inštalácii operačného systému a jeho prvotnej konfigurácii a zabezpečení, môžeme pristúpiť ku inštalácii a nastavení samotného prehrávača. Na prehrávač si nahráme/stiahneme hudobné súbory, ja som zvoli formát mp3. Nahrávam ich do cesty ~/music/

Ako hudobný prehrávač som použil kvôli možnosti ovládania a spúšťania cez terminál a nenáročného ovládania, starý ale dobrý xmms2. Na správu úrovní zvuku a ako zvukového démona požívam alsu. Pre inštaláciu zadáme ako root do konzoly:

apt-get install xmms2 alsa-base alsa-utils alsa-oss

Funkčnosť prehrávača overíme ako bežný užívateľ (nie root!) zadaním príkazu do kozoly xmms2. Následovne je potrebné sprevádzkovať alsu, pretože inak nebude fungovať zvuk z terminálu. V prvom rade je potrebné nastaviť hlasitosť zvuku približne na 3/4 úroveň kvôli zabráneniu skreslenia výstupného signálu aj pri vysokých špičkách vo zvukovom súbore. Toto nastavíme v alsamixeri, zadaním alsamixer do terminálu. Vybehne nám grafické ovládanie jednotlivých hlasitostí alsa serveru, kde si zvolíme nastavenie pre konkrétny výstupný port.

Nasledovne je potrebné vytvoriť skripty, ktoré sa budú pomocou cron-u spúšťať v stanovených časoch a skripty, ktoré hodia v stanovený čas mute a unmute na hlavnú hlasitosť.

Skript na zmenu hudobného štýlu

Každý z jednotlivých hudobných štýlov je reprezentovaný jedným priečinkom nachádzajúcim sa v ceste ~/music/ a každý z týchto hudobných štýlov by mal mať priradený jeden skript s názvom v tvare [názov_priečinku].sh. Tieto skripty sú potom volané z cron-u v stanovený čas. Po zavolaní skriptu dôjde k vymazaniu aktuálneho playlistu z xmms2 a pridanie nového playlistu obsahujúceho všetky súbory nachádzajúce sa vo zvolenom priečinku. Xmms2 po dohraní aktuálne prehrávaného súboru začne prehrávať súbor už z nového playlistu. Skript na zmenu hudobného štýlu je nasledovný:

#!/bin/bash
# prehram zadany priecinok v xmms2

xmms2 playlist clear
xmms2 add ~/music/[názov_priečinku]/
xmms2 playlist shuffle
xmms2 play

V skripte treba iba nahradiť [názov_priečinku] za reálny priečinok v ktorom sa nachádzajú hudobné súbory. Nasledovne potrebujeme ešte nastaviť skriptu spustiteľný príznak.

chmod +x ~/music/[názov_súboru].sh

Skript je teraz pripravený na spustenie. Môžeme ho otestovať spustením pomocou ./[názov_priečinku].sh. Po spustení skriptu by mala byť na hlavnom výstupe prehrávaná hudba zo zvoleného priečinku.

Pridanie skriptu do cronu

Skript do cronu pridáme editovaním s právami roota súboru /etc/crontab. Na koniec súboru pridáme riadok s upravením času podľa požiadaviek. V tomto prípade bude skript spustený o 9:30 každý deň. Nezabudnime, že v Debiane sa cron musí končiť prázdnym riadkom, inak nebude spustený.

30 9 * * * [meno_užívateľa] [plná_cesta_do_home_užívateľa]/music/[názov_súboru].sh

Skript na vypnutie/zapnutie zvuku

Je nezmysel, aby hudba bežala 24/7. Keďže výkonovú časť nejde softvérovo zapnúť a vypnúť a zásuvka s časovačom by kvôli vlastnostiam zvukových aparatúr znamenala to, že sa časom buď aparát, alebo reproduktory pri vypínaní a zapínaní bez stíšenia zosilňovača na minimum, odpália. Je tento problém riešený úplným vypnutím master hlasitosti na výstupnom zariadení (MicroPC), čo by malo teoreticky viesť k minimalizovaniu spotreby danej zostavy, pretože zosilňovač neodosiela na reproduktory takmer žiadny signál (ruchy vzniknuté v kábloch a pod. zanedbávam) a tým pádom by mal mať minimálny príkon. Preto treba vytvoriť skript, ktorý bude spúšťaný raz za X minút a bude si kontrolovať aký je systémový čas a podľa toho sa zamutuje/odmutuje Master kanál hlasitosti. Obsah skriptu je:

#!/bin/bash

DAT=$(date +'%k')

if [ $DAT -gt 8 ]; then
	
	if [ $DAT -lt 21 ]; then
		amixer set Master unmute
		#da sa pouzit aj amixer set Master 100%
		xmms2 play
	else
		amixer set Master mute
		#da sa pouzit aj amixer set Master 0%
	fi
	
else

	amixer set Master mute
	#da sa pouzit aj amixer set Master 0%
	
fi

Následne pridáme do cron-u riadok

* * * * * [užívateľ] [cesta_do_home_užívateľa]/music/[názov_scriptu].sh

V tejto implementácii mi zostáva doriešiť ešte zopár drobností a kontrolných mechanizmov. Ako napríklad kontrola prehrávania hudby v reálnom priestore cez externý mikrofón, kontrola spustenia micro PC cez heartbeat, automatizáciu kompletného vypnutia zosilňovača, ktorý sa nemôže vypnúť bez predchádzajúceho stíšenia obidvoch kanálov, kvôli nebezpečiu zničenia cievok na reproduktoroch (nemáte niekto nápad ako na to?), ako aj automatické zapnutie a "zhlasnenie" zosilňovača. Aj napriek tomu si myslím že je toto riešenie na relatívne vysokej úrovni aj v porovnaní s platenou konkurenciou.

Prajem vám príjemné používanie a veľa ušetreného času pomocou môjho riešenia :)

    • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 12:01
      Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

      Keď to budeš mať hotové, tak by to bolo na článok aj s fotkami.

      Jamendo beriem ako dobrú voľbu, tiež si občas púšťam free muziku. Výpalníkom asi treba platiť, pretože ide o verejnú produkciu.

      Neviem či si tú elektroniku už kúpil, pokiaľ nie, hľadaj zosilňovač s externým standby a nemáš problém to vyviesť z portu. Ten výkon je zbytočne prehnaný ja mám doma 2x30W na 20m2 a keď tomu uvalím tak tam nevydržíš. Keď náhodou niekto pridá na tom zosilňovači na plné pecky, tak tie repráky odpáli, sú poddimenzované.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 13:29
        Avatar LUcoRP Debian, *buntu, Android  Používateľ

        Uz to mam nasadene, najdlhsie to ide na jednej predajni cca pol roka, od posledneho nasadenia je to vsak doba v tyzdnoch - skusim porobit foto, ked budem mat cestu okolo nejakej z nich. Je pravda, ze je zosilnovac predimenzovany, ale pri objednavani som netusil ci budu 2x2 repraky stacit a ci nebudem musiet nasadit 3x2, ci dokonca 4x2. Casom to bude cele zamknutne aj s ostatnym vybavenim predajne v malej rackovej skrinke, tak sa k tomu hadam nikto nepovolany nedostane, navyse neocakavam, ze by tento zosilovac vydrzal dlhsie nez je jeho zaruka. Pri vykone musim uvazovat aj s tym, ze predajna ma vysku viac nez 5m a dost sa potom v tom priestore vykon straca, navyse je pohlcovany zariadenim a objektami v priestore a ludmi, teraz mam zosilovac nastaveny na cca 1/3 - 1/2 svojho vykonu, co je pri jeho 24h prevadzke podla mna lepsie, nez by mal ist na full - ale toto je iba moj osobny, nicim nepodlozeny pocit. Dik za odporucanie na externy standby - s takymito zariadeniami velmi vela skusenosti nemam - doteraz som riesil iba nazvucovanie akcii/koncertov kde nemusel aparat bezat nonstop - clovek sa uci cely zivot :)

        • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 13:36
          Avatar LUcoRP Debian, *buntu, Android  Používateľ

          Teraz ma napadlo, ze myslis hotove aj s tymi dorabkami. Ked to bude tak spravim aktualizovany zapisok aj s fotografiami.

          • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 14:17
            Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

            Jj tak som myslel.

            Inak išlo by to asi vypínať aj externým napájaním ale bolo by dobré najprv odpojiť repráky a spoždene zosík. Nemám toto ovorené, je to trieda D a neviem čo spravia koncáky pri prúdovom náraze bez záťaže, ale skúsim si to zajtra v práci u elektrikášov overiť.

            Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
            • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 14:26
              Avatar LUcoRP Debian, *buntu, Android  Používateľ

              Dost by si mi tym pomohol.

    • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 14:33
      Avatar vxmery Mint 17.3  Používateľ

      Pekný článok. Tie fotky by to pekne oživili.

      Keď podpíšeš s Jamendom, tak máš od všetkých mafií pokoj a je to košér? Vôbec som netušil o takej možnosti.

      • RE: Implementácia slobodného hudobného podmazu v komerčnej predajni 31.03.2015 | 15:09
        Avatar LUcoRP Debian, *buntu, Android  Používateľ

        Jammendo je prave alternativa pre umelcov ku vsetkym tymto autorskym zvazom, podla vyjadreni na webe 1, 2, ... to vraj aj na nase zvazy funguje, ale skusat sa to oplati asi az vacsej firme, ktora ma za sebou dobrych pravnikov. Malym firmam asi vyjde lacnejsie zaplatit to vsimne co pozaduju a nie je az take hrozne v porovnani so sudnym procesom, teda pokial sa nepodari vyslapat niekomu overena cesticka.