diversamenteArte

Diversamente Arte (Parte II)

Partendo dalle specifiche del formato file per la trascrizione musicale dettate nel precedente post costruire un programma (script) capace di trasformare la nostra partitura in sequenze di comandi beep (o sequenza di argomenti per lo stesso) é cosa assai semplice.

La scelta del linguaggio di programmazione é ovviamente orientata alla omogeneità con l’ambiente di utilizzo del risultato, ovvero shell (in particolare bash >4.0), ma nulla vieta di realizzare il nostro programma per BeepMusic con altra tecnologia.

II nostro prototipo é capace di produrre varie forme di BeepMusic secondo la compatibilità con le possibili implementazioni del comando beep (Linux e FreeBSD).

Il cuore del software è il calcolo della durata delle note in ragione delle impostazioni metriche della partitura:

duration_in_millisec = n * 60000 / BPM / x;

dove n è il numeratore della frazione che indica la divisione di tempo (time signature) ed x è il denominatore della frazione che rappresenta la singola durata della nota. Questo viene calcolato per tutte le possibili durate di nota, ossia 1 2 4 8 16 32 64 128.

Le frequenze per le note sono semplicemente estratte da un array
pre-calcolato e posto in un file accessorio (potete “accordare” a piacimento lo “strumento” beep).

Qualche accorgimento per produrre output compatibile con le differenti implementazioni di beep ed il gioco é fatto!

Il software completo é scaricabile da GitHub (https://github.com/andrea-tassotti/beepmusic).

Buon ascolto!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *