User Tools

Site Tools


doc:appunti:linux:tux:midi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:appunti:linux:tux:midi [2017/01/22 14:26] – created niccolodoc:appunti:linux:tux:midi [2017/01/22 17:33] (current) – [Sintetizzatore Timidity (non funziona)] niccolo
Line 1: Line 1:
 ====== Musica MIDI con Rosegarden ====== ====== Musica MIDI con Rosegarden ======
  
-Obiettivo: poter comporre musica MIDI ed ascoltarla. Usare Rosegarden come software di notazione.+Obiettivo: poter comporre musica MIDI ed ascoltarla usando Rosegarden come software di notazione.
  
-Installare i pacchetti Debian (provato su Jessie):+===== Sintetizzatore Timidity (non funziona=====
  
-  * **rosegarden** editor di musica sequencer audio/MIDI +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. 
-  * **timidity** software per rendering audio, sequencer MIDI, ecc.+ 
 +In effetti **non funziona**, perché Rosegarden invoca automaticamente il demone JACK audio e tutto smette di funzionare. Vedere in proposito il [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578859|bug 578859]]. 
 + 
 +Questa la procedura seguita: 
 + 
 +<code> 
 +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!!! 
 +</code> 
 + 
 +Si è provato anche a caricare i seguenti moduli kernel, ma il risultato non è cambiato: 
 + 
 +  * **snd-seq-midi** (che richiede snd-seq-midi-event, snd-rawmidi) 
 +  * **snd-seq-virmidi** 
 + 
 +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): 
 + 
 +  * Fermare il demone timidity se è in esecuzione. 
 +  * Avviare **qjackctl** da utente normale, quindi avviare il demone JACK usando il pulsante //Start//
 +  * Avviare da utente normale **''timidity -Oj -iAD''**. 
 +  * Verificare da **qjackctl** (pulsante //Connect//) che l'Audio TiMidity sia connesso al system (ALSA). 
 +  * Avviare Rosegarden, dal menu Studio, Manage MIDI Devices verificare che si sta usando TiMidity. 
 + 
 +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** **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: 
 + 
 +  * MIDI, Enable MIDI Input, MIDI Driver: alsa_seq, MIDI Bank Select mode: GM 
 +  * Audio, Audio Driver: jack 
 +  Soundfonts: Open /usr/share/sounds/sf2/FluidR3_GM.sf2 
 + 
 +Si lancia **qjackctl**, il front-end del sistema JACK. Dal pulsante //Setup// si controllano le impostazioni: 
 + 
 +  * Settings: Server prefix: jackd, Driver ALSA, Input Device: (scheda audio)Output Device (scheda audio) 
 +  * Si avvia JACK con il pulsante START 
 + 
 +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. 
 + 
 +{{ .:qjackctl-connect-audio-qsynth-system.png?direct&200|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**.
  
-In pratica **Rosegarden** è il software che consente la composizione della musica (pentagramma, sequencer MIDI, ecc.) mentre **Timidity** simula uno strumento musicale MIDI caricando gli appositi //banchi musicali// e producento i suono tramite il sistema audio digitale GNU/Linux. 
doc/appunti/linux/tux/midi.1485091577.txt.gz · Last modified: 2017/01/22 14:26 by niccolo