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

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:tux:midi [2017/01/22 16:22] – [Sintetizzatore Timidity (non funziona)] niccolodoc:appunti:linux:tux:midi [2017/01/22 17:33] (current) – [Sintetizzatore Timidity (non funziona)] niccolo
Line 5: Line 5:
 ===== Sintetizzatore Timidity (non funziona) ===== ===== Sintetizzatore Timidity (non funziona) =====
  
-Il primo tentativo è stato fatto con **timidity** che dovrebbe fornire la funzione di sintetizzatore MIDI via software. In pratica il software timidity carica i campioni audio (sound font) e si mette in esecuzione come servizio. Quando riceve degli eventi MIDI da altri software (es. Rosegarden), effettua il rendering del suono ed invia l'audio digitale al sistema ALSA.+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, quasi certamente 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]].+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: Questa la procedura seguita:
Line 13: Line 13:
 <code> <code>
 apt-get install rosegarden timidity apt-get install rosegarden timidity
-timidity teddybear.mid                # Render and playback a MIDI track +ps uax | grep timidity                # See: "timidity -Os -iAD" is running 
-timidity -iA                          # As root: start Timidity as a daemon+                                      # 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 aplaymidi --port 128:0 teddybear.mid  # Play the track via Timidity MIDI synth
  
Line 30: Line 31:
   * **snd-seq-midi** (che richiede snd-seq-midi-event, snd-rawmidi)   * **snd-seq-midi** (che richiede snd-seq-midi-event, snd-rawmidi)
   * **snd-seq-virmidi**   * **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** 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:
 +
 +  * 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**.
  
doc/appunti/linux/tux/midi.1485098559.txt.gz · Last modified: 2017/01/22 16:22 by niccolo