Schmappato

scritto da Andrea Franceschini il giorno 13/3/2009

Com’è successo a Marco, anche a me ha scritto Emma Williams di Schmap per comunicarmi che una mia foto di Barcellona è finita nella loro guida on-line.

Ora devo solo capire se la mia licenza by-nc-nd non cozza con l’uso in Schmap, ma dopotutto sono stati così gentili da chiedere che non penso farò ulteriori obiezioni.

Alla periferia del ciclone

scritto da Andrea Franceschini il giorno 24/1/2009

Quando questa mattina ho aperto gli occhi, le mie orecchie rilevavano, oltre ad un roboante rumore di potenti raffiche di vento, anche quella particolare sensazione che si prova salendo e scendendo velocemente di quota, che succede a volte quando il treno si infila in un tunnel sotto il monte.

Pensando a Dorothy nella fattoria del Kansas, mi sono consolato che, se così fosse stato, almeno Barcellona ci avrebbe guadagnato. E invece ci ha perso tre bambini e un palazzetto.

Disegnare musica nel rumore

scritto da Andrea Franceschini il giorno 22/1/2009

Ammetto che è passato un po’ di tempo da quando ho scritto l’ultima volta della tesi, ci sono state di mezzo le vacanze, poi qualche altra preoccupazione ha deciso di flirtare a tre col mio tempo libero e la mia voglia di scrivere quello che stava accadendo, col risultato che io sono qua, faccio le cose, ma nessuno sa niente — e c’è anche chi giustamente si arrabbia.

Allora, eravamo rimasti al video figoso in cui io disegnavo delle cose in rosso e poi i rettangolini blu diventavano bianchi, giusto? WordPress mi conferma che è così, e quindi c’è una parte che manca all’appello.

Tanti piccoli accordi

