A partire dal 5 ottobre 2020 dal sito di AUDIOreview è possibile scaricare il software per aggiornare gratuitamente LDS 3.0 alla release 3.1 . Qui una breve descrizione di come farlo e di cosa cambia.

La necessità di una nuova release di LDS scaturisce soprattutto dal fatto che alcuni problemi di stabilità della versione 3.0, inizialmente latenti, si sono nettamente accentuati dopo i numerosi aggiornamenti dei sistemi operativi Microsoft successivi al rilascio. Di conseguenza ho dovuto rimettere mano al codice e cercare di risolverli, intento che credo di aver raggiunto, sempre fatto salvo quanto descritto al termine di questo articolo.

Le correzioni sono state numerose, inutile elencarle minuziosamente in dettaglio, ma un paio tra i problemi più frequenti vanno citati.

  • nella release 3.0 molto spesso l’azionamento del pulsante “aggiorna simulazione” susseguente alla modifica di un qualsiasi elemento del progetto in sviluppo non sempre andava a buon fine, e in questi casi si rendeva talvolta necessario cliccare sulla “X” della finestra per chiudere il programma (il che abilitava peraltro alla ripresa del controllo, selezionando l’opzione “Annulla”).
  • se in LDS 3.0 si inserisce una virgola nelle note descrittive dell’intero sistema, di un trasduttore od un elaboratore di segnale, il file .lds successivamente memorizzato non può più essere ricaricato (salvo cercare quella virgola di troppo con un editor del testo e modificarla ad esempio in una lettera). La routine di caricamento interpreta infatti la virgola come un separatore, e scombina la sequenza delle variabili.

A parte la correzione dei bug che si sono manifestati, ne ho comunque approfittato per inserire alcune nuove funzionalità comode relative al caricamento ed alla importazione di misure di risposta ed impedenza.

Le nuove funzioni di carimento ed importazione di misure

In Figura 1 vediamo il quadro trasduttore del programma. Per immettere al suo interno dati di risposta ed impedenza c’erano finora due strade principali: caricare risposte/impedenze nel formato .crw ( quello proprietario del programma) attraverso  il menù “File > Apri altoparlante“, oppure importarle con l’altra opzione “Importa risposta / impedenza“. In quest’ultimo caso si apre la finestra di accesso ai file, la quale permette di visualizzare il filtro di importazione (quello sulla destra di Figura 2), che a sua volta consente di impostare la struttura dei dati memorizzati e di selezionare direttamente tante strutture già precedentemente definite e memorizzate (fino a 100).

Figura 1
Figura 2

In LDS 3.1 tutto ciò diventa molto più semplice e rapido, perché si può operare con il drag & drop.

Se si deve caricare un file .crw, basta trascinarlo sulla finestra Trasduttore (o in quella Elaboratore, quanto qui descritto vale per ambo le finestre).

Se invece si deve importare una misura da un file in formato testo, si può anche in quel caso trascinarlo sulla finestra di destinazione, il che genera due possibili comportamenti:

  • se l’estensione del file coincide con almeno una di quelle dei formati di importazione già memorizzati, il programma chiederà se si desidera utilizzare una di quelle strutture, proponendole in sequenza (Figura 3). Se ad uno dei formati proposti dal programma si risponde affermativamente, il file verrà subito caricato in accordo a quella struttura.
  • se l’estensione è sconosciuta al programma, oppure se si sceglie l’opzione precedente e poi si risponde negativamente a tutti i formati proposti dal programma, viene fuori la finestra di Figura 4, con il pulsante verticale “Aggiorna” lampeggiante.
Figura 3
Figura 4

Quest’ultima finestra è un filtro di importazione “rapido”, che consente di visualizzare i dati presenti nel file trascinato e quindi di organizzare “al volo” la struttura di importazione. Quello di Figura 4 è l’aspetto iniziale della finestra, che ci fornisce le prime indicazioni nel frame in alto a sinistra (“Informazioni relative al file da importare“). In questo caso il programma ha trovato 1616 stringhe totali, 5 delle quali di valore nullo.

Le stringhe di valore nullo potrebbero essere quelle relative agli header del file, che sono stringhe di caratteri che di solito servono a descrivere proprio la struttura del file (ma per interpretare direttamente i quali occorre quasi sempre una intelligenza umana).

Proviamo quindi a cliccare sul pulsante “Aggiorna”, azione che ci porta allo stato di Figura 5. Che cosa ha fatto il programma ?

Figura 5

Ha provato a caricare i dati secondo la struttura impostata nel frame in basso a sinistra (“Imposta la struttura del blocco elementare dei dati“), che però è quella di default, e quindi molto probabilmente sbagliata. Nel frame sulla destra (“Visualizzazione della sequenza dei dati secondo la struttura definita“) possiamo comunque vedere cosa viene caricato usando quella struttura, il programma ci mostra infatti i primi 30 dati (nella metà superiore) e gli ultimi 30 (nella metà inferiore). Nella parte più bassa compare una casella molto più grande, quella in cui vengono sommati tutti gli header.

Nel frame di impostazione il software aveva settato 5 header, perché analizzando il file aveva trovato 5 stringhe di valore nullo, per cui ha caricato le prime 5 stringhe come se fossero header descrittivi e le ha sommate tutte nella casella “Headers”. Da notare anche il numero dei punti, che non è casuale né preimpostato: con 5 header e 1611 stringhe non nulle, se la sequenza elementare include 5 dati (dalla frequenza alla fase dell’impedenza), i punti utili sono 319.

