31 Marzo 2022

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.

Per approfondimenti ecco i link Sito di riferimento: dsp56300.wordpress.com

Forum con i dettagli, esempi audio e evoluzioni del progetto Discord

Sorgenti dell'emulatore github.com/dsp56300/gearmulator


12 Maggio 2021


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 corrispondenti qui.

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

Web Dexed

Web OBXD

Web CZ 101

Web Dx7

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)

 

 

Giovedì 03 Gennaio 2013


Inaugurata la sezione "Computer Music"

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.