Archivio | Software RSS for this section

LaTeX e LilyPond: incorpora spartiti nei tuoi documenti LaTeX

Chiunque abbia usato LaTeX per i propri documenti, conosce bene le potenzialità di questa suite. Template, equazioni, pubblicazioni, etc. etc…

Ma sei io volessi inseriere degli spartiti musicali (o anche solo 2 battute) nel mio documento? Per esempio se voglio scrivere un sunto di teoria musicale è sicuramente molto comodo poter scrivere al volo la scala di Do maggiore sul rigo, senza dovermela scrivere con altri programmi ed esportare immagini, che in seguito devo incorporare nel mio documento!

Bene, il pacchetto LilyPond (sito ufficiale) serve proprio a questo. In realtà questo software è nato principalmente solo come editor di score completo e professionale, ma ora possiamo usarlo come environment per i nostri documenti LaTeX.

La procedura prevede 2 passi di compilazione. Il primo passo avviene tramite il comando lilypond-book documeto.tex, e successivamente avviene la vera e propria compilazione tramite latex. Questo procedimento potrebbe risultare noioso, così ho deciso di crearmi un makefile. Lanciano un semplice make mi ritrovo con il mio dvi o pdf bello e pronto.

Questo makefile ha 3 opzioni: lanciando solo il make, compiliamo soltanto il dvi. Lanciando make pdf, otteniamo un pdf (ma va?? :) ). Come ultima opzione abbiamo il solito make clean, che ripulisce la cartella dai file e cartelle temporanei usati per la compilazione.

Vediamo come è fatto il makefile

# Makefile for LilyPond LaTeX
# Alessio Degani <alessio.degani@gmail.com>
LATEX = latexLP = lilypond-bookDVIPDF = dvipdf

SRC := $(shell egrep -l ‘^[^%]*\\begin\{document\}’ *.tex)
DVI = $(SRC:%.tex=%.dvi)
PDF = $(SRC:%.tex=%.pdf)
LPDIR = $(SRC:%.tex=%.lp)

all : dvi
clean :
-rm -rf *.log *.aux *.dvi *.bbl *.blg *.ilg *.toc *.lof *.lot *.idx *.ind *.ps *.pdf *~ $(LPDIR)
pdf:
if test -d $(LPDIR); then rm -rf $(LPDIR); fi
$(LP) –output $(LPDIR) $(SRC)
cd $(LPDIR); $(LATEX) $(SRC); $(DVIPDF) $(DVI)
cp $(LPDIR)/$(PDF) ./
dvi:
if test -d $(LPDIR); then rm -rf $(LPDIR); fi
$(LP) –output $(LPDIR) $(SRC)
cd $(LPDIR); $(LATEX) $(SRC)
cp $(LPDIR)/$(DVI) ./

Ora vediamo un file LaTeX di esempio pronto per essere compilato (preso dagli esempi di LilyPond)

\documentclass[a4paper]{article}
\begin{document}
Documents may freely mix music and text.
For example,
\begin{lilypond}
\relative c’ {
c2 g’2 \times 2/3 { f8 e d } c’2 g4
}
\end{lilypond}
Options are put in brackets.
\begin[fragment,staffsize=26]{lilypond}
c’4 f16
\end{lilypond}
\end{document}

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 :)

 

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! :)

Equalizzatore globale con PulseAudio

Una della mancanze che si fanno più sentire in una moderna linux box, è la possibilità di avere un equalizzatore globale che funzioni per tutte le applicazioni che usano l’audio in GNOME.

Sembra che qualche volenteroso sviluppatore si sia rimboccato le maniche per colmare questa lacuna che, inspiegabilmente, continuava a rimanere incolmata! :)

PulseAudio 15-band Equalizer

Questo equalizzatore funziona con la nuova versione di PulseAudio (0.9.20) o superiore. Quindi per chi usa Jaunty o Karmic, c’è bisogno di effetture degli aggiornamenti. Per chi già usa (quanti sono? :) ) Lucid Lynx non dovrebbero esserci problemi.

Tranquilli, non c’è da compilare nulla, ci sono i repository dei pacchetti belli e pronti.

Questo plugin per Pulse non è altro che un’interfaccia grafica ad un plugin LADSPA che fornisce un equalizzatore a 15 bande. Esso può anche caricare i preset di VLC. Il plugin scelto fa parte del pacchetto swh-plugins, il quale si può installare da qualsiasi ubuntu tramite il comando:

$ sudo apt-get install ladspa-sdk swh-plugins

Per maggiori informazio sull’installazione e l’aggiunta dei repository necessari vi rimando al thread ufficale su UbuntuForums.

Plugin Audio professionali per Linux? Si può!

Ho già parlato del giovane standard LV2 per plugin audio in ambiente linux.

Ora volevo segnalarvi qualche plugin interessante, che sfutta le qualità relative a questo nuovo standard. Questi sono utili in fase di mastering (compressori) e in fase di mixing (il riverbero è molto carino).

Il primo è un bundle che contiene riverberi, compressori, phaser, … Si chiama INVADA. Potete scaricarlo da qui.

invada-lv2-plugin

INVADA compressor

Un altro plugin interessante è lv2fil, un bel parametrico a 4 bande. Da provare (scaricabile qui)

lv2fil

lv2fil

Finalmente dei plugin interessanti, con un’interfaccia gradevole e usabile :)

Per le istruzioni riguardanti i vari hosto lv2, vi rimando al mio precedente post!

Saluti

Jack-audio: applicazioni utili ma (quasi) sconosciute

Chiamarle sconosciute forse è esagerato… diciamo che sono quelle applicazioni meno famose che si trovano solo se andiamo a cercarle di proposito! :)

Questo brevissimo post ha infatti il duplice scopo divulgativo-promemoria per me.

Ecco le applicazioni

  • a2jmidid: è a tutti gli effetti un bridge che permette di collegare client (r e w) MIDI che usano l’interfaccia JACK a quelli che usano ALSA e viceversa. Per una pacifica convivenza tra applicazioni “vecchie” e quelle che usano il “nuovo” MIDI di JACK
  • jack-keyboard: dal nome si intuisce facilmente che è la controparte del noto vkeybd che sfrutta il MIDI di JACK. In pratica fornisce una tastiera virtuale con qualche feature in più rispetto a vkeybd (ad esempio un numero maggiore di ottave di estensione)
  • QJackMMC & JackCtlMMC: sono 2 programmi (GUI e riga di comando) che permettono di connettere devices che mandano messaggi MMC (Midi Machine Code) in modo da poter comandare il transport di JACK (sincronozzazione, start, stop, …). Utile in caso di presenza di outboard con controlli MMC.

Se avete altre segnalazioni… segnalate pure :)

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.

Iscriviti

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