Cari tutti, tra ieri e oggi ho lavorato sullo script per estrapolare i dati dei campioni audio messi a disposizione nella libreria. So di aver chiesto (e aver promesso in risposta) un JSON, ma la caratterizzazione della libreria dei campioni audio mi ha suggerito l'import di tali informazioni all'interno di una tabella di un database MySQL. Certo, sarebbe possibile introdurre uno strato intermedio: per intenderci, il client potrebbe richiamare un web service che restituisce in formato JSON il risultato di una query. Ma ne vale la pena? Secondo me, è più efficace che il client effettui direttamente la query sul database. La premessa è che i dati sui campioni sono stati raccolti da Indire in modo eterogeneo a seconda della collezione. Mi sono arrivati 3 fogli Excel con numero di colonne diverso, ordine delle colonne diverso, intestazioni diverse, ecc., per cui ho dovuto fare uno sforzo - non sempre ben riuscito - per amalgamare le informazioni disponibili. Sotto riporto qualche mio commento. Comunque, il link per avere l'elenco completo dei campioni e delle informazioni relative è questo: http://192.168.33.60/parse_samples.php Le informazioni sono visualizzate in forma testuale, e la pagina riporta TUTTI i campi disponibili. Aprendo il file parse_samples.php vedrete come ci si connette al database, come si effettuano le query e quali sono i campi disponibili (peraltro riportati tra parentesi quadre nella visualizzazione testuale). Chrome sembra avere problemi sulla pagina, a me la visualizza in modo completo ma a un certo punto si impalla. Sembrerebbe un problema da ciclo infinito, ma il ciclo infinito io non lo vedo. Forse il problema sta nel numero di righe di testo da gestire. Microsoft Edge gestisce meglio la pagina. Qualche commento sui dati: - il campo sound dovrebbe rappresentare il nome dello strumento, ma i valori non sono univoci e non saprei bene come rendere evidente all'utente la differenza. Ad esempio, abbiamo molti strumenti chiamati "FX", tanto che all'inizio ritenevo si trattasse del nome della famiglia e non dello strumento. E comunque abbiamo nomi non evocativi, quali "808DISTORTED" o "808LONG". Al momento, non penso possiamo farci molto. Forse potremo intervenire a posteriori sui nomi nel database per meglio caratterizzare la situazione; - il campo description l'ho previsto io, anche per risolvere la criticità di cui sopra, ma non viene mai valorizzato; - i campi beats, bpm e chord presentano un valore -1 quando il loro valore non è noto o non è significativo; - il campo genre sembra prestarsi a una tassonomia ortogonale rispetto a family, e non saprei bene come gestirlo. Per intenderci, l'alberatura si deve basare sulle famiglie, che una volta aperte portano ai campioni, o sui generi? Forse si potrebbe implementare il doppio canale; - il campo duration è stato compilato in pochissimi casi, e con valori molto indicativi (long, medium, short). Non a caso l'ho tradotto come "durata indicativa". L'ho lasciato perché dai fogli Excel a me inviati non ho voluto eliminare alcuna informazione, ma credo se ne possa fare a meno; - il campo chord forse si sarebbe dovuto chiamare key (è più la tonalità che l'accordo), ma key è una parola riservata in MySQL. Tenete conto che, in casi sporadici, è compilato con più di un valore; - infine, se pensate che il numero di beats sia un intero, anche in questo caso mi tocca deludervi: in un caso, è un valore con virgola decimale. Credo sia tutto, a presto. Luca
participants (1)
-
Luca A. Ludovico