Come iniziare
ZynAddSubFX è un sintetizzatore software piuttosto complesso, con un gran numero di controlli. Perciò l’uso di ZynAddSubFX non è sempre ovvio.
Molte applicazioni sotto Linux trasportano il MIDI con AlSA e trasmettono l’audio con JACK. ZynAddSubFX può essere lanciato con questa configurazione eseguendo:
zynaddsubfx -I alsa -O jack -a
Questo imposta ALSA come driver input e JACK come driver audio, che dovrebbe tentare di connettersi automaticamente alla tua scheda audio, per via del flag -a. Se questa è la prima volta che lanci ZynAddSubFX, vedrai una schermata che ti lascia scegliere tra l’interfaccia per principianti e quella avanzata. Attualmente l’interfaccia beginner è deprecata, quindi è raccomandato usare l’interfaccia advanced.
Ora dovresti essere in grado di vedere la finestra principale di ZynAddSubFX, dalla quale puoi impostare patch, effetti e altre configurazioni generali, ma la cosa più importante è che fornisce i collegamenti tra le patch. ZynAddSubFX è uno strumento potente con una serie di patch di base, ma la vera forza sta dietro all’abilità di creare delle patch personali.
Per un utilizzo base, potrai usare il pulsante alla destra dell’etichetta enabled. Questo pulsante consentirà di selezionare lo strumento desiderato dai banchi disponibili in ZynAddSubFX. Per suonare note in ZynAddSubFX puoi usare la tastiera virtuale integrata (accessibile dal pulsante vK) oppure puoi connettere la tua tastiera al sistema e usare aconnect per connetterla in ZynAddSubFX (supponendo che si stia usando ALSA).
Questa finestra principale consente l’accesso a molte features più avanzate. Di cui alcune sono:
-
System Effects
-
Insertion Effects
-
Recording
-
Part Settings (strumento impostazioni del livello)
-
Master Settings
-
Microtonal Settings
Ad esempio, per utilizzare la funzione di registrazione deve essere selezionato un file wave dal menù di registrazione, poi può essere avviata con il pulsante record e stoppata con il pulsante stop. Questo è un modo semplice e veloce di registrare alcuni samples da ZynAddSubFX, anche se ci sono strumenti con caratteristiche più complete disponibili tramite gli strumenti di registrazione di JACK.
Note
|
Dopo aver premuto record, il file wave non partirà la registrazione fino a quando un nuovo tasto non sarà premuto da una sorgente MIDI esterna o dalla virtual keyboard. Le proprietà dei System Effects e degli Insertion Effects sono accessibili e disponibili così come le proprietà di ogni strumento. |
Filters
ZynAddSubFX offre diversi tipi di filtri, che possono essere usati per modellare lo spettro di un segnale. I parametri primari che influenzano le caratteristiche del filtro sono cutoff, resonance, filter stages e il tipo di filtro (filter type).
-
Cutoff (frequenza di taglio): Questo valore determina quale frequenza segna il punto di cambiamento per il filtro. In un filtro low-pass (passa-bassi) questo valore segna il punto da cui le frequenze alte verranno attenuate.
-
Resonance: La Resonance di un filtro determina l’enfatizzazione del filtro sulla frequenza di taglio. In ZynAddSubFX è rappresentata dal fattore Q, che è definito come la frequenza di taglio diviso la larghezza di banda (bandwidth). In altre parole un più alto valore di Q causa un picco molto più stretto e risonante.
-
Stages: Il numero di fasi di filtrazione in un dato filtro descrive quanto bruscamente è in grado di applicare cambiamenti nella risposta in frequenza.
I filtri analogici di base (analog) che ZynAddSubFX offre sono mostrati di seguito, con la frequenza centrale segnata con una linea rossa. I filtri a stato variabile (state variable) dovrebbero essere molto simili.
Come detto in precedenza, il valore Q di un filtro influenza quanto concentrata è l’energia del segnale nella frequenza di taglio; il risultato di differenti valori di Q sono mostrati sotto.
Tip
|
Per molti suoni analogici classici, alti valori di Q sono ussati sugli sweeping filters. Un semplice low-pass filter con Q alto modulato da un forte envelope solitamente è sufficiente per avere un buon suono. |
Infine, l’effetto dell’ordine del filtro può essere visto sotto. Questo è approssimativamente il numero di fasi del filtro (filter stages). Per patches più complesse è importante capire che la nitidezza in più nel filtro non è gratuita, in quanto richiede molti più calcoli in corso di esecuzione; questo fenomeno è più facilmente visibile nel subsynth, dove è facile avere bisogno di centinaia di filter stages per produrre una certa nota.
User Interface
-
C.freq: Cutoff frequency
-
Q: Level of resonance for the filter
-
V.SnsA.: Velocity sensing amount for filter cutoff
-
V.Sns.: Velocity sensing function
-
freq.tr: Frequency tracking amount. When this parameter is positive, higher note frequencies shift the filter’s cutoff frequency higher.
-
gain: Additional gain/attenuation for filter
-
St: Filter stages
LFO
Introduzione
"LFO" significa Low Frequency Oscillator. Questi oscillatori non sono usati per fare suoni da soli, ma per cambiare alcuni parametri (come le frequenze, le ampiezze o i filtri).
L’LFO ha alcuni parametri di base:
-
Delay: Questo parametro imposta il tempo tra l’inizio della nota e l’inizio dell’LFO
-
Start Phase: La posizione che avrà l’LFO alla partenza
-
Frequency: La velocità dell’LFO (quanto velocemente il parametro è controllato dai cambiamenti dell’LFO)
-
Depth: L’ampiezza dell’LFO (quanto il parametro è controllato dai cambiamenti dell’LFO)
Un altro importante parametro dell’LFO è la forma (shape). Ci sono molti tipi di LFO in base alla forma. ZynAddSubFX supporta le seguenti forme:
Un altro parametro è LFO Randomness (casualità dell’LFO). Esso modifica casualmente l’ampiezza o la frequenza dell’LFO ed in ZynAddSubFX puoi scegliere quanto, con questo parametro. Nelle seguenti immagini sono mostrati alcuni esempi di casualità e come cambia la forma d’onda triangolare dell’LFO.
Altri parametri sono:
-
Continous mode: Se si utilizza questa modalità, l’LFO non partirà da "zero" ad ogni nuova nota, ma sarà continuo. E' molto utile applicato sui filtri, per fare interessanti sweeps.
-
Stretch: Controlla quanto la frequenza dell’LFO cambia in base alla frequenza della nota. Si può passare da stretch negativo (la frequenza dell’LFO diminuisce sulle note più alte) a zero (rimane la stessa in tutte le note) a stretch positivo (aumenta sulle note più alte).
User Interface
In ZynAddSubFX i parametri dell’LFO sono mostrati così:
Questi parametri sono:
-
Freq: LFO Frequency
-
Depth: LFO Depth
-
Start: LFO Start Phase - Se questo knob è al valore più basso, LFO Start Phase sarà random
-
Delay: LFO Delay
-
A.R.: LFO Amplitude Randomnes
-
F.R.: LFO Frequency Randomness
-
C.: LFO Continous Mode
-
Str.: LFO Stretch - Nell’immagine sopra LFO Stretch è impostato a zero
Envelopes
Introduzione
Gli inviluppi controllano come cambiano nel tempo l’ampiezza, la frequenza o il filtro.
Amplitude Envelopes (inviluppi di ampiezza)
Questi inviluppi controllano l’ampiezza del suono. In ZynAddSubFX, gli inviluppi di ampiezza possono essere lineari o logaritmici. Nell’immagine seguente sono mostrate le differenze tra questi inviluppi.
L’inviluppo di ampiezza è diviso in: * Attack: Inizia all’attacco della nota (Note On). Il volume inizia da 0 al massimo. In ZynAddSubFX l’attack è sempre lineare * Decay: Il volume scende dal valore massimo ad un livello chiamato "Sustain level" * Sustain: Il volume rimane costante fino a quando il tasto non viene rilasciato (Note Off). Dopo questo, avviene l’ultima fase. * Release: Il volume scende a zero.
Frequency Envelopes
Questi inviluppi controllano la frequenza (o, più esattamente, il pitch) degli oscillatori. La seguente figura disegna le fasi di questi inviluppi.
La linea puntinata rappresenta il pitch reale del suono senza inviluppo.
Gli inviluppi di frequenza sono divisi in 3 fasi:
-
Attack: Inizia all’attacco della nota (Note On). La frequenza inizia da un certo valore e "scivola" alla reale frequenza della nota.
-
Sustain: La frequenza è la stessa per tutto il periodo di Sustain
-
Release: Questa fase inizia con il Note Off e scala la frequenza della nota ad un certo valore
Filter Envelopes
Questi inviluppi controllano la frequenza di cutoff dei filtri e sono divisi in:
-
Attack: Inizia all’inizio della nota (Note On). La frequenza di cutoff inizia ad un certo valore e scala ad un altro
-
Decay: La frequenza di cutoff continua a scivolare verso il valore reale della frequenza di cutoff del filtro (linea puntinata)
-
Sustain: La frequenza di cutoff è la stessa per tutto il periodo di Sustain (linea puntinata)
-
Release: Questa fase inizia con il Note Off e scala la frequenza di cutoff della nota ad un certo valore
Freemode Envelopes
Per tutti gli inviluppi c'è una modalità che consente all’utente di impostare un numero arbitrario di fasi e punti di controllo. Questa modalità è chiamata Freemode.
L’unica fase che rimane sempre definita è il Sustain, dove gli inviluppi si bloccano fino ad un evento Note Off.
User Interface
Tutti i tipi di inviluppi hanno alcuni controlli comuni:
-
E: Mostra una finestra che può far vedere la vera forma dell’inviluppo o convertirlo in Freemode per editarlo
-
Stretch: Come l’inviluppo è allungato in base alla nota. Sulle note più alte gli inviluppi sono più corti delle note più basse. Nel valore più a sinistra lo stretch è zero. Il valore più a destra indica un allungamento del 200%; ciò significa che l’inviluppo è allungato circa 4 volte/ottava.
-
frcR: Release forzato. Se questa opzione è settata su On, il rilascio andrà al valore finale anche se la fase di Sustain non è stata completata. Di solito questo parametro è settato.
I parametri degli Amplitude Evelopes in ZynAddSubFX sono:
-
A.dt: Durata Attack
-
D.dt: Durata Decay
-
S.Val: Valore di Sustain
-
R.dt: Release time
-
L: Se questa opzione è settata l’inviluppo è lineare, altrimenti sarà logaritmico.
Per i Frequency Envelopes l’interfaccia ha i seguenti parametri:
-
A.val: Valore di Attack
-
A.dt: Durata Attack
-
R.dt: Release time
-
R.val: Valore di Release
I Filter Evelopes hanno i parametri:
-
A.val: Valore di Attack
-
A.dt: Durata di Attack
-
D.val: Valore di Decay
-
D.dt: Decay time
-
R.dt: Release time
-
R.val: Valore di Release
I Freemode Envelopes hanno una finestra separata per impostare parametri e controlli:
-
Control points (punti di controllo): Puoi muovere i punti usando il mouse. In basso a destra nella finestra viene mostrata la durata totale dell’inviluppo. Se si clicka su un control point verrà visualizzata la durata della fase in cui è quel punto.
-
Freemode: Questo pulsante attiva o disattiva la modalità Freemode
-
Add Point: Aggiunge un punto dopo il punto correntemente selezionato. Puoi selezionare un punto clickandoci su.
-
Delete point: Rimuove il punto dall’inviluppo.
-
Sust.: Imposta il punto di Sustain. E' mostrato usando la linea gialla.
-
Str.: Envelope stretch
AdSynth
AdSynth, principalmente un motore di sintesi additiva, è uno dei tre principali motori di sintesi disponibili in ZynAddSubFX. Il concetto base di questo motore è la somma di un insieme di voci, ciascuno dei quali consiste in oscillatori.
High Level (Global)
Il livello globale di AdSynth consiste negli elementi mostrati nella figura sotto:
Il livello globale di AdSynth è quasi interamente composto dagli elementi precedentemente discussi. Comunque appaiono qui alcune nuove features, come: il rilevamento di velocità (velocity sensing), punch, opzioni di detune e relativa bandwidth, resonance.
Il rilevamento di velocità è semplicemente una trasformazione esponenziale dalla velocità della nota ad alcuni cambiamenti di parametro (!?). Il diagramma sotto mostra come il velocity sensing controlla questa traslazione in tutto il range di velocity delle note possibili.
Il punch di una nota in AdSynth è un’amplificazione costante dell’output alla partenza della nota, con una lunghezza determinata dal punch time e stretch e l’ampiezza determinata da punch strength e velocity sensing. Il controllo relBw nel riquadro di frequenza è di fatto un moltiplicatore per "scordare" (detuning) tutte le voci di una nota.
Note
|
TODO Talk about resonance |
La somma delle voci passa attraverso filtri e amplificazione per produrre il suono finale. Questro potrebbe far pensare che ad-note è solo un mucchio di post-elaborazione minore e che a questo livello molto della generazione del suono è nascosta.
Voices
La voce da accesso ad un configurazione simile dei parametri globali più altre cose come il modulatore, l’oscillatore e features di unison.
Modulation
Tra le opzioni di modulazione si può selezionare:
-
Morph
-
Ring Modulation
-
Phase Modulation
-
Frequency Modulation
-
Disabled
Unison
Unison è utile nel creare il suono tipo chorus di più oscillatori simultanei.
Oscillator
Note
|
TODO show waveforms, talk about distortions somewhere, etc |
Controller
General
-
ModWh: Modulation Wheel depth (profondità della Modulation Wheel)
-
Exp MWh: Exponential Modulation Wheel (cambia la scala di mudulazione in esponenziale)
-
BwDpth: Bandwidth Depth (profondità della Bandwidth)
-
Exp BW: Exponential Bandwidth (cambia la scala di Bandwidth in esponenziale)
-
PanDpth: Panning Depth (profondità del pan)
-
FltQ: Filter Q (resonance) depth
-
FltCut Filter Cutoff frequency depth (profondità della frequenza di taglio)
-
Expr: Attiva/disattiva Expression
-
Vol: Attiva/disattiva la ricezione di Volume controller
-
FMamp: Attiva/disattiva la ricezione di Modulation Amplitude controller (76)
-
Sustain: Attiva/disattiva sustain pedal
-
PWheelB.Rng (cents): Pitch Wheel Bend Range (cents; 100 cents = 1 semitono)
Portamento
-
Rcv.: Controlla se la parte riceve il Portamento - On/Off (65)
-
time: La durata del Portamento
-
thresh: La soglia (Threshold) del Portamento. Rappresenta il minimo o il massimo numero di semitoni (o centesimi di semitono) richiesti per lo start del Portamento. La differenza è calcolata tra l’ultima nota e la corrente.
-
th.type: Il tipo di Threshold Se selezionato significa che il Portamento si attiva quando la differenza delle frequenze è al di sopra della soglia ("thresh"); non selezionato si attiva quando è al di sotto della soglia.
Note
|
La Threshold si riferisce alle frequenze e non alle note MIDI (si potrebbe tenere in considerazione se si usano scale microtonali). |
Proportional Portamento
-
Propt.: Se il Portamento è proporzionale al rapporto (Ratio) delle frequenze
-
Prp. Rate: Ratio necessaria per raddoppiare il tempo del Portamento
-
Prp. Dpth
Resonance
-
CFdpth: Controlla la profondità del centro della Resonance
-
BWdpth: Controlla la profondità della larghezza di banda (Bandwidth) della Resonance
Persistence
Come la gran parte delle applicazioni ZynAddSubFX consente di salvare il tuo lavoro e ricaricarlo.
Salvare tutto
Uno dei modi più semplici di salvare il tuo lavoro è quello di salvare l’intera sessione. Questo può essere fatto dal menu File e il risultato sarà la creazione di un .xmz file. Una volta creato, questo file conterrà le tutte le impostazioni della sessione, come le accordature microtonali, tutte le patch, tutti i tipi di effetti, ecc…
Salvare delle parti
In alcuni casi salvare tutto non è quello che si desidera. Di seguito c'è un esempio di salvataggio di una patch.
Patches
Per salvare una patch, si può salvare dal menu strumenti o dalla bank window.
Con il menu strumenti si può solo salvare il file in una dato percorso con l’estensione .xiz.
Con il menu dei banchi si può assegnare una patch ad un certo slot con un banco. Questo strumento rimarrà qui per un futuro uso fin quando non viene cancellato. Per vedere la posizione fisica del file .xiz si può controllare la finestra in File→Settings→Bank_Root_Dirs, per vedere i percorsi dei banchi.
Note
|
Devi avere i permessi di scrittura per aggiungere uno strumento al banco. |
Presets
Avete un’impostazione favorita per un inviluppo o un oscillatore difficile da rifare? Allora i preset fanno al caso vostro. I preset consentono di salvare le impostazioni per ogni componente che supporta operazioni di copia/incolla. Questo viene fatto con i prest file (.xpz), che sono memorizzati nelle cartelle indicate da File→Settings→Preset_Root_Dirs.
Riepilogo
xmz Everything xiz Instrument xsz Scale Settings xpz Presets
Appendice A: Default MIDI
001 - Modulation Wheel 007 - Volume 010 - Pan 011 - Expression 064 - Sustain 065 - Portamento Enable 071 - Filter Q 074 - Filter Cutoff 075 - Bandwidth(*) 076 - Modulation Amplitude(*) 077 - Resonance Center Frequency(*) 078 - Resonance Bandwidth(*) 120 - All Sounds Off 121 - Reset All Controllers 123 - All Notes Off
Le voci con (*) non rientrano nelle specifiche General Midi.
Appendice B: Compilare ZynAddSubFX
Introduzione a CMake
ZynAddSubFX usa CMake come suo sistema di compilazione unificato. CMake è capace di leggere semplici build script dall’albero dei sorgenti e creare da questo un sistema di compilazione specifico per la piattaforma. Questo sistema di compilazione può avere la forma di VisualStudio project files, Unix Makefiles o XCode project files. CMake è capace di individuare automaticamente le dipendeze esterne e consente di attivare/disattivare la compilazione del modulo e di configurare varie opzioni di compilazione.
L’uso di un sistema di compilazione unificato consente di evitare rotture di compilazione che erano presenti nel precedente metodo di compilazione, ovvero quello di mantenere tre obiettivi di compilazione separati per VisualStudio, Unix "make" and XCode. Si riduce anche l’onere della manutenzione per gli sviluppatori base e collaboratori. Nell’insieme, l’uso di CMake dovrebbe portare come risultato una migliore coerenza e build più stabili su ogni piattaforma per gli utenti finali e una maggiore produttività nello sviluppo di nuove versioni. Speriamo che con una maggior coerenza di builds tra piattaforme renderà più facile per gli sviluppatori utilizzare la development version di ZynAddSubFX e aiutare a contribuire ai testing e alle migliorie, portando ad un codice di più alta qualità.
Quick start guide
Per i più impazienti, qui c'è una guida veloce su come compilare immediatamente ZynAddSubFX da sorgenti.
#enter the source directory cd zynaddsubfx #make a directory for an out-of-source build mkdir build cd build #generate a cmake build project here from the cmake root, which is #found in the directory below the current one cmake .. #OPTIONAL: Adjust compile variables in the Cache file: ccmake . #And finally, build as usual using make make
Appendix C: Ottenere ZynAddSubFX
Normalmente ci sono diversi modi per ottenere una copia di ZynAddSubFX.
- SourceForge
- Distribuition
-
apt/yum/others
- Git
-
git clone git://git.code.sf.net/p/zynaddsubfx/code zynaddsubfx
Introduzione a Git
Per coloro che vogliono vivere "on the bleeding edge" o chi vuole essere certo che la prossima release abbia meno bug, si può avere il codice con git. Git è usato per gestire il codice sorgente di questo progetto ed è utile per ottenere velocemente e facilmente una copia "up-to-date" del codice sorgente.
Ottenere il codice sorgente
Per avere una copia dei sorgenti di ZynAddSubFX tutto il necessario da fare è:
git clone git://git.code.sf.net/p/zynaddsubfx/code zynaddsubfx cd zynaddsubfx #Download additional resources git submodule init git submodule update
Ora dovresti essere nella directory del codice sorgente.
Per compilare facilmente si guardi l’Appendice B del manuale.
Dare un’occhiata ai branch
Diciamo che lo sviluppo si è esteso ad una creazione di una feature che si vuole vedere in anteprima. Per il bene di questa guida, supponiamo che il nome del branch della feature che verrà è foo.
#checkout the foo branch from sourceforge git checkout --track -b foo origin/foo #lets checkout the primary branch again git checkout master #hop back to the other branch git checkout foo
Ora si dovrebbe essere in grado di cambiare branches e andare nella build-directory (come descritto in Appendice B) e ricompilare ZynAddSubFX.
Note
|
Quando si usano i branches può venir meno un po' di stabilità. |