Categorie
computer musica

PlaySound (“Rumorificio”)

Genesi

Qualche anno fa, ad uno spettacolo, oltre alla gestione di basi durante l’esibizione di cantanti mi sono dovuto anche occupare dell’avvio di stacchetti (all’ingresso di presentatori e protagonisti vari), ma dover far tutto sul pc con vari click del mouse, considerando anche la complessità dello spettacolo non è stato per niente agevole, ed allora ho pensato che una pulsantiera midi, a cui potesse essere abbinato un pezzo musicale ad ogni tasto, sarebbe stata più efficace, ed è quindi nata l’idea di scrivere un apposito programma.

Avevo poi anche pensato che un programma nato per la mia esigenza sarebbe stato utile anche in teatro, dove può essere necessario riprodurre suoni di vario genere: sottofondi musicali ma anche rumori ambientali di telefoni ed elettrodomestici, porte, cigolii, animali, folla, eventi atmosferici come vento, pioggia, ecc., e tanti altri.

Per tali ragioni il programma per avviare i suoni l’ho chiamato da subito Rumorificio ma perché avesse anche un nome più decente l’ho chiamato anche PlaySound, e rapidamente è giunto alla quarta versione.

Prima di iniziare a scrivere il programma ero già in possesso di un controller midi Akai APC mini, che avevo già utilizzato in un altro progetto, per cui dovevo solo mettermi a scrivere il codice che facesse ciò che avevo in mente.

Programma

Il programma PlaySound consiste in uno script php che viene avviato da linea di comando (libreria php-cli) ed utilizza l’estensione sockets (libreria php-sockets). Si appoggia a programmi esterni per il controllo dei processi (nohup, ps, kill), per l’identificazione del controller midi (grep), per il controllo del volume (amixer) e per l’apertura dei files (mplayer), pertanto perché funzioni il programma tutto ciò dovrà già essere presente sul computer.

Il programma è stato sviluppato e testato su distribuzioni Linux Mageia e non ne ho idea se funzioni su altre distribuzioni Linux, poiché la gestione dei dispositivi midi potrebbe essere diversa; in tal caso il programma dovrà essere opportunamente adattato per la propra distribuzione Linux.

Del controller midi Akai APC mini vengono utilizzati i 64 pulsanti rettangolari in combinazione con gli 8 pulsanti tondi sottostanti per avviare sino a 64 files ognuna, sino a complessivi 512 (64×8) files.

In un file di configurazione viene indicato il file da aprire; di default è “PlaySound4.txt” ma da linea di comando è possibile specificarne un altro con l’opzione “-c” seguita (senza spazi di seguito) dal nome del file, ad esempio:

PlaySound4.php -c/home/user/SuoniMusicalOttobre2018.txt

I 512 files possono essere avviati o interrotti in modo indipendente tra loro; è quindi possibile avere 512 programmi in esecuzione contemporaneamente.

Il programma utilizzato per l’apertura dei files è di default “mplayer” ma da linea di comando è possibile specificarne un altro con l’opzione -p seguita (senza spazi di seguito) dal nome del programma, ad esempio:

PlaySound4.php -p/bin/play

Altre periferiche midi collegate contemporaneamente non interferiscono con il programma, poiché il programma va a cercare solo quella con identificativo USB “09E0:0028”, relativo all’Akai APC mini (verificabile con il comando lsusb).

File di configurazione

Il file di configurazione è un file di testo “txt”, in cui sono elencati i 64×8=512 files musicali che si vogliono gestire.

Ogni tasto viene descritto in una riga, in cui tre parametri, separati dalla virgola, descrivono schermata (1..8), tasto (1..64) e file (nome del file):

Vengono ignorati eventuali spazi precedenti e successivi; il nome del file può essere espresso sia in forma estesa con tutto il path che in forma semplificata, purché il percorso sia relativo alla directory da cui viene avviato il programma. Per ovvie ragioni il nome del file non può contenere il carattere virgola che è usato come separatore, né lo spazio come primo o ultimo carattere del file in quanto gli spazi prima e dopo vengono rimossi; gli spazi sono comunque accettati all’interno dei nomi dei files. Dopo il terzo parametro e dopo una virgola di separazione è possibile aggiungere eventuali commenti che vengono ignorati dal programma.

Qualora non si fosse pratici di Linux, tenere presente che sulle partizioni linux vengono differenziate maiuscole e minuscole: nella stessa directory possono contemporaneamente esserci files diversi tra loro denominati 5.mp3, 5.MP3, 5.Mp3 e 5.mP3, per cui prestare attenzione durante la scrittura del file di configurazione.

Esempio semplificato di configurazione:

1, 57, /home/utente/Musica/AlbumA/01. Titolo 1.mp3
1, 58, /home/utente/Musica/AlbumA/02. Titolo 2.mp3
1, 59, /home/utente/Musica/AlbumA/03. Titolo 3.mp3
1, 49, /home/utente/Musica/AlbumB/01. Titolo 1.mp3
1, 50, /home/utente/Musica/AlbumB/02. Titolo 2.mp3
1, 51, /home/utente/Musica/AlbumB/03. Titolo 3.mp3
2, 49, effetti/telefono.mp3 , dieci squilli
2, 50, effetti/porta che sbatte.mp3
2, 51, effetti/porta che cigola.mp3
2, 52, effetti/pioggia.mp3 , avviarla in modalità LOOP
2, 53, effetti/tuono.mp3
2, 57, suoni/applausi.mp3
2, 58, suoni/applausi.mp3
2, 59, suoni/applausi.mp3
2, 60, suoni/applausi.mp3
2, 62, suoni/rumore marrone.ogg
2, 63, suoni/rumore rosa.ogg
2, 64, suoni/rumore bianco.ogg

Utilizzo

Una volta avviato il programma i pulsanti rettangolari del controller midi si accendono in un disegno multicolore, indice di corretta comunicazione con il computer.

Dato che il programma, all’avvio, non conosce la posizione del cursore del volume (lo slider in basso a destra, sotto il tasto shift), è opportuno che subito dopo l’avvio venga mosso il cursore: in tal modo si comunicherà la posizione del cursore al programma il quale regolerà subito il volume, evitando imprevisti sbalzi durante l’esecuzione dei pezzi musicali, non certo piacevoli in performance live.

Subito dopo occorrerà selezionare la schermata su cui operare premendo uno degli 8 pulsanti tondi sotto quelli rettangolari (che si accenderà); i pulsanti rettangolari sovrastanti si coloreranno a seconda dei suoni programmati e disponibili:
– pulsante spento: non programmato o file non accessibile;
– pulsante verde: file disponibile, attualmente non in esecuzione;
– pulsante rosso: file in esecuzione in modalità singola;
– pulsante giallo: file in esecuzione in modalità loop.

Quando si premono i pulsanti di selezione schermata verranno inoltre elencati sul display tutti i suoni disponibili in tale schermata.

Cliccando su un pulsante rettangolare verde verrà avviata l’esecuzione del relativo clip sonoro in modalità singola ed il pulsante diventa rosso, tornando verde al termine dell’esecuzione; premendo invece shift+pulsante l’esecuzione verrà avviata in modalità ciclica (loop) ed il pulsante diventa giallo, e al termine dell’esecuzione il processo verrà fatto partire nuovamente; tale ciclo verrà ripetuto sino alla interruzione manuale. Se un processo è in esecuzione, sia in modalità singola che ciclica, un click sul relativo pulsante terminerà immediatamente l’esecuzione, se invece si premerà shift+pulsante verrà alternata la modalità singola/ciclica: una esecuzione singola (pulsante rosso) diverrà ciclica (pulsante giallo) e viceversa.

Il pulsante tondo in alto a destra (“killall”) è per fermare immediatamente l’esecuzione di tutti i pezzi in esecuzione al momento, anche quelli fatti partire in altre schermate. Premendo lo stesso pulsante con shift vengono terminati tutti i brani, verranno spenti tutti i pulsanti del controller e si uscirà dal programma.

Possibili utilizzi

Il programma utilizza di default mplayer come programma eseguibile a cui viene passato ogni volta un file diverso tra i 512 disponibili, ma nulla vieta di utilizzare altri programmi, passando il nome del programma da linea di comando con l’opzione “-p”, come “play” per lo stesso scopo, oppure andando a modificare il codice scrivendo il programma che volete utilizzare.

È possibile utilizzare più files di configurazione, ognuno personalizzato per ogni esigenza, e avviare il programma con la configurazione desiderata.

Il programma l’ho utilizzato personalmente anche in altre occasioni, come le prove di un musical: ad ogni pulsante era associata una base delle tante dello spettacolo, e tale associazione ha reso più rapido il passaggio da un pezzo ad un altro velocizzando le prove, ma ognuno conosce le proprie esigenze e saprà sfruttare al meglio il programma per le proprie esigenze.

Il programma potrebbe essere utilizzato, oltre che in ambito audio, anche in altri settori, come quello video: sarebbe ad esempio possibile avviare sino a 512 video diversi.

Il programma potrebbe anche essere utilizzato per aprire sino a 512 documenti diversi usati frequentemente, per avviare 512 “programmi” diversi o, appoggiandosi alla domotica, accendere/spegnere 512 dispositivi casalinghi in una casa “elettronica”. Insomma, il limite è solo la fantasia dell’utilizzatore.

Codice

Il programma è scritto per essere utilizzato con un controller Akai APC mini (id 09E0:0028) e lo si potrà adattare per l’utilizzo di un altro controller, ma occorrerà conoscere a fondo il controller che si vuole utilizzare, poiché non è sufficiente modificare solo l’identificativo: ogni controller midi genera sequenze diverse alla pressione dei vari pulsanti e allo spostamento dei vari cursori, e sarà anche necessario conoscere le sequenze necessarie per colorare opportunamente i vari pulsanti.

Il programma contiene pezzi di codice non utilizzato, qualche commento forse inutile e presumibilmente qualche errore. Non sto a fare il pignoletto e mi accontento di come è adesso, anche perché è perfettamente funzionante, ma ne metto a disposizione il codice qualora qualcuno, ispirato da questo progetto, vorrà scrivere autonomamente qualcosa di interessante.

Download: PlaySound4.zip

GP

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi