‘music’ Category

Open Drum Machine Wireless Orchestra

aprile 8th, 2013

Domenica scorsa sono stato invitato a partecipare all’evento from MARKET to MAKERS, un evento sull’autoproduzione dal basso basato su strumenti e prodotti open source. Io sono stato invitato come musicista a presentare uno dei miei progetti basati su Arduino (come il midi mitra oppure Onda Quadra Posse).

Siccome mi piace reinventarmi, ho deciso di presentare un progetto nuovo, sempre basato su Arduino. Anche perchè le vecchie cose che avevo fatto erano fine a se stessi, e considerando il fatto che avevo già smontato tutto e perso lo schema elettrico.

Per tutta questa serie di ragioni ho ideato la Open Drum Machine Wireless Orchestra. Una performance in cui tutto il pubblico diventa parte integrante performativa dell’esibizione. Il concetto è semplice: accedendo ad una rete wireless opportunamente configurata tramite il proprio device (smartphone, tablet, pc) e accedendo ad un’apposita pagina web, si può interagire facendo suonare la batteria. E tutti i partecipanti agiscono sulla stessa batteria.

Per fare questo, coadiuvato dal mio amichetto nerd che però preferisce rimanere anonimo, ho configurato una Fonera installandoci OpenWRT, che forniva connettività wireless e assegnava ad ogni client connesso un indirizzo ip tramite l’apposito server DHCP e, tramite il server web, gestiva una pagina web sui cui girava una pagina statica che, con un click ad una immagine linkata, mandava la richiesta, tramite cavo ethernet, a un Arduino con lo shield ethernet. La richiesta http veniva convertita in segnale MIDI e inviato a Ableton Live installato sul computer. Ableton era configurato in modo da far partire un sample di batteria ad ogni impulso midi che gli arrivava.

odmwo

A tutto questo ho aggiunto una scheda makey makey, regalatami per il compleanno per far suonare loop tamarri di synth, come contorno per la batteria. L’idea era di prendere 4 persone, fargli tenere una parte del sensore, e dargli il 5 per far partire il loop assegnato a quel sensore. Per problemi legati alle masse o a inneschi o potrei inventarmi tantissime parole tecniche tanto non so da cosa è dipeso, quest’ultima parte della performance non è riuscita del tutto.

Ecco un video che spiega, forse, meglio:

Il Midi Mitra

gennaio 5th, 2013

Chi segue assiduamente questo blog, o chi mi conosce personalmente, sa cos’è la gara delle batterie elettroniche in quanto ne sono un fan e sostenitore accanito. Il 30 dicembre scorso si è svolta l’ultima edizione assoluta (ma io sono sicuro che non sia affatto così) e per parteciparvi ho costruito un aggegio che ho chiamato “midi mitra”.

midimitra

il midi mitra in azione

Ma cos’è in realtà il midimitra? Scopriamo le meraviglie che si celano dietro quest’arma sonora. E’ semplicemente una scheda Arduino con un sensore di prossimità a ultrasuoni che genera un segnale midi che serve a pilotare una drum machine, nel mio caso una Roland MC-303. Il sensore da come risultato la distanza in centimetri dell’oggetto che si trova davanti, per comodità io ho considerato la distanza come frequenza per fargli generare la nota midi. Sappiamo che ogni nota della scala musicale corrisponde ad una determinata frequenza, quindi io ho solo preso la frequenza più vicina ad una nota per poi inviarla via midi alla drum machine. Nella drum machine ogni nota corrisponde ad un certo pezzo della batteria (cassa, rullante, tom, etc…). Ho impostato 100 millisecondi tra una lettura e un’altra e quello che ne esce è, di fatto, un midimitra. midimitra Il circuito è piuttosto semplice, solo una resistenza ed un led, il resto tutto fili. I sensori di prossiminità ne esistono di due tipi, uno a 3 connettori e un altro a 4. La libreria di arduino si chiama Ultrasonic.h, ricercando con google viene fuori un sacco di documentazione. Anche il codice è abbastanza semplice:

#include “Ultrasonic.h” Ultrasonic ultrasonic(12,13); int unote; int stategrilletto = 0; const int buttongrilletto = 7; void setup() { pinMode(11, OUTPUT); pinMode(buttongrilletto, INPUT); Serial.begin(31250); } void loop() { stategrilletto = digitalRead(buttongrilletto); unote=ultrasonic.Ranging(CM); if(unote <= 33){ tone(8, 33, 250); digitalWrite(11, HIGH); } else if(unote == 34){ tone(8, 34, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×18, 0×45); } else if(unote <= 37 && unote > 34){ tone(8, 37, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×19, 0×45); } else if(unote <= 39 && unote > 37){ tone(8, 39, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1A, 0×45); } else if(unote <= 41 && unote > 39){ tone(8, 41, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1B, 0×45); } else if(unote <= 44 && unote > 41){ tone(8, 44, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1C, 0×45); } else if(unote <= 46 && unote > 44){ tone(8, 46, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1D, 0×45); } else if(unote <= 49 && unote > 46){ tone(8, 49, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1E, 0×45); } else if(unote <= 52 && unote > 49){ tone(8, 52, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x1F, 0×45); } else if(unote <= 55 && unote > 52){ tone(8, 55, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×20, 0×45); } else if(unote <= 58 && unote > 55){ tone(8, 58, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×21, 0×45); } else if(unote <= 62 && unote > 58){ tone(8, 62, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×22, 0×45); } else if(unote <= 67 && unote > 62){ tone(8, 67, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×23, 0×45); } else if(unote <= 70 && unote > 67){ tone(8, 70, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×24, 0×45); } else if(unote <= 74 && unote > 70){ tone(8, 74, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×25, 0×45); } else if(unote <= 78 && unote > 74){ tone(8, 78, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×26, 0×45); } else if(unote <= 83 && unote > 78){ tone(8, 83, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×27, 0×45); } else if(unote <= 88 && unote > 83){ tone(8, 88, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×28, 0×45); } else if(unote <= 93 && unote > 88){ tone(8, 93, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×29, 0×45); } else if(unote <= 98 && unote > 93){ tone(8, 98, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2A, 0×45); } else if(unote <= 104 && unote > 98){ tone(8, 104, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2B, 0×45); } else if(unote <= 110 && unote > 104){ tone(8, 110, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2C, 0×45); } else if(unote <= 117 && unote > 110){ tone(8, 117, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2D, 0×45); } else if(unote <= 124 && unote > 117){ tone(8, 124, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2E, 0×45); } else if(unote <= 131 && unote > 124){ tone(8, 131, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x2F, 0×45); } else if(unote <= 139 && unote > 131){ tone(8, 139, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×30, 0×45); } else if(unote <= 147 && unote > 139){ tone(8, 147, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×31, 0×45); } else if(unote <= 156 && unote > 147){ tone(8, 156, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×31, 0×45); } else if(unote <= 165 && unote > 156){ tone(8, 165, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×33, 0×45); } else if(unote <= 175 && unote > 165){ tone(8, 175, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×34, 0×45); } else if(unote <= 185 && unote > 175){ tone(8, 185, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×35, 0×45); } else if(unote <= 196 && unote > 185){ tone(8, 196, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×36, 0×45); } else if(unote <= 208 && unote > 196){ tone(8, 208, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×37, 0×45); } else if(unote <= 220 && unote > 208){ tone(8, 220, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×38, 0×45); } else if(unote <= 233 && unote > 220){ tone(8, 233, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×39, 0×45); } else if(unote <= 247 && unote > 233){ tone(8, 247, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3A, 0×45); } else if(unote <= 262 && unote > 247){ tone(8, 262, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3B, 0×45); } else if(unote <= 277 && unote > 262){ tone(8, 277, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3C, 0×45); } else if(unote <= 294 && unote > 277){ tone(8, 294, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3D, 0×45); } else if(unote <= 311 && unote > 294){ tone(8, 311, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3E, 0×45); } else if(unote <= 330 && unote > 311){ tone(8, 330, 250); digitalWrite(11, HIGH); noteOn(0×90, 0x3F, 0×45); } else if(unote <= 349 && unote > 330){ tone(8, 349, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×40, 0×45); } else if(unote <= 370 && unote > 349){ tone(8, 370, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×41, 0×45); } else if(unote <= 392 && unote > 370){ tone(8, 392, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×42, 0×45); } else if(unote <= 415 && unote > 392){ tone(8, 415, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×43, 0×45); } else if(unote <= 440 && unote > 415){ tone(8, 440, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×44, 0×45); } else if(unote <= 466 && unote > 440){ tone(8, 466, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×45, 0×45); } else if(unote <= 494 && unote > 494){ tone(8, 494, 250); digitalWrite(11, HIGH); noteOn(0×90, 0×46, 0×45); } Serial.println(unote); digitalWrite(11, LOW); delay(100); } void noteOn(int cmd, int pitch, int velocity) { Serial.write(cmd); Serial.write(pitch); Serial.write(velocity); }

La palla maggiore è stata scrivere tutti gli if per convertire la distanza in frequenza e poi ponderare la nota giusta. Come effetto coreografico ho aggiunto un led bianco (smontato da un affarino di star wars preso in un pacchetto di patatine) dentro il tubo di alluminio che si vede da un lato.

midimitra

Midi Mitra: visione d’insieme

Il led si accende, per poi spegnersi subito dopo, ad ogni nota suonata. E’ un midimitra a tutti gli effetti e, a quanto ne so, è il primo al mondo. (la scheda dietro non serve a niente, è solo per fare scena). Il risultato è una mitragliata di cassa o rullante o piatto o conga sparata dalle casse e dal subwoofer. Il risultato si può vedere nel video, anche se l’audio è un po’ distorto.

 

album di cui non posso parlare

luglio 2nd, 2012

Grazie alle mie doti informatiche sono venuto in possesso, tramite un server ucraino, un album che ancora dovrà uscire ma di cui non posso dire nulla in giro però, essendo un bell’album, non posso esimermene.

Il pacchetto .zip che ho scaricato ha all’interno dei file con, a quanto pare, un nome provvisorio; l’id3 tag non è presente quindi non si conosce nel il nome del gruppo ne il titolo esatto, ma siccome io sono uno che ne sa (ed è amico di alcuni di quelli che ci suonano), riesco comunque a distinguere chi suona – però i nomi dovranno rimanere comunque segreti.

Il primo dei file contenuti nel pacchetto segna, diciamo così, una maturazione compositiva per i xxxxx in cui si fa forte l’influenza dei Joan Of Ark, i cui virtuosismi sono quasi sicuramente merito dell’altro chitarrista, perché vorrei proprio vederlo xxxxx che suona quella roba (senza offesa eh, ti ho anche regalato una maglietta dei Miles Apart, t.v.t.b.).

Il secondo è un brano dei xxxxx, sono rimasti praticamente inalterati rispetto ai vecchi lavori, accordi aperti (in cui si sente chiaramente lo stampo dei xxxxx) e testi da imparare subito a memoria.

Il brano successivo da sfogo all’io metallaro, di scuola Motorhead, si cela dentro i xxxxx (come da sua confessione durante una chiacchierata su facebook).

Pure il quarto brano è dei xxxxx (ho scoperto ora che i file sono in ordine alfabetico) e confermano quanto scritto poco sopra ma con i loro soliti testi, anche qua da imparare e urlare. Un brano, a quanto pare, dedicato ad un personaggio con cui ho diviso il sudore sotto il palco tempo fa.

Ritornano i xxxxx con un altro brano che suggella i giri di chitarra di scuola philadelphiana. Le liriche appaiono più ricercate. Non so, ma è sempre un piacere ascoltare questo tipo di riff.

Chiudono i xxxxx con i soliti accordi aperti e le urla. Per il resto confermano quanto ci si potrebbe, e si vorrebbe, aspettare dai xxxxx. Tra l’altro io proporrei i testi di xxxxx per il premio Tenco.

Nel complesso xxxxx ci ha tirato fuori un’altra bomba. Un bell’album pronto per l’estate e via di viaggi in macchina verso i pit sudaticci a perdere la voce puntando il dito.

RockEat – il ritorno

maggio 3rd, 2012

RockEat aveva smesso di funzionare ma il team si è messo subito all’opera per trovare la soluzione fondendo insieme le menti. Con un brainstorming e un briefing via mail, e appontando un planning, si è arrivati a trovare nuovamente la soluzione.

In pratica hanno cambiato la PAROLASEGRETISSIMA, di cui parlavo anche nel post precedente a riguardo, con una nuova, che manterrò comunque segreta perchè mi piace l’idea di far parte di una elite di persone che ne sono al corrente.

Oltre ad aver cambiato la PAROLASEGRETISSIMA hanno aggiunto un header http per il referer, ovvero l’url da cui sei arrivato a una determinata pagina, il cui valore è l’url stesso del player flash. Se vi mettete a sbirciare dentro l’html è facile notare che il player flash è cambiato e ora è player3.swf.

Detto questo il resto è rimasto inalterato, bisogna sempre calcolarsi l’md5 dall’url del file con la PAROLASEGRETISSIMA in fondo.

Per fare il bullo ho voluto provare a fare uno script in bash su una sola riga per automatizzare lo scaricamento dei file, eccolo:

wget -O /tmp/site.html http://www.rockit.it/rivera/album/novembre-2011/19214 ; cat /tmp/site.html | grep “id_” | sed ‘s/id_/\n/g’ | sed ‘s/”><ul>/\n/g’ | awk ‘NR%2==0′ | awk -F”_” ‘{print “echo -n \”http://ww2.rockit.it/7mp3/” $2 “/” $1 “.mp3-PAROLASEGRETISSIMA\” | md5sum “}’ > /tmp/url.tmp ; sh /tmp/url.tmp | cut -f1 -d’ ‘ > /tmp/url.md5 ; cat /tmp/url.tmp | awk -F”\”" ‘{print $2}’ | awk -F”-” ‘{print $1}’ > /tmp/tmp.url ; paste -d ” ” /tmp/url.md5 /tmp/tmp.url > /tmp/url.tmp ; sed ‘s/\ /” /g’ /tmp/url.tmp | sed ‘s/^/wget –referer=http:\/\/www.rockit.it\/web\/js\/player3.swf –post-data rockitID=/’ /tmp/url.tmp > /tmp/wget.tmp ; sh /tmp/wget.tmp

Ovviamente dovete cambiare l’url dell’album. Funziona solo su Linux (su osx non so) e i file mp3 non li salva coi nomi corrispondenti ma va bene uguale, si presume che l’id3 tag dell’mp3 sia apposto.

Presto ci saranno in vendita le magliette di RockEat.

Lo strano caso della Black Candy records

marzo 6th, 2012

sottotitolo: post autoreferenziale sulla mia fighezza.

Nel maggio 2011 ho pubblicato un post che spiegava come scaricare gli mp3 da rockit. Un post controverso ma che, di fatto, permetteva ad una utenza limitata il download vista la non immediatezza del processo. Poi rockit ha rinnovato il sito e abbiamo dovuto trovare un nuovo metodo.

Qualche giorno fa ho trovato un commento da qualche boss della Black Candy records che con per niente velata ironia mi dava del fico, e cito:

blackcandy on marzo 1, 2012 alle 18:31 said:
tu si che sei uno figo che rubi i dischi dei gruppi indipendenti … sei uno giusto!

Fatta la premessa ora comincerà uno sproloquio su quanto io sia effettivamente un fico.

Partiamo appunto dal post in questione in cui spiegavo il procedimento usando Legna dei Gazebo Penguins come esempio. Non ho scelto un album a caso ma ho scelto un album comunque scaricabile gratuitamente da loro sito e di cui poi, successivamente ho acquistato il cd originale perchè, oggettivamente, è un bell’album. Inoltre ho contribuito anche alla diffusione del vinile mettendo in vetrina al Plastic. Appena posso vado a vederli anche dal vivo.

Nella versione aggiornata ho usato il nuovo album dei Fine Before You Came. Altro gruppone e altro discone. Stesso discorso.

Mi è capitato anche di scaricare altri album, tipo quel tizio di cui però non mi ricordo il nome ma che poi mi ha fatto schifo e l’ho cancellato. Potresti dire “ma allora te lo potevi ascoltare in streaming”. No. Io lo scarico, me lo ascolto nell’ipod mentre vado in bici e lo giudico. Se mi fa schifo lo cancello. Non faccio altro quei tizi che vanno nei negozi di dischi e dicono “posso ascoltare quest’album?”, te glielo apro, glielo metti nel lettore cd, il tizio se l’ascolta in cuffia e poi decide se comprarlo. Io faccio la stessa cosa ma a casa mia e mentre pedalo.

Poi vogliamo anche parlare della mia collezione di dischi?

O del fatto che il mio nome compare anche nella lista dei produttori del disco degli Ex-Otago? (seppur vicino a Carlo Pastore)

Ci sarebbero altri esempi ma poi servirebbero solo a sbrodolarmi autoreferenzialità addosso. Credo di aver espletato a dovere il concetto.

Se poi nella mia collezione di dischi non abbia nulla della Black Candy records è un altro discorso, e si spiega da solo, però ho la discografia completa delle Black Candy :D

rockeat

febbraio 8th, 2012

sottotitolo: rockit e gli mp3 #2

(la descrizione sarà un po’ sommaria perchè mica mi ricordo esattamente tutti i passi della nostra ricerca)

Ebbene si, abbiamo (io e @eroispaziali, ma più che altro lui che si è smazzato il grosso del lavoro) trovato il modo di scaricare gli mp3 da rockit da dopo il restiling grafico che, di fanno, vanifica il vecchio procedimento.

Questa volta è un pelo più complicato, ma andiamo con ordine e prendiamo una pagina di esempio: i fine before you came con l’album ormai (che tanto c’è da scaricare anche dal loro sito quindi non facciamo male quasi a nessuno).

cominciamo a sbirciare tra il codice html e a cercare la sezione in cui carica il player di mp3: ad un certo punto carica il file player.swf, che è il player vero e proprio, e poi comincia a disegnare l’interfacca al player, i bottoni play, i titoli e tutto il resto. ma fino  a questo punto non si capisce niente, sembra funzionare per magia, invece sbirciando in fondo alla pagina viene caricato una libreria in javascript: lib.js. fai 2 + 2 e viene quasi naturale sbirciarci dentro.

tra le tante funzioni ce n’è una interessante:

function player_initSWF($data, $textStatus, $jqXHR) {

la player_initSWF(); ma, a parte i parametri tra parentesi, a noi interessa più una riga commentata:

// console.log( $data.url );

Facendo scrivere quella variabile, con un po’ di magheggi con firebug o robe simili, si riesce a risalire all’url del file mp3.

a questo punto magari dici: “ah, è fatta”, e invece no.

Torniamo a sbirciare l’html, ad ogni brano corrisponde un id:

<li class=”item” id=”id_139208_4068″><ul><li class=”play”><a href=”#” rel=”139208″>Play</a></li><li class=”playlist”><a href=”#” rel=”nofollow”>Aggiungi</a></li><li class=”title”><a href=”/finebeforeyoucame/canzone/dublino/139208” class=”titolo” rel=”nofollow”>1. Dublino</a></li></ul></li>

A parte gli <li> annidati notiamo che ad ogni canzone corrisponde un id della canzone e un id dell’album. In questo caso 4066 è l’id dell’album, mentre 139208 è l’id dell’mp3 che, come per magia, corrispondono alla variabile $data.url della funzione in javascript.

Ma ancora niente download diretto. E niente, magheggiando con altre robe tipo  HttpFox o simile si riesce a scoprire che il file viene presto tramite POST e non tramite GET quindi.

Sempre nel file lib.js c’è questo:

$('body').append('<form id="godown" '+$response.t+'><input type="hidden" name="rockitID" value="'+$response.k+'"/></form>');

che altri non è che un campo POST nascosto, e non visibile dall’html, che specifica una stringa, un id chiamato appunto rockitID.

Ma come viene generato questo rockitID? Mistero. Abbiamo chiesto a Giacobbo e a prima vista sembra una semplice stringa md5 che, sappiamo tutti, non è reversibile.

Non so quante combinazioni di stringhe ho provato a convertire ma niente, nessuna ritornava quella giusta.

La soluzione consiste nel decompilare il file player.swf.

Ad un certo punto, dentro il file .swf, c’è questo:

_loc_1.rockitID = MD5.hash(this.fileURL + “-PAROLASEGRETISSIMA”);

Dove PAROLASEGRETISSIMA ovviamente non è PAROLASEGRETISSIMA ma una stringa di testo che mi piace di più tenere segreta: un po’ come le strette di mano dei moti carbonari, o il modo di allacciare le scarpe delle spie, o anche la tizia che guidava la jeep nella contea di Hazzard.

Quindi basta calcolare l’hash md5 aggiungendo la PAROLASEGRETISSIMA in fondo alla stringa e viene ritornato il rockitID giusto. A quel punto basta usare wget, o curl, passandogli come POST rockitID la stringa md5 risultante e l’url del file mp3.

Semplice. Ecco il risultato (però con un altro album che i Fine Before You Came ce li ho già):

Semplice? Ora che lo so è semplice, ma prima non lo era affatto :)

In questa sede mi preme ringraziare non tanto rockit, che comunque è da un po’ di tempo ormai che mette on line album che non mi interessano, ma piuttosto ringrazio @eroispaziali che mi ha dato lo stimolo e mi ha motivato per trovare la soluzione.

Un po’ come quando il capitano Picard spiega a non mi ricordo quale razza aliena che parte del senso della vita è risolvere i problemi che ti si presentano man mano. E con problemi non intendo le bollette da pagare, quello si risolve pagando la bolletta, ma problemi inteso come dice wikipedia:

Un problema, comunemente inteso, è un ostacolo che rende difficile raggiungere un determinato obiettivo o soddisfare una certa esigenza, frapponendosi tra la volontà dell’individuo e la realtà oggettiva.

Quindi non è che uno mi dice “ah, ma che sfigato, non hai nient’altro da fare?”, si e no. Faccio le cose che mi diverte fare: in questo caso riuscire a scaricare gli mp3 da rockit. Altri preferiscono truccare i motorini, altri passano il tempo a lucidare la macchina, altri guardano il grande fratello, altri fanno altre cose. Il mio non lo considero affatto tempo perso. Ognuno impiega il proprio tempo come preferisce.

Uno dei miei motti è: d’altronde gianni morandi mangia la merda.

Chi sono io per giudicarlo? :)

 

Update: leggetevi però anche questo prima di giudicare.

rockeat

febbraio 8th, 2012

sottotitolo: rockit e gli mp3 #2

(la descrizione sarà un po’ sommaria perchè mica mi ricordo esattamente tutti i passi della nostra ricerca)

Ebbene si, abbiamo (io e @eroispaziali, ma più che altro lui che si è smazzato il grosso del lavoro) trovato il modo di scaricare gli mp3 da rockit da dopo il restiling grafico che, di fanno, vanifica il vecchio procedimento.

Questa volta è un pelo più complicato, ma andiamo con ordine e prendiamo una pagina di esempio: i fine before you came con l’album ormai (che tanto c’è da scaricare anche dal loro sito quindi non facciamo male quasi a nessuno).

cominciamo a sbirciare tra il codice html e a cercare la sezione in cui carica il player di mp3: ad un certo punto carica il file player.swf, che è il player vero e proprio, e poi comincia a disegnare l’interfacca al player, i bottoni play, i titoli e tutto il resto. ma fino  a questo punto non si capisce niente, sembra funzionare per magia, invece sbirciando in fondo alla pagina viene caricato una libreria in javascript: lib.js. fai 2 + 2 e viene quasi naturale sbirciarci dentro.

tra le tante funzioni ce n’è una interessante:

function player_initSWF($data, $textStatus, $jqXHR) {

la player_initSWF(); ma, a parte i parametri tra parentesi, a noi interessa più una riga commentata:

// console.log( $data.url );

Facendo scrivere quella variabile, con un po’ di magheggi con firebug o robe simili, si riesce a risalire all’url del file mp3.

a questo punto magari dici: “ah, è fatta”, e invece no.

Torniamo a sbirciare l’html, ad ogni brano corrisponde un id:

<li class=”item” id=”id_139208_4068″><ul><li class=”play”><a href=”#” rel=”139208″>Play</a></li><li class=”playlist”><a href=”#” rel=”nofollow”>Aggiungi</a></li><li class=”title”><a href=”/finebeforeyoucame/canzone/dublino/139208” class=”titolo” rel=”nofollow”>1. Dublino</a></li></ul></li>

A parte gli <li> annidati notiamo che ad ogni canzone corrisponde un id della canzone e un id dell’album. In questo caso 4066 è l’id dell’album, mentre 139208 è l’id dell’mp3 che, come per magia, corrispondono alla variabile $data.url della funzione in javascript.

Ma ancora niente download diretto. E niente, magheggiando con altre robe tipo  HttpFox o simile si riesce a scoprire che il file viene presto tramite POST e non tramite GET quindi.

Sempre nel file lib.js c’è questo:

$('body').append('<form id="godown" '+$response.t+'><input type="hidden" name="rockitID" value="'+$response.k+'"/></form>');

che altri non è che un campo POST nascosto, e non visibile dall’html, che specifica una stringa, un id chiamato appunto rockitID.

Ma come viene generato questo rockitID? Mistero. Abbiamo chiesto a Giacobbo e a prima vista sembra una semplice stringa md5 che, sappiamo tutti, non è reversibile.

Non so quante combinazioni di stringhe ho provato a convertire ma niente, nessuna ritornava quella giusta.

La soluzione consiste nel decompilare il file player.swf.

Ad un certo punto, dentro il file .swf, c’è questo:

_loc_1.rockitID = MD5.hash(this.fileURL + “-PAROLASEGRETISSIMA”);

Dove PAROLASEGRETISSIMA ovviamente non è PAROLASEGRETISSIMA ma una stringa di testo che mi piace di più tenere segreta: un po’ come le strette di mano dei moti carbonari, o il modo di allacciare le scarpe delle spie, o anche la tizia che guidava la jeep nella contea di Hazzard.

Quindi basta calcolare l’hash md5 aggiungendo la PAROLASEGRETISSIMA in fondo alla stringa e viene ritornato il rockitID giusto. A quel punto basta usare wget, o curl, passandogli come POST rockitID la stringa md5 risultante e l’url del file mp3.

Semplice. Ecco il risultato (però con un altro album che i Fine Before You Came ce li ho già):

Semplice? Ora che lo so è semplice, ma prima non lo era affatto :)

In questa sede mi preme ringraziare non tanto rockit, che comunque è da un po’ di tempo ormai che mette on line album che non mi interessano, ma piuttosto ringrazio @eroispaziali che mi ha dato lo stimolo e mi ha motivato per trovare la soluzione.

Un po’ come quando il capitano Picard spiega a non mi ricordo quale razza aliena che parte del senso della vita è risolvere i problemi che ti si presentano man mano. E con problemi non intendo le bollette da pagare, quello si risolve pagando la bolletta, ma problemi inteso come dice wikipedia:

Un problema, comunemente inteso, è un ostacolo che rende difficile raggiungere un determinato obiettivo o soddisfare una certa esigenza, frapponendosi tra la volontà dell’individuo e la realtà oggettiva.

Quindi non è che uno mi dice “ah, ma che sfigato, non hai nient’altro da fare?”, si e no. Faccio le cose che mi diverte fare: in questo caso riuscire a scaricare gli mp3 da rockit. Altri preferiscono truccare i motorini, altri passano il tempo a lucidare la macchina, altri guardano il grande fratello, altri fanno altre cose. Il mio non lo considero affatto tempo perso. Ognuno impiega il proprio tempo come preferisce.

Uno dei miei motti è: d’altronde gianni morandi mangia la merda.

Chi sono io per giudicarlo? :)

 

Update: leggetevi però anche questo prima di giudicare.

Update: è cambiato tutto di nuovo, tenetevi aggiornati.

Arduino Vj System

gennaio 6th, 2012

Sono mesi che avevo in mente questo progetto usando Arduino e la libreria TV Out, finalmente sono riuscito a produrre qualcosa di funzionante ed è anche giunta l’ora di rendere pubblico il tutto.

La libreria per il tv out serve, come si intuisce dal nome, a generare dei segnali video. Vista la scarsa potenza di Arduino, si riescono soltanto a generare segnali video in bianco e nero e con una risoluzione di 128×96 pixel. Per capirci si riescono a fare cose come questo o questo o quest’altro. Sono vecchi esperimenti che avevo fatto tempo fa. E’ roba molto limitata ma, visti i limiti, la sfida diventa ancora più interessante.

La mia idea era costruire un coso da utilizzare come visual durante un concerto. La definizione di vj di wikipedia è abbastanza esaustiva. In pratica un affare con dei comandi per interagire in tempo reale, o quasi, con gli effetti video generati da Arduino.

Questo è il risultato:

Per comodità ho scelto di costruire il circuito su una millefori da inserire direttamente su Arduino. Nella foto si possono vedere i 3 switch per selezionare gli effetti, il connettore RCA giallo per l’uscita video, il potenziometro per regolare la velocità dell’effetto e il led verde che segnala l’accensione – il led rosso in realtà non serve a niente.

Questo è lo schema:

Per disegnarlo ho usato Fritzing e potete anche scaricarvi il file con gli schemi.

Per ottimizzare ho usato solo 3 interruttori coi quali si possono selezionare 8 diversi effetti video. Ecco l’elenco:

  • 000: face();
  • 001: point();
  • 010: strobo();
  • 011: star();
  • 100: square();
  • 101: bug();
  • 110: cube();
  • 111: circle();

(le prime tre cifre indicano lo stato degli switch A, B e C; 0 è spento, 1 è acceso)

Potete scaricarvi il sorgente per Arduino. Dentro il codice ci sono varie funzione che si chiamano nello stesso modo elencato qui sopra. Da notare l’effetto bug() che in realtà doveva fare tutt’altro, almeno per come l’avevo pensato, ma per colpa di non so quale bug genera un effetto video che non mi dispiaceva affatto, per cui l’ho lasciato così com’è.

Per l’effett face() ho tentato di usare la funzione interna della libreria TV Out per caricare le bitmap, opportunamente convertite, ma non ci sono riuscito per cui, visto che dovevo sbrigarmi a finire tutto l’ambaradan, ho optato per un sistema empirico: tipo che disegno le faccie pixel per pixel, questo ovviamente ha portato ad un riempimento smodato della memoria di Arduino tant’è che ci sono state solo due faccie :) .

Ecco il risultato proiettato dal vivo durante il nostro concerto:

Al minuci 3:05 si può vedere l’effetto bug() in azione.

Se vi interessa qua, qua, qua e qua ci sono le parti rimanenti del concerto.

Ogni tanto, mettendo in sequenza alcuni effetti video, Arduino perdeva il controllo, credo per il troppo casino a video, e bisognava resettare tutto il sistema.

Disco Bravo 2011

dicembre 31st, 2011

Quest’anno nessuno ha richiesto di continuare la tradizione del DiscoBravo per cui, pieno di pigrizia, la interrompo io, senza se e senza ma.

Di solito, verso la fine dell’anno, l’indie-blogger spocchioso comincia a pensare alla classifica dei dischi dell’anno e a lamentarsi che non escono più album belli come una volta, tant’è che nel mio blog non c’è nessun post (fa fede l’archivio a lato) che parla dei dischi usciti nel 2010.

Ma invece il 2011 ha fatto uscire un sacco di album fighissimi e, come tradizione vuole, elencherò e commenterò i 10 dischi più fighi usciti quest’anno (in verità, per essere più nazi, ho deciso di parlare dei dischi che possiedo fisicamente)

Però volevo anche stravolgere un po’ i canoni, stravoltura dovuta anche alla noia nell’indecisione, parlerò delle 5 prime posizioni della classifica a parimerito… forse non è chiaro come concetto ma non mi importa.

1° posto

Dite un po’ quello che vi pare ma sono due dischi bellissimi. “Vabbè, facile coi Mogwai” direte voi, e invece no, perchè anche loro cose brutte ne hanno fatte eh, e questo è proprio bellissimo (a parte un paio di tracce che le avrei tralasciate proprio), è post-rock ma adattato ai tempi moderni, non fanno più quelle cose un po’ canoniche degli esordi pur essendo manieristici, mogwaianamente parlando. E poi è stato uno dei concerti che mi sono goduto di più quest’anno con l’impianto dell’estragon che ti sparava tutti gli armonici di Rano Pano direttamente dentro l’esofago.