Discutendo col prof — che infine ha dovuto mettermi un freno ché sennò gli fornivo idee per tre anni di progetti e non era bello — siamo giunti a due idee:

  1. la mia proposta iniziale era di selezionare un accordo di base (es. G#7) poi selezionare uno stile musicale (es Blues) e poi selezionare una delle possibili progressioni Blues che cominciano — o contengono in qualche posizione — l’accordo selezionato. L’idea sarebbe stata anche buona ma effettivamente incasinata;
  2. la sua controproposta è stata di costruire attorno al Tonalizer un “chord set”, ossia un insieme in cui l’utente inserisce degli accordi a sua discrezione, ordinabile, cioè che lui per conto suo si comporta come un insieme nel senso matematico, però sui suoi elementi si può costruire una sovrastruttura ordinata, che a noi che ci piace il pane con la soppressa piacerà chiamare “sequenza”. Questa sequenza andrà quindi suonata con tempi da definire, ma suppongo si andrà di multipli non per forza interi della battuta.

A quel punto la mia controcontroproposta è stata di non abbandonare per forza l’idea iniziale ma di semplificarla, nel senso che l’utente inserisce un accordo, questo viene preso come accordo di base (cioè, il primo di una progressione) e si mostrano tutte le progressioni che possono cominciare con quell’accordo. Poi l’utente ne inserisce un altro e si mostrano tutte le progressioni che cominciano con l’accordo di base e contengono da qualche parte il grado/modo del nuovo accordo relativo a quello di base, e via così col terzo, il quarto e tutti gli accessori.

Inserire gli accordi

E qui viene la parte interessante. Ci sono due paradigmi principali sul reacTable, che sono l’interfaccia tangibile di cui ho già parlato, e l’interfaccia a strisci e ditate di cui è pieno il mondo, YouTube e anche gli scaffali dei negozi. Per cui uno potrebbe pensare di sviluppare una serie di oggetti a rappresentare accordi, accidenti, gradi, modi, il tutto gioiosamente componibile in catene e… e dopo il terzo accordo è finito lo spazio sul tavolo.

L’opzione due è appena un po’ più vecchia dell’homo sapiens, e cioè si tratta di usare le dita per scrivere nomi, accidenti, gradi, modi e tutto quanto — dove per “tutto quanto” intendo la scelta di stili e progressioni, nonché la costruzione della famosa sequenza. Bello, dice. Mica facile, però. Questa eventualità va sotto il nome di handwriting recognition e ci sono sostanzialmente due sistemi su cui fare affidamento:

  • data un’immagine con le scritte da riconoscere, si applicano le ben note tecniche di riconoscimento ottico (il famoso OCR) basate su algoritmi di varia complessità che vanno dalle più semplici correlazioni alle più sofisticate tecniche per la ricerca i feature invarianti alle trasformazioni.
  • data una spezzata definita per punti sul piano 2D, si possono applicare varie tecniche più o meno fantasiose, a partire dalla ricerca di similarità tra NURBS fino a simpatiche deviazioni del problema della visibilità.

La mia situazione è questa: reacTIVision rileva le ditate e ne trasforma il movimento proprio in sequenze di punti. La seconda via è evidentemente la mia via, motivo per cui da un po’ di giorni mi sto industriando per cercare quanti più metodi diversi riesco a trovare. Averne più di uno mi garantirebbe due vantaggi: primo, inserire un po’ di algoritmica un minimo sofisticata per contentare chi non vive senza; secondo, poter confrontare i vari sistemi in termini di facilità d’uso, flessibilità e velocità. Per ora mi sto concentrando su un sistema di similarità tra NURBS e un sistema basato su superfici non convesse costruite  per triangoli.

  • NURBS: l’idea di base è di costruire dei modelli di riferimento, uno o più per ciascun glifo diverso, e usarli per confrontare la NURBS costruita dai dati ricevuti dall’utente. In verità non voglio confrontare veramente le curve ma solo il loro guscio convesso formato dai punti di controllo. Supponendo di usare i punti che arrivano da reacTIVision, questo sono tipicamente tanti e sparpagliati, in generale molto diversi da un modellino bello come questo:NURBS(non è che questo sia bellissimo, ma è meglio di niente). Il trucco starebbe nel calcolare un’approssimazione della curva inferta dall’input umano con un certo numero fissato di punti di controllo il più possibile equidistanti tra loro. La domanda è: qualcuno ha idee? Perché, una volta che questo è possibile in modo sufficientemente veloce, posto che i glifi di riferimento siano stati costruiti in modo analogo, allora diventa molto facile confrontare punto per punto l’input con la lista dei glifi, diciamo nell’ordine di m·n passi con m il numero di glifi ed n il numero di punti di controllo.
    Ci sono diverse condizioni problematiche, tra cui come allineare la coppia per il confronto. Per esempio scegliendo di far combaciare i due estremi, si deve per forza ripetere due volte il confronto per ogni coppia, nel caso gli estremi venissero scambiati: con un po’ di immaginazione dovreste riuscire a capire cosa intendo guardando l’esempio sopra. Un altro problema derivante dall’allineamento degli estremi è l’imprecisione dell’utente che può far variare anche di molto il punteggio. Tuttavia sono fiducioso circa la buona diversità tra i glifi.
  • Superfici triangolate: il secondo metodo su cui mi sto concentrando consiste nel prepare dei modelli in questa forma: Trianglese poi guardare quanti punti dell’input cadono dentro la superficie. Con questo metodo il problema dell’allineamento è ancora peggiore: occorrerebbe individuare dei punti nei cui intorni possono situarsi gli estremi dell’input. Tuttavia, una volta scelto un “buon allineamento”, la robustezza all’imprecisione dell’input è nettamente superiore (e modulata dalla larghezza della striscia) e c’è anche il vantaggio che non si devono fare calcoli complessi con polinomi di grado elevato bensì un più rapido e veloce test di appartenenza — velocità comunque mitigata dal fatto che ogni punto va testato con ciascun triangolo o al più con un “intorno” di triangoli. Il punto sta tutto nel trovare detto buon allineamento.

Naturalmente se avete suggerimenti a riguardo — anche per altri metodi sulla piazza — io sono disponibile e, in caso, vi guadagnereste un posto tra i ringraziamenti.

Gestire il set

Una volta costruito il set, costruire la sequenza è un compito abbastanza semplice: il dito collega gli accordi con una sorta di spezzata, reacTIVision fornisce il percorso del dito per punti con associata anche la velocità del dito in ogni punto. Assumendo che il dito “rallenti” quando fa tappa su un accordo, si può usare questa informazione per costruire la catena. O qualcosa del genere, ci penserò più avanti. La gestione automatica di stili e progressioni invece è molto più facile, si può sviluppare con una combo di glifi alfanumerici e liste visualizzate sul tavolo.

Sì, insomma, di cose da fare ce n’è. Mi sono fissato il 9 febbraio per avere tutte queste meraviglie pronte per il test — anche se più realisticamente la fine dello sviluppo cadrà nella relativa settimana e non proprio quel lunedì. E poi si vedrà, fino al 9 aprile c’è tempo per inventarsi altre meraviglie.

Paragoni edilizi

scritto da Andrea Franceschini il giorno 24/12/2008

In Italia, se passi accanto ad un cantiere, senti musica. Che sia la radio o l’operaio, è invariabilmente qualcosa di melodico napoletano, qualche liscio allegrotto romagnolo o vocalizzi nordafricani, a seconda del melting pot e dell’imprenditore edile.

In Spagna, se passi accanto ad un cantiere, anche lì senti musica. Ma qua, fuori dalla finestra, sul tetto della Estació de França, ascoltano i Metallica e i System Of A Down.

Non trarrò conclusioni macabre, ma poi dice che in Italia, sul lavoro, si muore il 30% in più che in Spagna.

Per fortuna l’Europa c’è

scritto da Andrea Franceschini il giorno 25/11/2008

Del mercato europeo si parlava da molto prima dell’Euro, e perfino della Costituzione Europea. Diciamo che se ne parlava da almeno trent’anni e pure più.

Eppure al negozio (con le insegne VISA, Mastercard, AmEx e Cirrus/Maestro) non paghi con la carta meno di dieci euro e sul sito delle ferrovie la moneta elettronica (i.e. VISA Electron) non è accettata. Metteteci che prima di farvi dare un IBAN completo dovete spiegargli che cos’è, perché vi serve e dove lo trovano e non avete esattamente l’immagine del paese moderno che invece si ha della Spagna.

EDIT: Alla fine ho dovuto fare una coda mortifera alla stazione (e per fortuna che sono arrivato dopo le 16 perché prima i biglietti AVE e lunga percorrenza non si vendono e io non è che lo sapevo…) perché alla stazione Sants l’unica speranza (esclusi gli sportelli che già comunque versavano in condizioni penose) era l’automatica che però bisognava essere già clienti (con tessera cliente) e aver acquistato il biglietto prima, senza contare che “se ce l’ha già stampato, non serve stamparlo da qua”. Così sono tornato mesto mesto alla stazione di França, ho fatto la coda e in relativamente poco tempo il solerte impiegato mi ha fatto i biglietti. Peccato che la mia carta Maestro non funzionasse (ma come, al supermercato funziona sempre…) e invece, indovinate un po’? La Visa Electron sì.

Ma dico.