Disclamer: se questo post vi annoierà, prendetevela con Lorenzo (e con la mia intramontabile passione per… le idee balsane!)
E’ da un po’ di tempo che mi “trastullo” con un progetto che potrebbe rivelarsi presto del tutto inutile. Tutto nasce da una richiesta a Lorenzo, che per non smentirsi (non a caso è “Il genio del male”) mi offre un diniego e un’alternativa.
Ma ripartiamo con ordine. Per chi non mi conosce, sono un vecchietto arzillo che sta facendo correre il tempo sia avanti (per un fatto ineluttabile che non dipende da me…) sia indietro: quest’anno ho ricominciato a frequentare l’Università di Ingegneria delle Comunicazioni e al contempo anche un corso di batteria elettronica.
E le due cose si sono collegate quando ho pensato di realizzare un programma su Windows Phone 7 per studiare la batteria.
L’idea è quella di una sorta di Rhythm Coach che proponga degli esercizi e “ascolti” l’esecuzione del discente per verificare la corretta esecuzione dell’esercizio stesso, evidenziando eventualmente gli errori. Per stabilire un collegamento tra la batteria e lo smartphone occorre utilizzare la porta MIDI OUT della batteria. Per chi non conoscesse il sistema MIDI (Musical Instrument Digital Interface), è uno standard industriale che consente di connettere tra loro strumenti musicali e altri apparecchi, come ad esempio un PC. Quello che viene trasmesso non è il suono prodotto dallo strumento, quanto piuttosto lo spartito, inteso come sequenza di note corredate di tutte le proprietà necessarie per la loro esecuzione, quali “tono”, “durata” e “timbro” (ovvero il tipo di strumento virtuale che andrà utilizzato per eseguire tale nota).
Quindi, se fosse possibile collegare l’uscita MIDI della batteria elettronica al Windows Phone, il mio programma potrebbe ricevere la sequenza delle note (colpi di piatti, rullante, tom, grancassa, etc. etc.) e della loro disposizione nell’asse dei tempi, oltre ad altre informazioni preziose che riguardano la forza con cui è stato eseguito ciascun colpo. Tutte informazioni necessarie ed utili per verificare la corretta esecuzione dell’esercizio.
Ma qui sorge il problema: pur esistendo svariati convertitori da MIDI a USB (e viceversa) da poche decine di euro per connettere la batteria elettronica con un PC e pur avendo il Windows Phone una porta USB come ogni buon smartphone che si rispetti, al momento non è disponibile un’API che consenta di gestire il flusso dei dati della porta USB, ne da Silverlight ne tantomeno da XNA.
Ed è proprio su questo punto che il “perfido” Lorenzo entra in gioco: Non potendomi accontentare per quanto riguarda l’API, suggerisce un approccio alla “vecchia maniera”, quando col Commodore 64 si salvavano i file dei programmi nelle cassette audio collegandolo a un registratore a cassette.
Dunque ecco l’idea balsana: creare un sistema hardware e software che consenta di modulare il segnale MIDI uscente dalla batteria elettronica in un segnale audio da far entrare nel Windows Phone mediante ingresso audio (il jack audio ovviamente comprende l’uscita stereo per le cuffie, ma anche l’ingresso microfono), per poi demodulare l’audio in segnale MIDI, da utilizzare come poc’anzi descritto:
Al momento ho completato la realizzazione dell’interfaccia hardware MIDI IN, che sarà oggetto del mio prossimo post:
Per quanto riguarda la modulazione e demodulazione del segnale MIDI in segnale audio e viceversa, sto attingendo a piene mani dallo studio di “Teoria dei Segnali” e di “Fondamenti di Comunicazione”, e appena avrò tempo dedicherò a questi due aspetti fondamentali del progetto un post ciascuno.
Per finire, spiego perché il progetto potrebbe rivelarsi una totale perdita di tempo: è evidente che se da qui a breve dovesse uscire l’API di gestione della porta USB, allora tutto questo ambaradam non servirebbe più!
posted @ giovedì 19 maggio 2011 04:21