Gli altri invece sono italiani e più o meno li conosciamo tutti e hanno fatto uscire un album epico per un’etichetta altrettanto epica (ciao Luca). Ritornelli al fulmicotone che si imprimono dentro le sinapsi fin dal primo ascolto, e che li rimangono. Distorsioni e urla, con quella puntinina di metal nei riff di chitarra ad amalgamare. I live poi sono sempre divertentissimi, fare finger point e cantare a squarciagola ai concerti è diventato il mio hobby quest’anno.

L’idea dei dischi a parimerito mi è venuta perchè non sapevo scegliere chi, tra questi due, mettere per primo.

2° posto

Pur essendo una raccolta di album, su cassetta o 7″, usciti tempo fa, mi piace comunque considerarlo un album uscito nel 2011. A parte le solite frasi fatte sul d.i.y. e quelle cose li, è sempre bello scrivere una mail a uno “oh, mi mandi il tuo disco?” e poi te lo ritrovi nella buca delle lettere. Alla stregua dei gazebi, quest’album metallico-citazionista, è pieno di successi riempi-pit. E anche i live dei verme sono serviti ad alimentare il mio hobby del finger-pointing.

Accostato ai verme un album di elettronica quasi intellettuale. Mi sono innamorato dei Plaid la prima volta che li ho visti dal vivo. Ne ho già parlato approfonditamente qua appena uscito, con un un post dal titolo alquanto spiritoso, quindi evito di ripetermi.

3° posto

Inserire questi due album nella classifica di quest’anno è un po’ come sparare sulla croce rossa, ma così è. I Battles hanno perso un componente ma hanno guadagnato un po’ rispetto l’album precedente e dentro ci sono dei singoloni bellissimi. Per quanto riguarda i Rapture non so bene dire perchè mi piaccia quest’album (tranne il pezzo con le fisarmoniche che non sopporto proprio) ma so che l’ho ascoltato un sacco, e se non avessi formattato il vecchio mac ora potrei guardare le statistiche di ascolto su iTunes (in realtà ce l’ho nel backup sull’hard disk esterno ma sti gran capi estiqaatsi).

4° posto

Conoscevo praticamente già gli Uyuni per i loro altri progetti tutti legati alla Tafuzzy Records. Poi li ho visti dal vivo questa estate, con tanto di visual quasi in sincrono, ed è stato subito amore incondizionato. Chitarra, arpeggi in loop, batteria e formare melodie e suoni eterei in bilico tra certe cose di Jim O’Rourke e qualsiasi cosa della Morr Music.

Li metto a parimerito con i Beastie Boys in quanto mi stanno simpatici entrambi, e a prescindere, come non si può non volere bene ai Beastie Boys. Se facessero un album di soli rutti e scorreggie sarebbe comunque bellissimo. La definizione Golden Age usata da allmusic.com per descrivere il loro genere musicale calza a pennello per quest’album, e come non ricordare il video promozionale di mezzora di deliri alla Beastie Boys?

5° posto

Odiati od amati questo de I Cani è un bel album. Tastiere distorte orecchiabili, batterie elettroniche tirate, e testi che volenti o nolenti, parlano di noi. Ho anche giocato a calcetto contro di loro nella memorabile sfida To Lose La Track contro 42 Records (credo di aver resistito in campo non più di 3 minuti). Spocchiosità a parte è un bel disco.

Come lo è quello di Paul Kalkbrenner, forse un po’ bistrattato dalla critica, niente di nuovo o eccezionale ma le canzoni a me piacciono tanto ed è questo quello che importa (ai fini della mia classifica). Sono praticamente diventato suo fan da quando ha interpretato il ruolo di Dj Ickarus nel film uscito tempo fa, e da allora non posso farne a meno.

Fuori concorso

E’ fuori concorso perchè praticamente è la colonna sonora di un videogioco a cui sto giocando da un sacco di tempo e che mi sta prendendo sempre di più, sono alla 35 ora di gioco e ancora dovrò farne di strada. Poi ci sono anche degli aneddoti notturni in macchina legati ad un mio non datore di lavoro e un ritorno a casa che lo fanno per forza entrare in classifica.

I grandi esclusi

La foto, rigorosamente mossa così il mio ex-c.d.r. non avrà da lamentarsi, ritrae alla finta rinfusa i dischi che ho scartato per un motivo o per un altro. Non li sto ad elencare tutti, ma solo alcuni.

I dEUS sembravano avessero fatto un gran album, invece dopo qualche ascolto un po’ stanca. Gli Ex-Otago, dopo essersi fatti una vacanza in parte anche a spese mie, hanno fatto un gran bell’album, e dentro ci sono dei pezzoni e tormentoni, solo che essendo praticamente spariti dai live in giro per l’Italia, per ripicca, non li ho inseriti nella classifica. L’album di Bugo, che mi aveva esaltato al primo ascolto già dal primo pezzo, alla lunga invece non tiene botta.

Fine, anche per quest’anno è fatta… vado a prepararmi per il cenone che poi voglio vedere cosa mette al primo posto esse.

tema: “La mia collezione di dischi”. Svolgimento:

dicembre 5th, 2011

