Archivio | Synth RSS for this section

MarkovEX è tra noi! Generative Music Compositions

MarkovEX logo

Oggi è finalmente giunto ad una release funzionante, il progetto MarkovEX.

MarkovEX è un programma per la creazione di musica generativa con una struttura ben definita. La componente random del sistema permette di generare musica sempre nuova (e potenzialmente di durata infinita), ma il susseguirsi delle note presenta una struttura di fondo data da una catena di Markov del secondo ordine.

MarkovEX è in grado di analizzare file midi trattandoli come realizzazioni di un processo stocastico associato ad una particolare catena di Markov. L’obiettivo di questa analisi è cercare di ricavare la catena di Markov del secondo ordine associata alla traccia musicale. Una volta fatto questo, salva i risultati su file in modo da poterli aprire (sempre con MarkovEX) e farli suonare sul sequencer ALSA, creando di volta in volta nuove melodie che però hanno sempre un po lo stesso sapore.

Il modello usato è del secondo ordine in quanto il primo ordine non è sufficientemente “strutturato” per poter generare musica “simile” al file midi originale. Passando all’ordine successivo invece, si rende la sequenza di note maggiormente correlata.

Provare per credere :)

Per ora lo potete trovare su GitHub a questo indirizzo

git://github.com/axeldamage/Markovex.git

Saluti :)

 

Nuovo SoundFont: Il Sitar del Diavolo a.k.a. Ditar :)

Con immenso piacere vi presento un nuovo soundfont creato e registrato da me medesimo. L’esigenza di creare un soundfont è data dal fatto che questo strumento, unico al mondo (LOL), creato da un liutaio bresciano dall’indentità segreta, risulta un po’ ostico da suonare… e da accordare! Cosa meglio di un soundfont per questo scopo?

ditar

ed ecco a voi... il Ditar :)

Per il download del SF2, per la demo audio e per ulteriori informazioni, vi rimando all’articolo originale publicato sul mio blog sperimentale.

Lasciate ogni speranza voi che suonate questo soundfont! :D

DISCLAIMER: Attenzione! Potrebbe manifestarsi Satana! :)

Binaural Beats in Octave (a.k.a. i-Doser fai da te)

Se siete qui avrete quasi sicuramente sentito parlare del famoso i-Doser, un software che permette di ascoltare delle particolari tracce audio tramite le quali il nostro cervello percepisce i cosidetti battimenti binaurali.

Un prolungato ascolto di questo particolare audio permette di “sintonizzare” il nostro cervello  su certe particolari onde cerebrali tipiche di stati quali attenzione, tensione o sonno profondo. In pratica dovrebbero indurre artificialmente questi particolari stati di coscienza.

Non mi dilungo oltre a spiegare le particolarità di queste onde cerebrali, ma se volete un approfondimento andate qui (Wikipedia) o qui (come stimolare il cervello con i Binaural Beats).

Prima di arrivare a come generare questi suoni, vediamo rapidamente cosa sono.

Le onde cerebrali (elettroencefalogramma), nello spettro delle onde radio si collocano nella banda ELF (Extremely low frequency) in quanto vanno da un minimo di 0.1 Hz a un massimo di circa 42 Hz.

I più attenti avranno già capito l’inghippo: come faccio a riprodurre con un comune impianto stereo queste frequenze?

Risposta: non si può :)

MA si può usare un trucchetto, ovvero i battimenti binaurali. Se al nostro cervello applichiamo due differenti stimoli monofrequenziali (uno per orecchio), per piccole differenze di frequenza (intonazione) tra i due, noi percepiamo questi due toni e in più un terzo che è pari alla differenza in Hz tra i due. Detto questo appare piuttosto semplice il metodo per ingannare il nostro cervello a percepire frequenze come 10 Hz e roba del genere.

Lo script per Octave che segue (oltre ovviamente a essere compatibile con Matlab… basta togliere la prima riga) non fa altro che generare un file audio stereofonico, in cui nel canale Left è presente un tono puro ad una frequenza fissa e nel canale Right, un tono che parte da una frequenza superiore e si avvicina piano piano fino alla stessa frequenza del canale L.

Perché non è un tono fisso?

Risposta:  questo esempio è finalizzato a portare il cervello nello stato di sonno profondo (onde Delta ~ 0.1 Hz), per cui dovrebbe funzionare per coloro che fanno fatica a prendere sonno :) . La lenta discesa è necessaria perché il cervello va accompagnato piano piano (così dicono gli esperti :) ) fino allo stato desiderato.

Ora vediamo lo script (dovrebbe già essere ben commentato quindi non mi dilungo a descriverlo):

#!/usr/bin/octave
#Parametri
l=10;               #Lunghezza in minuti (MAX:10)
f0=432;             #Frequenza di partenza
D=20;               #Differenza di frequenza iniziale (freq dei battimenti)
fs=44100;           #sample rate
#Calcolo numero sample totali e base dei tempi
sample=60*l*fs;     #Numero totale di sample
t=[0:1:sample-1];   #Asse dei tempi
#Generazione dei 2 canali audio
out=zeros(sample,2);
freq=(f0+D-((D/2*t)/sample));
#Sinusoidi…
L=sin(2*pi*t*f0/fs)*0.9; #Frequenza fissa
R=sin(2*pi*t.*freq/fs)*0.9; #Frequenza discendente
#salvo il file
out(:,1)=L;
out(:,2)=R;
wavwrite(out,fs,’out.wav’);

Basta salvarlo con il nome che ci piace, per esempio binaural.sh e digitare il seguente comando per renderlo eseguibile:

chmod +x binaural.sh