Cerchiamo ora di capire come davvero sono organizzati i dati. Nella casella “Headers” troviamo le parole “Freq (Hz)”, “Ohm” e “Phase”, che sono chiaramente dei veri header, ma subito dopo anche dei valori numerici, che evidentemente sono dei dati facenti parte della misura da importare. Abbiamo quindi impostato troppi header (in effetti non l’abbiamo fatto noi, la prima volta lo fa il programma) e quindi dobbiamo ridurli. Provando con vari valori, e usando ogni volta il pulsante “Aggiorna”, dopo alcuni tentativi arriviamo all’assetto di Figura 6: abbiamo separato gli header dai dati, ma i dati sono ancora mal organizzati.

Figura 6

La sequenza di numeri che vediamo nei primi 30 dati potrebbe sembrare senza senso, però c’è un valore che cresce ogni 3 caselle (10, 10.14, 10.29….11.38). Stessa cosa accade negli ultimi 30 dati (19667.97, 19953.07, 20242.29….22387.72).

In un file che rappresenta una misura può in pratica esserci un solo parametro che varia monotonicamente, la frequenza: abbiamo quindi 1 header ed un terzetto di valori di cui il primo è la frequenza. Gli altri due potrebbero essere il modulo e la fase e ad occhio, dai valori visualizzati, si capisce subito che sono proprio quelli. Quel che non si può capire (ma almeno quello bisogna saperlo a priori) è se si tratti di una risposta o di una impedenza, e nel caso di una risposta se il modulo è in dB, in volt od altre dimensioni.

Nel nostro caso l’utente sta importando un file di impedenza generato dal sistema di misura CLIO ed esportato in formato testo, con il modulo espresso in ohm e la fase in gradi sessagesimali.

Torniamo quindi al frame della struttura ed impostiamo quanto segue: 1 header, frequenza (hertz) alla posizione 1, modulo impedenza (ohm) alla posizione 2, fase impedenza (gradi) alla posizione 3, dato non presente sia alla posizione 4 che alla posizione 5 (Figura 7). A questo punto il numero dei punti si è modificato di conseguenza: la sequenza dei dati ora appare coerentemente organizzata in terzetti, le stringhe presenti sono 1616, meno un header sono 1615 valori numerici, che diviso 3 (il terzetto elementare) fanno … 538.33 punti?

Figura 7

Che venga fuori un numero frazionario potrebbe dipendere da un difetto del formato del file, oppure da un header messo alla fine. Ma perché il programma scrive perentoriamente “537 punti” ? Qui bisognerebbe entrare in dettagli di programmazione che non interessano a nessuno, basti però dire che il software si accorge se una sequenza di byte rappresenta un numero o una vera stringa, ed aggiusta il tiro di conseguenza.

A questo punto, cliccando su “Importa”, la misura viene importata. La vediamo in Figura 8 (un po’ incerta, ma ciò dipende da come è stata eseguita, non dall’importazione) e confrontando questa figura con la Figura 1 notiamo che è cambiata solo l’impedenza, com’è ovvio dato che abbiamo importato dati relativi solo all’impedenza. Da ora in poi nella sessione di lavoro LDS “ricorderà” l’impostazione dei dati utilizzata e la renderà subito disponibile con un altro pulsante (“reimposta”).

Figura 8

Il nuovo filtro “rapido” basato sul drag & drop non ha le limitazioni di massimo numero di punti del filtro “classico”, e può essere utilizzato anche dall’interno di una simulazione globale.

Come aggiornare LDS 3.0 a LDS 3.1

In primo luogo occorre naturalmente avere installata una copia valida di LDS 3.0, poi si deve scaricare la utility di aggiornamento dal nostro sito (“da_LDS30_a_LDS31.exe”, circa 22 megabyte zippati) e lanciarla. Questa chiederà di cercare e selezionare l’eseguibile di LDS 3.0 (“LDS30.exe”), poi effettuerà delle verifiche e dopo alcuni secondi permetterà di effettuare l’aggiornamento. Alla fine LDS 3.0 non verrà cancellato, e volendo si potrà continuare ad usarlo, ma nella stessa cartella sarà stato creato LDS 3.1, al quale si potrà associare un collegamento (sul desktop o altrove) per un lancio rapido. Sia LDS 3.0 che LDS 3.1 richiedono di essere eseguiti in qualità di amministratore del sistema.

Come segnalare la presenza di bug

Tutto ciò che è emerso di anomalo nella precedente versione di 3.0 LDS è stato corretto nella nuova release, ma il programma fa tante cose, le modalità di usarlo sono tante quanti sono i suoi utenti e da ognuna di queste possono emergere dei bachi non ancora scoperti. Preghiamo chi ne trovasse di segnalarceli via mail all’indirizzo della rivista, ma in un modo che ci consenta di replicarli. L’ideale è inviarci un file di sistema (estensione “.lds”) nel quale il bug si manifesta e descrivere la sequenza delle operazioni che lo attiva. Non appena possibile renderemo disponibile una nuova utility di upgrade gratuita come quella attuale.