La mia collezione di dischi è cominciata un sacco di anni fa. Il primo disco che comprai fu il 7″ di “Self control” di Raf, che ancora conservo. A quei tempi la mia unica finestra sul mondo musicale era Dj Television e quindi, quasi obbligatoriamente, poi diventai un fan di Jovanotti (non rinnego le mie origini ma un po’ rinnego il Jovanotti moderno). Era la fine degli anni 80 per cui in casa mia comparve uno di quei mobiletti con le ruote e le ante di vetro con dentro lo stereo, quelle cose che oggigiorno non si vedono più, in cui al piano inferiore c’era posto per i vinili.  Durò abbastanza: cioè fino a quando non cominciai a comprarmi dischi volontariamente risparmiando su paghette e merende a scuola. Quel ripiano del mobiletto dello stereo si riempii anche delle immancabili cassette duplicate dal banco di scuola (e col tempo ho notato che questa è una costante negli ultratrentenni odierni: ognuno ha avuto un compagno di banco che gli passava le cassette duplicate coi pezzi dei Nirvana).

Più tardi, non ricordo quando ne il perchè, la conformazione del mio salotto cambiò. Il legno del mobiletto fu riutilizzato da mio padre non so dove, e al suo posto comparvero due enormi mensole: in una c’era lo stereo, e in quella inferiore i cd e le cassette. I vinili li tenevo in una cassetta di plastica sottratta in un supermercato perchè l’avevo visto fare a non so quale dj famoso. Il natale successivo mi arrivo un porta cd che, se nonricordo male conteneva 40 cd in tutto, da mia zia che mi disse anche “ce ne stanno 40, tanto non comprerai più di 40 cd”. Durò poco ma fu affiancato da una colonnina di metallo contenente 75 cd. Non durò tanto.

Ora, questa colonnina portacd, è al plastic.

Era il periodo in cui la scuola l’avevo finita e già lavoravo. Abitare a casa coi tuoi e lavorare significa avere un sacco di soldi da spendere in dischi. Parevano non mi bastassero mai, nemmeno adesso, sempre alla ricerca di novità. Parlare con altri, leggere riviste, ascoltare Planet Rock e quello che passava sull’allora VideoMusic. Tanto il percorso è stato più o meno identico per tutti in quegli anni.

Il tempo passava e i dischi continuavano ad aumentare nonostante avessi napster e una adsl. Si incominciavano a sentire i primi problemi di archiviazioni dei dischi. “Cosa te ne fai di tutti questi dischi?” oppure “ma manco ti ricorderai quello che hai e quello che ti manca”, in circa 20 anni di compratore di dischi mi è capitato solo una volta di comprare involontariamente un doppione.

Poi ci fu il trasloco, andai a vivere da solo (in realtà con un cuinquilino di cui vorrei perderee il ricordo).

La prima cosa che traslocai, cosa che feci senza pensarci troppo, fu lo stereo e tutta la mia collezione di dischi. Nella casa nuova mi costruii i portacd usando vecchie tavole. Grazie ad una sapiente destrezza nel maneggiare il legno, ma più che altro dovuto ad una botta di culo, costruii queste mensole per i cd senza usare ne chiodi ne viti, tutto a incastro: un po’ come alcuni templi giapponesi.

Nei primi tempi di spese me la vedevo un po’ brutta con i soldi, quindi i miei acquisti diminuirono. Ma per una fortunata coincidenza di eventi mi trovai invischiato in un mezzo lavoretto in un negozio di dischi. Capite che per un fanatico del supporto fisico, e dopo aver passato anni a rovistare tra gli scaffali dei negozi di dischi (per dire, quando capito al mediaworld mi viene subito spontaneo di dare un’occhiata al reparto dei dischi), mi ritrovai dall’altro lato della barricata: questo mi ha aiutato a capire che non ero solo, c’era un sacco di altra gente come me e, nel mio piccolo, cerco di aiutarli in quanto sono come loro.

Questo lavoretto, dicevo, mi porto ad avere accesso ad un numero quasi indefinito di nuovi “acquisti”, mi portò ad una marea di roba inimmaginabile per me fino quel momento. Compravo e compro, anche se è più giusto dire “guadagno”, anche dischi che prima non avrei preso in considerazione.

Poi altro trasloco, con conseguente stabilità casereccia, e nuovo porta cd. Questa volta mi venne in aiuto Ikea.

Credo di aver superato le mille unità da un po’. Un giorno che mi prenderà voglia li riconterò.

Nonostante la quantità spropositata di roba continuo a non comprare doppioni.

C’è un aneddoto da raccontare riguardo la mia passione per le discografie complete che mi prende una volta ogni 6 mesi circa. In quanto fan sfegatato dei Flaming Lips mi sono sempre ripromesso di completarmi la discografia ma sono anni che cerco, e non trovo, in anche in giro per il mondo (new york, londra, tokyo, berlino) l’album “Oh my gawd” (in realtà ho il vinile che hanno ristampato di recente, ma io voglio la versione con la copertina vecchia) e dentro me mi sono sempre detto che una volta che avessi trovato anche quel disco, avrei potuto ritenermi soddisfatto. Un paio d’anni fa mi recai a new york in qualità di roadie insieme al mio manager, nella sua infinità saggezza mi porto in un negozio che vendeva per corrispondenza ma quel giorno, per il festival, apriva i suoi uffici alle persone normali. All’ingresso ti davano una tabella su cui scrivere i dischi che volevi e loro te li andavano a prendere in magazzino. Luca mi disse “qua hanno tutto, puoi chiedere quello che ti pare che loro ce li hanno”. Allora scrissi un solo titolo: “Flaming Lips – Oh my gawd”.

Mi avvicinai al tizio di brooklyn, che di sicuro aveva una scatto fisso parcheggiata in strada, con una camicia a scacchi. Fui molto vicino. Poi ad un tratto accartocciai il foglietto e lo buttai in un bidone. Non ero ancora pronto a ritenermi soddisfatto.