Archivio | Software RSS per la sezione

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.

JackD mixers: altri “master controller” per Jack

Dopo aver segnalato un mixer per gestire in modo centralizzato diverse applicazioni che si appoggiano al server audio Jack, vi presento altre 3 applicazioni che svolgono lo stesso lavoro, ma con features diverse. Sono tutte in fase di sviluppo quindi possono mancare alcune features utili… attendiamo:

  • JackMiniMix (minimale ma con la possibilità di essere controllato via OSC!! molto comodo se si dispone di un controller hardware esterno)
  • Jackmaster (molto promettente e ricco di features… da implementare anche effetti LADSPA in insert)
  • JackMix (utile, ma a mio avviso l’interfaccia è migliorabile :) )

Per ora è tutto… se avete altre segnalazioni fatevi avanti :)

Jack Mixer: un mixer per le vostre applicazioni audio

Vi presento un’applicazione che a potrebbe risultarvi utile in certe situazioni.

Io, come credo molti di voi che leggete questo blog, mi sono trovato nella necessità di avere un mixer centralizzato per gestire i volumi delle miriadi di “jack-applicazioni” aperte contemporaneamente :)

La procedura standard in questo caso prevede la regolazione dei volumi di ogni flusso attraverso la singola applicazione… un po scomodo!

mixer01

Con jack Mixer posso farlo in modo centralizzato, gestendo ogni porta (ingresso o uscita) come un canale di un mixer. Può essere utile anche in caso si disponga di una scheda audio multitraccia che non abbia un’interfaccia mixer incorporata (come Envy24 control o Echomixer) Jack mixer ci viene incontro svolgendo queste funzioni a livello applicazione. E’ un progetto abbastanza giovane, quindi non ancora completo, ma la sua mansione la svolge egregiamente. Le mancanze che a mio avviso potrebbero “fare la differenza” sono in sostanza 3:

  • possibilità di gestire bus (sottogruppi e mandate)
  • possibilità di salvare delle patch (però con LASH forse si può ovviare a questo problema, non ho ancora testato questa feature)
  • supporto a superfici di controllo MIDI/OSC (darebbe a jack mixer un aspetto decisamente PRO)

Queste mancanze penso che siano dovute alla tenera età di questo progetto e spero che cresca bene in questa direzione! Ora veniamo all’aspetto tecnico dell’installazione. I sorgenti potete prelevarli da qui. Nella mia Ubuntu Studio Intrepid Ibex 8.10 64bit, le dipendenze che ho dovuto installare sono poche, ma questo è dovuto anche al fatto che ho già compilato un po di cose, quindi facilmente alcune dipendenze erano già installate. Vediamo quello che ho dovuto aggiungere:

$ sudo apt-get install swig python-fpconst python-lash libphat0 libphat0-dev

Fatto questo passiamo alla compilazione (io sono partito dalla versione SVN)

Continua a leggere…

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.