Table of Contents

Musica MIDI con Rosegarden

Obiettivo: poter comporre musica MIDI ed ascoltarla usando Rosegarden come software di notazione.

Sintetizzatore Timidity (non funziona)

Il primo tentativo è stato fatto con Timidity (dal pacchetto omonimo) che dovrebbe fornire la funzione di sintetizzatore MIDI via software. In pratica il software Timidity carica i campioni audio (soundfont forniti dal pacchetto freepats) e si mette in esecuzione come servizio. Quando riceve degli eventi MIDI da altri software (es. Rosegarden), effettua il rendering del suono lo invia come audio digitale al sistema ALSA.

In effetti non funziona, perché Rosegarden invoca automaticamente il demone JACK audio e tutto smette di funzionare. Vedere in proposito il bug 578859.

Questa la procedura seguita:

apt-get install rosegarden timidity
ps uax | grep timidity                # See: "timidity -Os -iAD" is running
                                      # as a daemon, output to ALSA.
timidity teddybear.mid                # Render and playback directly a MIDI track
aplaymidi --port 128:0 teddybear.mid  # Play the track via Timidity MIDI synth

# Start Rosegarden and import the MIDI track.
# From menu Studio, Manage MIDI Devices: connect the playback device
#   "General MIDI Device" to "128:0 TiMidity port 0 (write)"
# Play the track: NO AUDIO!!!

# While Rosegarden is running:
aplaymidi --port 128:0 teddybear.mid  # NO AUDIO!!!

Si è provato anche a caricare i seguenti moduli kernel, ma il risultato non è cambiato:

Per risolvere il problema bisognerebbe avviare Timidity nella modalità output JACK invece che ALSA. In quel modo - quando parte Rosegarden - le connessioni JACK vanno automaticamente a posto e tutto funziona. Purtroppo al bootstrap non c'è il demone JACK in esecuzione e quindi è inutile mettere il parametro -Oj in /etc/default/timidity: il demone non partirebbe.

Per provare manualmente questa soluzione (non consigliato):

Questa soluzione in definitiva non è consigliata. È preferibile sostituire Timidity con Fluidsynth. È una soluzione tutta in spazio utente, senza bisogno di intervenire come root.

Sintetizzatore Qsynth (Funziona)

Si installano i pacchetti qsynth, fluidsynth e qjackctl. Per dipendenza vengono installati anche i campioni audio contenuti in fluid-soundfont-gm e fluid-soundfont-gs.

Si lancia qsynth, il front-end del sistema fluidsynth. Dal pulsante Setup si controllano le impostazioni:

Si lancia qjackctl, il front-end del sistema JACK. Dal pulsante Setup si controllano le impostazioni:

Quindi si avvia Rosegarden. Il programma dovrebbe provvedere da solo ad avviare il server JACK se questo non è in esecuzione e a fare le giuste connessioni JACK (per il playback device: Rosegarden General MIDI Device ⇒ 129:0 Synth input port ⇒ Sistema ALSA). Verificare dal menu di Rosegarden Studio, Manage MIDI Devices e dal menu Connect di qjackctl.

JACK: Connessione Audio di qsynth ad ALSA In particolare nella scheda Audio di qjackctl deve risultare che le porte output di qsynth denominate l_00 e r_00 sono collegate alle porte input di system denominate playback_1 e playback_2.