Le espansioni Roland “Wave Expansion” e “SuperNATURAL Expansion”: formati compressi e 16 bit lineari
Il 16 Marzo Roland ha presentato i nuovi Synth/Workstation Fantom06/07/08 che, a causa della User Memory Flash di 256 MByte, ha posto tutta una serie di domande sulla reale capienza di tale memoria che condivide e può ospitare le “Wave Expansion” (EXZ001-EXZ015), le “SuperNATURAL Expansion” (EXSN01-03) e gli User samples e multisamples utilizzabili all’interno della sintesi Zen-Core.
Il dubbio principale nasce dal fatto che i nuovi Fantom0 sono venduti con all’interno le tre espansioni SuperNATURAL Acoustic Piano1 - SuperNATURAL Acoustic Piano2 e SuperNATURAL Electric Piano 1: tali espansioni, che tra l’altro possono essere anche cancellate, occupano 120 MByte (46% della capienza complessiva) lasciando uno spazio libero pari a 136 MByte che è quello che ci si ritrova acquistando il Synth.
Ciò che ha creato notevoli perplessità è che in tali 136 MByte è possibile caricare ben 4 espansioni EXZ, nonostante il fatto che ciascuna di queste è un file di dimensione compresa tra i 96 e i 128 MByte. Come è possibile caricare dei file
superiori a 400 MByte, in uno spazio della flash di 136 MByte?
Grazie alla possibilità di cancellare le 3 espansioni SuperNATURAL, è possibile liberare del tutto i 256 MByte della Flash
e poi caricare fino a 8 espansioni EXZ, nonostante la capienza compressiva dei file (si scaricano da RolandCloud con il RC Manager) è di circa 900 MByte, valore più di tre volte superiore rispetto alla Flash disponibile.
Altra domanda a cui rispondere: come è possibile che i file delle tre espansioni SuperNATURAL, che occupano complessivamente 440 Mega, possano occupare solo 120 Mega quando vengono caricate nella flash?
La risposta è molto semplice: dai file scaricati tramite RCM (Roland Cloud Manager) e caricati in Fantom0 tramite USB, viene trasferita nella Flash solo una piccola porzione dei dati presenti
nei file. Stessa cosa succede per altri synth Roland quali RD-88, AX Edge e Jupiter X/XM.
Per capire meglio, occorre fare un piccolo passo indietro nel tempo e tornare agli anni 1988-1990 in cui Roland presenta la famiglia dei Moduli/Synth U-110/U-220 e U-20, D-70: è il primo passo di Roland nell’utilizzo dei Multisample che sono memorizzati nelle ROM e nelle Card di espansione.
Per risparmiare prezioso spazio, Roland adotta una tecnica di compressione chiamata RS-PCM, molto probabilmente acronimo di "Reduced Size PCM". Tale codifica, probabilmente non particolarmente efficiente, viene subito abbandonata.
E’ un primo passo verso la ingegnerizzazione di un nuovo codec di compressione chiamato FCE-DPCM che per la prima volta viene utilizzato nella Flash del JD-800 (è il 1991): tutti i synth Roland successivi, dalla famiglia JV e XV degli anni 90, passando ai vari moduli GM/GS, fino ai recentissimi Integra-7 (2012), FA-06/8 (2014) utilizzano tale codifica di compressione.
Roland non ha mai reso note le caratteristiche di questo codec per evidenti motivi di copyright, ma ha dato la possibilità agli utenti “smanettoni” di curiosare su tale formato grazie al fatto che è utilizzato per esempio nelle varie espansioni liberamente scaricabili su
axial.roland.com o nella schedina SD presente all’interno di Integra-7.
Ad oggi, l’unico utente che ha dichiarato di essere riuscito a decodificare tale codec è stato il WebMaster del sito
dtech.lv che tra l’altro, a prova delle sue capacità, ha reso disponibile, qualche anno fa, il prezioso contenuto della FlashROM dei campioni del JD800 nella versione originale (3 MByte compressa nel formato FCE-DPCM) e nel corrispondente formato in chiaro a 16 bit lineari (dimensione di poco inferiore ai 6 MByte).
Riguardo la qualità di tale codec è noto che ha un rapporto di compressione variabile che riduce la dimensione di un fattore compreso tra 1:2 e 1:3 e che dipende dal tipo di campioni di origine (lo vedremo tra breve): l’autore che lo ha decodificato lo descrive come altamente ottimizzato, tanto da avere una dinamica comparabile a quella di un campione a 24 bit lineare con piccoli artefatti evidenti solo negli attacchi più rapidi.
Nel 2019 arriva il Fantom e per la prima volta i multisamples utilizzati per le espansioni esterne sono nel formato 16 bit lineare: il download delle espansioni Wave Expansion (EXZ001-EXZ015) lo si poteva effettuare sempre tramite http://axial.roland.com/ in quanto non esisteva ancora Zenology PRO che debutta nell’anno successivo, (12 maggio 2020) all’interno del pacchetto Roland Cloud.
Tali file EXZ, oggi inutilizzabili con i nuovi firmware di Fantom, hanno una dimensione ridotta rispetto a quelli scaricabili oggi tramite RCM in quanto contengono solo tale versione con samples codificati a 16 bit lineari e quindi non compressi.
Con l’avvento di Zenology, Roland aggiunge due novità: la prima è l’inserimento delle informazioni di licenza (48 Byte) all’interno delle Wave Expansion che rendono i file EXZ scaricati da Roland Cloud unici per una manciata di byte e associati all’account che li ha creati; la seconda novità è l’inserimento all’interno di tali file della versione dei multisamples compressi nel formato FCE-DPCM. Il doppio formato è presente anche nelle “SuperNATURAL Expansion”.
Qui uno shot dove si visualizza, ad esempio, l’espansione EXZ009 - EXZ Symphonique Strings nella versione del sito Axial (multisamples in 16 bit lineari) e in quella scaricabile con RCM. La parte compressa ha la stessa dimensione di quella presente nelle vecchie espansioni per FA-06/08.
La presenza all’interno dei file EXZ di multisamples nel doppio formato (compresso e 16 bit lineare) e l’inserimento dei 48 byte di licenza, garantisce a Roland tutta una serie di vantaggi:
- caricamento delle versioni compresse in Fantom0 (user flash 256 MByte), AX Edge, RD-88 e JupiterX/XM (hanno flash libera poco superiore ai 64 MByte) e caricamento delle versioni 16 bit lineari in Fantom
- caricamento delle versioni con licenza (perpetua o in abbonamento) in Zenology
- distinzione, grazie ai 48 byte di licenza, delle versioni free per Fantom e Fantom0 e quelle a pagamento per AX Edge, JupiterX/XM e RD-88
Riguardo le tre “SuperNATURAL Expansion” (EXSN01-03) la struttura è identica, con l’unica differenza che, armeno per ora, è possibile utilizzare tali espansioni solo con Fantom e Fantom0
Seguono degli shot in cui sono mostrate le dimensioni delle due versioni presenti nei file, lo spazio vuoto (una serie di byte pari a zero) e il rapporto di compressione tra la versione compressa e quella 16 bit lineare.
Analizzando le dimensioni si dà chiara risposta alle domande poste all’inizio.
Qualche breve osservazione.
La prima è che i multisamples compressi presenti nei file EXZ hanno tutti una dimensione
pari a 32 MByte: questo è coerente con il fatto che derivano dalle schede di espansione SRX, tutte avente capienza massima pari a 32 MB e compatibili con la vecchia serie di serie di Fantom, la famiglia XV (5080, 5050, 3080, 2020) e JV (1080-2080).
La seconda osservazione è che il rapporto di compressione del codec FCE-DPCM, come si vede in tabella, non è fisso: questo è tipico dei codec Lossless e dei codec che introducono solo piccole approssimazioni in fase di compressione.
La compressione ottenibile è strettamente legata alla caratteristica del file di origine.
L’ultima osservazione riguarda la qualità del suono: quanto un Fantom0 che legge
i multisamples compressi con il codec FCE-DPCM suona “peggio” rispetto al Fantom che legge i file 16 bit lineari (ovviamente escludiamo l’incidenza dei convertitori)?
Io non darei per scontato che per le 15 EXZ, ci sia un deterioramento della qualità perché è tutto da dimostrare che Roland con Fantom sia ripartita dai sample originali
non compressi (materiale degli anni 90) e li abbia inseriti nelle EXZ senza
direttamente: potrebbe darsi
che la scelta di utilizzare la codifica 16 bit lineare sia dovuta alla architettura di Fantom che è molto complessa come si può vedere dallo schema che segue
e che pertanto obblighi i BMC a lavorare con samples necessariamente non
compressi.
In Fantom, infatti, tutti i samples utilizzabili
(interni, espansioni e user) sono memorizzati all'interno di una memoria eMMC di
4 GByte e all’accensione vengono interamente trasferiti nella RAM (anche essa di 4 Gbyte):
mentre vengono sintetizzati i suoni, i dati necessari vengono distribuiti
alla piccola RAM (32 MB) associata a ciascuno dei 4 BMC, tramite 2
FPGA Altera Cyclone V. AX Edge, JupiterX e presumibilmente Fantom0 hanno
invece una architettura più classica dove i samples rimangono sempre nella Flash e vengono caricati, all’occorrenza, nella piccola memoria di 32 MByte che accompagna ogni BMC.
Non è pertanto da escludere che Roland, per le conversioni delle vecchie schede
SRX in EXZ, in Fantom ha semplicemente riconvertito in 16 bit lineari i
file compressi, senza ovviamente poterne miglorarne la qualtà, "obbligata" da
soli motivi di architettura HW.
Riguardo i suoni più recenti
(vedi ad esempio il SN AcPiano2 e le prime 4 espansioni EXZ che non
derivano dalle vecchie schede SRX) certamente la natura non compressa dei
samples garantisce in Fantom una qualità leggermente migliore rispetto a quella
di Fantom0 che è costretto ad utilizzare la versione compressa. L'ottima qualità
del codec FCE-DPCM è garanzia comunque di una differenza al limite
dell'impercettibile.
Concludo con un video che ho realizzato qualche mese fa di
un "Teardown" del mio Roland AX- Edge con immagini e dettagli dell'Hardware:
riguardo la parte relativa alla generazione sonora l'audio mainboard contiene un
singolo SoC Roland BMC, 48 MByte di RAM e 256 di flash che contiene fino a 2
espansioni EXZ e i circa 150 MByte di firmware e samples ZenCore: in più è
presente una seconda Flash più piccola e più lenta (48 MByte) probabilmente
utilizzata per la memorizzazione dei toni e performance.
6 Febbraio 2022
Program Change - MSB-LSB
Ho realizzato un piccolo software che permette in maniera molto rapida di settare e inviare i parametri Midi Control Change MSB e LSB di Bank Select + ProgramChange ad un synth, tramite Midi.
Nato per testare le implementazioni Midi di alcuni miei synth (Roland Fantom, Yamaha Montage e Jupiter XM in primis), ho pensato di condividerlo e renderlo scaricabile e utilizzabile da chiunque.
Ci sono infiniti modi per ottenere la stessa cosa, ma mi serviva un qualcosa di facilmente utilizzabile,...ed eccolo qui.
Il software funziona in ambiente Windows (la versione MAC seguirà a breve) ed è portabile. Basta eseguire il software senza bisogno di alcuna installazione.
Per configurarlo, occorre solo settare il MIDI out, relativo al synth da comandare.
In presenza di Driver Midi multi-client, oggi sempre più frequenti, è possibile
eseguire il software in parallelo con altri software che utilizzano la medesima porta MIDI (DAW, Editor, Librarian,..)
Il comando Program Change è sempre attivo (basta selezionarlo): per inviare la terna MSB-LSB e Program change
occorre cliccare sul pulsante Send To Synth.
Qui il link per il download.
31 Gennaio 2022
Emulazione software di Access Virus B/C
Come è noto, esistono numerosi synth digitali del passato realizzati con la famiglia dei DSP Motorola 563xx.
E' nato da qualche mese un progetto open source che si prefigge di emularli, virtualizzando in software
l'intero DSP e facendo leggere una copia della ROM che contiene il "codice
macchina" del synth.
Il risultato che si ottiene è il medesimo suono digitale (successione di samples, tipicamente 24 bit/44.1-48 Khz)
della controparte Hardware con l'unica differenza del suono dovuta alla successiva conversione D/A che viene effettuata dalla scheda/interfaccia audio del computer.
Dopo un lungo lavoro di ottimizzazione del codice, si è riusciti ad ottenere performance tali da poter eseguire in realtime
l'emulazione, uguagliando la potenza di calcolo di un Motorola 56362 (136 MIPS) su processori Intel i5/i7 più o meno recenti e sul
nuovo Apple M1.
Esiste una beta stabile, in grado di emulare sia l'ACCESS Virus B che il C: tra le due l'emulazione del Virus B è più leggera
in quanto il synth ha minore polifonia massima (24 vs. 32 voci) e pertanto è meno onerosa in termini di occupazione CPU.
Per alcune questioni di copyright si è scelta la strada della compilazione JIT (Just in time) dove si perde un po'
in performance, ma vengono mantenute distinte l'emulazione del DSP dalla presenza della ROM che non
viene fornita direttamente dagli sviluppatori.
Per verificare la qualità della emulazione ho eseguito sul mio PC di ufficio (Intel Nuc con processore Intel Core i7-8559U@2,7 GHz di ottava generazione - TDP 28 Watt e
interfaccia audio Zoom UAC-2 con SR 44.1 Khz e buffer 256) una sequenza del brano Equinoxe 5 di J.M.Jarre, mantenendo attivo il monitoraggio risorse per la verifica della occupazione CPU.
La registrazione del video avvenuta in realtime, è stata fatta tramite il software OBS studio che ha una occupazione CPU notoriamente bassa
e che impatta in minima parte sulle performance complessive.
Segue il video.
Roland Personal Model Expansions e Toni Zen-Core
corrispondenti
Le Zen-Core
MODEL EXPANSIONS (prima detti “model banks”) nascono
come metodo per emulare alcuni sintetizzatori
vintage Roland in alcuni Hardware Zen-Core
compatibili e all’interno del software ZENOLOGY.
Ad oggi esistono 4 modelli compatibili con Jupiter
X/XM, Fantom e Zenology (le expansions Juno-106,
Jupiter-8, SH-101 e JX-8P) a cui si aggiunge
l’expansion JD-800 disponibile per Jupiter X/XM e
Zenology.
Nel futuro sicuramente saranno rese disponibili
nuove Model Expansion, che in base a quando promesso
da Roland, grazie alla potenza del sistema di
sintesi ZEN-Core, consentirà di creare
“…sintetizzatori Roland nuovi ed entusiasmanti che
possono trarre ispirazione dall'hardware esistente o
essere realizzati in completa autonomia..” vedi
link
Grazie a numerose prove e alla documentazione sulla
implementazione dei messaggi MIDI System Exclusive
di Fantom sono riuscito ad ottenere due risultati
che ampliano di molto le possibilità di sintesi dei
MODEL EXPANSIONS attualmente esistenti. In dettaglio
sono riuscito a:
- creare dei Personal Model Expansions in cui ho
modificato la struttura di quelli già esistenti
aggiungendo nuove caratteristiche e, in alcuni casi,
aumentando la polifonia fino a raddoppiarla.
- convertire un qualunque suono di un qualunque
Model Expansions (ad eccezione del JD800) nel
corrispondente tone Zen-Core: tale tono suonerà
identico, sarà editabile e ovviamente potrà essere
suonato su qualunque Hardware Zen-Core (Ax-Edge,
Rd-88, MC-101, MC-107 e MV-1 compresi), sul software
Zenology e sulla APP ZenBeat (ZC1 instrumets)
Per capire come ciò sia possibile, occorre pensare
ai Model Expansions, come dei template (o macro) che
in “background” operano sulla struttura Zen-Core
corrispondente al modello scelto. Ogni volta in cui
si interviene su di un parametro di sintesi del
modello, il software (firmware negli HW) modifica in
base a delle corrispondenze ben precise, uno o più
parametri del motore Zen-Core che continua a
funzionare esattamente come in modalità standard. In
più vengono attivati e modificati dei parametri
Zen-Core nascosti che non accessibili direttamente,
ma solo tramite MIDI SysEx.
La cosa interessante è che nel momento in cui viene
memorizzato e/o esportato un qualunque suono di un
model, non solo sono memorizzati i valori dei
parametri del modello (Es. OSC, Filtri, ENV, MOD di
un SH-101) ma vengono memorizzati tutti i
corrispondenti valori della struttura Zen-Core
standard sottostante.
Se infatti si prova ad esportare (file .svz) un tono
di un ModelBank e uno Zen-Core, il primo pur avendo
molti parametri in meno, avrà una dimensione
maggiore: nel file vengono pertanto memorizzati
anche tutti i valori del suono Zen-Core
corrispondente.
Grazie a questa caratteristica sono riuscito a
creare quelli che ho chiamanto i “Personal Model
Expansions”: sono partito da un modello esistente,
tramite MIDI SysEx ho modificato la struttura di
sintesi del modello Zen-Core sottostante e da quel
momento in poi ogni modifica dei parametri del Model
Expansion interviene sul nuovo modello creato. La
piena compatibilità e la possibilità di esportare e
condividere i suoni è garantita dalla presenza
dell’intero tone Zen-Core sottostante, in ciascun
suono user creato.
Tutti i Personal Model Expansions sono ovviamente
editabili e pertanto da ciascuno è possibile creare,
memorizzare e condividere, tutte le modifiche (nuovi
suoni) che si desiderano.
Ho creato, per adesso :-) , una ventina di Personal
Model Expansions: ecco qualche esempio
- Personal Model Juno 106 con SAW e SQR detunati
- Personal Model Juno 106 con oscillatore SuperSaw
al posto del Noise
- Personal Model Juno 106 con 3 oscillatori Saw, due
detunati (-6 +6 Cent) e uno con PWM
- Personal Model JX-8P con oscillatore aggiuntivo
SuperSaw (anche in versione sempre non filtrata)
- Personal Model JX-8P con oscillatore aggiuntivo
Strings PCM stereo
- Personal Model JX-8P con oscillatore aggiuntivo
con il campione PCM stereo Syn Vox1 (il classico
suono del Fairlight SARRAR)
- Personal Model SH-101 con un oscillatore Alpha
Juno (al posto del SQR) e dotato di PWM
- Personal Model Juno 106 con i soli OSC SAW e SQR
(anche in versione detunata) e polifonia che passa
da 14 a 28 voci
- Personal Model JX-8P con polifonia 28 voci
(eliminato l’oscillatore noise di sottofondo che
riduce la polifonia dello strumento da 28 a 19 Voci)
Segue la lista completa (click per
ingrandire)
Grazie a quanto visto, il secondo risultato che sono
riuscito ad ottenere è stato quello di convertire un
qualunque suono di un qualunque Model Expansions (ad
eccezione del JD800) nel corrispondente tone
Zen-Core: tale tono suonerà identico, sarà editabile
e ovviamente potrà essere suonato su qualunque
Hardware o Software Zen-Core compatibile.
Riguardo il modello JD800, è possibile ugualmente
effettuare le personalizzazioni utilizzando uno
Jupiter x (che non ho 😊) : speriamo tra breve di
vederlo implementato anche su Fantom.
Ciò è possibile grazie ad una combinazione di
messaggi MIDI SysEx che permettono la lettura e
quindi l’export dell’intero tone Zen-Core
sottostante ad ogni Model Expansions (standard o
“personal”).
Ottenuto il tono Zen-Core, è poi
possibile memorizzarlo e quindi esportarlo e
condividerlo come un qualsiasi suono Zen-core
standard. Da qui la possibilità di farlo suonare
anche su tutti gli Hardware Zen-Core (Ax-Edge,
Rd-88, MC-101, MC-107 e MV-1) che non leggono
nativamente i model Model Expansions.
Ovviamente nel momento in cui si decide di editare
tale suono, vengono persi tutti i vincoli del
template del modello che lo ha generato, lasciando
la più totale libertà esattamente come per ogni tono
zen-core.
Seguiranno degli approfondimenti per permettere di
creare, liberamente e in maniera abbastanza
semplice, i propri “Personal Model Expansions”.
Potete scaricare gratuitamente i 21 Personal Model
Expansions e i 21 Zen Core Tone corrispondentiqui.
Segue un video da cui si può
verificare la identicità del suono di un Model
Expansion (eseguito dal software Zenology-Pro) con
il corrispondente Tono Zen-Core che ne deriva,
questo suonato da un AX Edge, synth nativamente non
compatibile con i Models.
29 Novembre 2020
Waldorf Iridium Bug
Alcuni Waldorf Iridium, probabilmente quelli di costruzione
più recente, risentono di un bug molto fastidioso: appena il volume va a zero,
dopo che sono state rilasciate tutte le note e gli eventuali effetti hanno
terminato di suonare, vengono emessi dei click fastidiosissimi che in molti
contesti rendono inutilizzabile lo strumento. Tra breve sarà rilasciata una
nuova versione di firmware,la 2.5.3, che dovrebbe risolvere il problema. In
attesa ecco un video che ho realizzato dove si ascolta il click..e si descrive
la soluzione provvisoria.
5 Dicembre 2019
Korg iTriton ?
E' on line un video promozionale disponibile sui profili
social di Korg APP, che ricordando gli sconti fino al 50% su tutte le App e
relativi acquisti In-App, preannuncia una prossima "eccitante" novità.
Grazie ad una piccola correzione di luminosità e
contrasto è evidente che si tratta della emulazione del Korg Triton.
Se si considerano le analoghe emulazioni iM1 e iWorkstation,
dovremmo aspettarci una App chiamanta iTriton con l'accesso alle 9
espansioni, ciascuna dotata di Multisamples (16 MByte ad espansione) e suoni
aggiuntivi, eventualmente acquistabili separatamente tramite In-App.
EXB-PCM01: PIANOS/CLASSIC KEYBOADS
EXB-PCM02: STUDIO ESSENTIAL
EXB-PCM03: Future Loop Construction
EXB-PCM04: Dance Extreme
EXB-PCM05: Vintage Archives
EXB-PCM06/07: ORCHESTRAL COLLECTION
EXB-PCM08: Concert Grand Piano
EXB-PCM09: Trance attack
Sarebbe anche molto interessante vedere se sarà possibile
utilizzare degli User Multisamples come nel Triton Originale che
ricordiamo campiona a 16 bit, 48 kHz in stereo ed è dotato di 16 MByte espandibili a 64 MByte.
Con 64 Mbyte è possibile campionare a 16bit e SRate 48 KHz, 340 secondi in sterefonia che diventano circa 11 minuti in mono.
Altra possibilità, che però ritengo improbabile, potrebbe essere
l'emulazione della DSP Synthesizer Board Korg EXB-MOSS dotata di polifonia a 6
voci con 2 oscillatori multisintesi dotati di 13 algoritmi (VA, Ring
Modulation, VPM, Resonance, Organ Model e Electric Piano Model) e 5 tipologie
diverse di filtri (LPF, HPF, BP, BRF, Human Voice).
Non è da escludere la disponibilità della medesima emulazione in ambiente PC/MAC in analogia con quanto successo recentemente con Korg Gadget e
ARP ODYSSEi dove in entrambi i casi è stata mantenuta l'identica interfaccia grafica.
6 Ottobre 2019
Montage e Loop Point
Come noto, il Yamaha Montage dispone di una Flash Memory di
1,75 GByte a disposizione per gli user samples. Se non si desidera utilizzare
software esterni, è possibile creare i propri Multisamples
(user Waveforms) caricando da chiavetta USB i campioni (.Wav, .AIF), assegnando
poi ciascun campione ad un KeyBank e settando i vari
parametri quali Key Range, Velocity Range, Volume, Tune,.... (vedi manuale in
Italiano Pag.96-97)
Se si lavora con multisample complessi (un esempio tra tutti, i classici 88
campioni di un pianoforte per N livelli di dinamica) è molto più comodo
utilizzare software esterni, molti dei quali in grado di fare l'import e la conversione
da formati quali il classici Sound Font e SFZ (.SF2 o .SFZ).
Esistono numerosi software in grado di creare multisamples utilizzabili dal Montage:
tra questi vorrei citare
Sample Robot, (gratuito per chi possiede il Montage),
Translator 6 di Chicken System
e l'ottimo Montage Waveform Editor di John Melas.
Recentemente, nell'utilizzo del software di J.Melas, ho scoperto che nell'import
di campionamenti il software Montage Waveform Editor modifica i punti di loop
start ed End, andando spesso a calcolare e aggiungere dei pezzi di onda per
creare dei loop leggibili correttamente dal Montage.
Confrontandomi tramite mail con lo sviluppatore, persona veramente molto gentile e disponibile, mi è stato detto che da sue informazioni il punto di End loop point
deve necessariamente essere del tipo N*16-1 (15, 31, 47,63,..): da qui le
modifiche ai loop point e al contenuto del campione.
A verifica della cosa, ho provato a realizzare dei campioni caratterizzati dal
fatto di avere un loop end point avente valori diversi da tali multipli
(N*16-1) e che se non interpretati correttamente, in grado di generare click
evidenti: tra questi una sinusoide molto "stretta" (periodo di soli 16 campioni)
che produce un artificio evidente nel caso in cui il loop è letto e gestito dal
Montage in maniera errata.
Volendo
escludere ogni possibile dubbio e la remota ipotesi che eventuali diverse
revisioni HW del Montage si comportino in maniera differente, ho creato
una libreria (e anche un file User) di test con una serie di performance in
grado di mettere alla luce eventuali click ed errate interpretazioni del punto
di loop. Le 11 Waveform sono state create caricando direttamente dal Montage i
.wav di test; in dettaglio 7 sono composte da un singolo campione, 3 da 2
campioni e 1 da 4.
Il test mi ha portato a concludere che, almeno sul mio Montage7 non esiste
tale limite sul punto di loop; tutti i campioni e le performance che li
contengono anche in Layers sono privi di click o anomalie: a riguardo gli unici limiti riscontrati sono
la dimensione minima della lunghezza di loop che è di 80 campioni (al di sotto,
il Montage interpreta il campione come one shot) e che per un sample a 44100 Hz
il campione può essere trasposto in alto di massimo 24 semitoni (per note più
alte, il pitch rimane fisso a +24 semitoni). Il limite è ovviamente superabile
creando dei multisample.
Se qualche utente Montage desidera effettuare dei test di verifica, per aiutarimi a superare ogni dubbio
così da chiedere allo sviluppatore una eventuale modifica al suo software, può scaricare il file
Montage Test, provare le performance che ho
creato, tutte molto semplici e "pulite" ed eventualmente confermare le mie
conclusioni. Il file
.zip contiene il documento Test_Montage.pdf con le caratteristiche dei file .wav
usati, i singoli file .wav (17 in tutto) e i files, identici, User test loop.X7U e
Library test loop.X7L. Ricordo ai più distratti :-) che il file User va
eventualmente caricato dopo aver memorizzato su chiavetta, per backup, il
proprio; la Library contiene ovviamente stessi suoni e campioni.
Nel .zip trovate anche il file
Motif_Loop.X3A che contiene gli identici multisamples ed è stato creato con la
versione del Software di Melas Motif Waveform Editor che non fa alcuna modifica
ai loop: potete caricarlo come libreria e utilizzare le performance; anche con
tali campioni, non si ascolta nessun artefatto. Per eventuali contatti, potete
scrivermi alla mail
benedettoNOSPAM@benis.it togliendo ovviamente la scritta NOSPAM.Un grazie in
anticipo a chi vorrà effettuare il test.
26 Novembre 2017
Web Audio Modules (WAM) - Synth e bassa latenza sul web
E' da parecchi anni che si sta cercando uno standard comune
in grado di permettere la creazione e l'utilizzo di synth caricabili all'interno di un Web
Browser e pilotabili tramite interfaccia MIDI. Le principali difficoltà da
superare sono sempre state quella delle performance e della latenza (al di sopra di 15-20 ms diventa
abbastanza complicata l'esecuzione in tempo reale). Riguardo le performance
si ambisce a garantire analoghe prestazioni rispetto ai classici Virtual Synth
in formato eseguibile (.EXE) o VSTi (AU per i Mac). L'ostacolo che sembrava
insormontabile era dovuto ai due linguaggi di programmazione utilizzabili nei
browser, Java e JavaScript, che non sono in grado di rivaleggiare con le
performance di un eseguibile programmato in C o C++ e successivamente compilato
in linguaggio macchina.
I limiti di performance sono stati superati dall'introduzione del WebAssembly,
che è un linguaggio "low-level" molto simile all'assembly che è già supportato
da numerosi browser e che garantisce performance di fatto identiche al
linguaggio macchina. Agli sviluppatori bastano piccole modifiche per poter
riutilizzare lo stesso codice C/C++ usato nelle applicazioni e compilandolo in
WebAssembly.
Il Web Audio Modules (WAM) è un pacchetto di sviluppo e un
insieme di librerie che ha
l'ambizione di diventare l'equivalente del VST ma sul web. Il sito di
riferimento è www.webaudiomodules.org
Tutta la parte più delicata del WAM riguardo le performance
(il "cuore" dei vari synth e del trattamento DSP dell'audio) può essere scritto
in C++ o in JavaScript per poi essere compilato in WebAssembly.
Ad oggi sono già disponibili quattro virtual synth alcuni dei
quali hanno l'equivalente in formato VST: due emulazioni della DX7 (l'ultranoto
Dexed e Webdx7), un "virtual analog" emulazione dell' Oberheim OB-X e per ultimo
l'emulazione del Synth Casio CZ101 in Modulazione di Fase (PD). Seguono i link
Per suonare i WebSynth occorre utilizzare un Browser
"certificato" che allo stato attuale è Google Chrome Canary (V64.0.3275.0
64-bit per Windows o MacOS 10.12.4 e successive). Qui il
link per il
download. Altri browser in certi casi vanno altrettanto bene: ad esempio webdx7
e webcz101 funzionano anche con Firefox V.57.0.
Installato Chrome Canary, browser che può convivere in parallelo con il classico
Google Chrome, occorre abilitare le funzionalità di WebAssembly inserendo nella
barra degli indirizzo di Canary il testo chrome://flags/#enable-experimental-web-platform-features
e selezionando "Enables"
Ho effettuato alcuni test per verificare le performance
della nuova piattaforma: il "candidato" prescelto è stato Dexed che esiste da
parecchio tempo anche in formato VSTi. Le performance sono vicinissime a quelle
della versione VSTi: con il mio Surface Pro i7 6650U 2,20 Ghz ho suonato
il classico TUB BELLS, polifonia 16 voci, con una occupazione CPU
che si attestava attorno all'11-12% rispetto al 9-10% della versione VSTi:
Dexter in formato Web Audio in questa prima fase è quindi solo circa 15-20% più
"pesante" in termini di occupazione CPU.
Riguardo la latenza nei prossimi giorni cercherò di fare
alcuni test misurandola con l'oscilloscopio: in tutti i casi sembra abbastanza
ridotta tanto da rendere i synth suonabili: in Web DX7 è possibile selezionare
il Buffer (256, 512 o superiore) e testarne l'efficienza.
Venerdì' 15 Gennaio 2016
Yamaha Montage
Tra meno di una settimana, a partire da giovedì 21 Gennaio,
si terrà in California il NAMM show 2016 in cui si attendono grosse novità nel settore dei Synth,
vista la presenza di marche quali Yamaha, Roland e Korg. Attesissima la
presentazione della nuova Workstation Yamaha che dovrebbe chiamarsi Montage.
In attesa di avere comunicazioni ufficiali da Yamaha, sono
apparse sul web (vedi
qui)
informazioni relative alle sue caratteristiche: polifonia a 256 voci, doppio
motore di sintesi (AWM2 e FM-X), display touch-screen,... I più scettici parlano
di un FAKE, ma viste le innumerevoli somiglianze con il MOXF, l'ultima
Workstation Yamaha, serei propenso a pensare che si è trattata di una foto vera,
frutto di una "fuga di
notizie" imprevista.
Ho realizzato un "collage" in cui appaiono le evidenti le
somiglianze. (click
per ingrandire)
Con l'inizio del 2013, parte una nuova sezione del sito
dedicata alla computer music: tra gli articoli in preparazione alcuni dedicati
alle migliori applicazioni Ios per Ipad e iPhone con particolari analisi della
polifona massima e latenza nella esecuzione real time, tecniche per "prelevare"
dall'Ipad informazioni e suoni non accessibili tramite il semplice filesharing
di Itunes, e una serie di soundfont free con alcuni suoni "storici" dei synth
degli ultimi 20 anni da utilizzare su Ios e pattaforma Windows.