Ora non ci resta che testarlo con il comando

./binaural.sh

Se tutto ha funzionato a dovere, dovrebbe essere comparso un file chiamato out.wav. Ora non dovete far altro che mettervi un paio di cuffie e cominciare a a indurvi lo stato cerebrale desiderato! :D

PS: Un limite riscontrato con octave, è che non è possibile creare file audio più lunghi di una decina di minuti per un semplice fatto di Out of Memory :) ma con Matlab a 64 bit dovreste poter riuscire a creare file più lunghi!

Buona dormita! :)

Linux Audio Plugins: novità in vista

Il panorama dei plugin audio per il pinguino ha da sempre spaventato gli esperti del settore in quanto offre una vasta gamma di soluzioni, apparentemente disorganizzate. Già tempo fa avevo espresso un parere su un giovane standard, che piano piano, ora sta emergendo. Ma diamo uno sguardo globale alla situazione

lv2_blue

lv2 logo

  • LADSPA: Standard affermato,“vecchio” e molto diffuso, ma ha delle grosse limitazioni (assenza di GUI, poco estendibile…)
  • DSSI: Prometteva bene nel campo dei software synthesizers, ma al giorno d’oggi, sembra morto.
  • LV2: uno standard giovane, nato per colmare le lacune di LADSPA (Ladspa Version 2), e sembra riuscirci.

Qualche dettaglio in più sullo standard LV2

LV2, offre uno standard ben studiato. Architettura modulare ed estendibile, e specifiche ben ordinate. Offre la possibilità di creare delle GUI (Graphical User Interface) tramite dei costrutti interni (se si necessita di GUI semplici), oppure con qualsiasi altro toolkit, per poter dare maggiore flessibilità ai programmatori in caso si necessiti qualche particolare feature.

LV2 prevede una catalogazione dei plugin in diverse tipologie per facilitare la ricerca all’utente finale. Oltre alla catalogazione per tipo, vi è anche una separazione tra quelli che sono i plugin di elaborazione del suono, e quelli di generazione del suono (es. synth). Proprio come avviene nel caso dello standard VST/VSTi, in cui si ha una separazione netta, tra plugin di elaborazione e i cosidetti VST Instruments.

Bene… ulteriore ordine.

Tuttavia, l’enorme diffusione di LADSPA, frena l’ascesa di questo standard, anche se oggi, si può contare un certo numero di plugin molto interessati e votati ad un ambito professionale (un paio di esempi: INVADA, lv2fil dei quali parlerò meglio in un altro post).

Per usare questi plugin, oggi ci sono solo un paio di alternative valide

Sulla compilazione di Ardour con il supporto LV2, non mi voglio inoltrare troppo ora. Ci sono comunque delle guide in rete. Ma vediamo cosa ci offre zynjacku/lv2rack.

In realtà non è un solo software ma sono 2. Zynjacku è un host per LV2 instruments, quindi caricherà solo synth e generatori. lv2rack invece è l’host per caricare i plugin di elaborazione (es. riverberi, compressori, flanger, …). Così come il più famoso jack-rack, offrono una semplice interfaccia per inserire in un rack virtuale i vari plugin LV2.

Anche questo è da compilare. Scaricate i sorgenti tramite git digitando da terminale il comando

git clone git://repo.or.cz/zynjacku.git

Orasiete pronti per la compilazione… con la mia karmik non ho dovuto installare dipendenze, anche perché ne avevo già un po’ installate, quindi non saprei dirvi cosa dovete scaricarvi per compilarlo :) (beh… una cosa che potete fare per cominciare è installare almeno le build-essentials ;) )

Ora non vi resta che avviare Jackd e avviare a vostra scelta zynjacku o lv2rack.

Buon testing a tutti!


					

Tangible Interface for control synthesizer on Linux

Funziona!!

fiducial id 0

fiducial id 0

Ora controllo un sintetizzatore modulare definito con ams senza toccare il PC e senza nessun controller midi, ma solamente appoggiando sul tavolo qualche fiducial marker :)

Spero di informarvi presto sugli eventuali sviluppi!

Per i curiosi, fate un giro qui! :)

Un arpeggiator diverso dal solito

Girovagando per la rete in modo apparentemente casuale, si trovano dei progetti interessanti. Alcuni validi, altri di dubbia utilità. Questo che vi mostro invece è un concetto diverso dal solito di vedere un arpeggiatore. In realtà qui si parla di una cosa a metà tra l’arpeggiatore e il sequencer, ma questi battono tutti dal punto di vista dell’interazione uomo-macchina.

LV2… il futuro?

LV2, come già detto in questo blog, è uno standard per lo sviluppo di plug-in e host, per la generazione e il processing audio. La differenza principale con il suo predecessore (LADSPA), è che gli LV2 hanno la possibilità di creare un’interfaccia grafica (come i più famosi VST e VSTi) per renderne più comodo l’utilizzo.

il logo

il logo...

Dal punto di vista delle potenzialità, questo progetto sembra molto promettente. Per ora non c’è ancora un grosso set di plug-ins, ma qualcosa si stà muovendo.

In attesa di qualche guida su come utilizzarli al meglio e quali potrebbero essere dei plug-in interessanti, vi lascio alcuni link per cominciare a fare qualche test :)

  • LV2 – il sito del progetto
  • Zynjacku – un host per plugin LV2 per Jackd, con funzionalità simili a Jack-rack (un buon punto di partenza no? :D)
  • ll-plugins – una buona raccolta di virtual instruments
  • Calf audio plugin – raccolta di plugin pensati per un uso professionale
  • SWT LV2 – porting dei plugin SWT dalla versione LADSPA
Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.