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
Last revisionBoth sides next revision
doc:appunti:linux:tux:midi [2017/01/22 16:23] – [Sintetizzatore Timidity (non funziona)] niccolodoc:appunti:linux:tux:midi [2017/01/22 17:30] – [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** 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                          # Start Timidity as a daemon (as the root user)+                                      # 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 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.txt · Last modified: 2017/01/22 17:33 by niccolo