Calcolo per sincronizzare note ed elementi grafici

gerrix
Ciao a tutti, sono alle prese da settimane su un calcolo per sincronizzare il suono di note musicali con una sorta di mattoncini che scendono --- vi posto un video per capire di cosa si tratta


In pratica i mattoncini, per i primi 4 - 5 secondi sono sincronizzati ma, man mano che il tempo passa,perdono, progressivamente, la sincronizzazione.

Vi spiego come ho fatto i calcoli e spero che qualcuno mi possa dire come dovrei ovviare per sistemare e sincronizzare il tutto.

Nella prima fase, in base alla registrazione che si esegue e,subito dopo aver premuto stop, viene calcolato il tempo totale espesso in millesecondi - ad esempio:

1) tempo totale =143000;

con questo valore ottenuto creo un contenitore grafico che chiamo tappeto_note che avrà una lunghezza esattamente uguale al tempo totale 143000 ma che questa volta saranno pixel

2) tappeto_note = 143000

Poi in base alle note registrate (viene preso il tempo di attacco e di rilascio di ogni singola nota) e sistemate all'interno di questo contenitore - ad esempio
attacco prima nota 3500 e rilascio 4500
attacco seconda nota attacco 6250 e rilascio 7520
etc etc fino alla fine...
i mattoncini li sistemo dalla fine del tappeto calcolando la posizione esatta -- ad esempio la prima (143000 - 3500= 139500 e - la grandezza (4500 - 3500 = 1000)) quindi per completare il calcolo faccio 139500 - 1000 = 138500

3) posizione prima nota = 138500

e cosi tutte le note via via...

Ho una barra di avanzamento che è lunga 960 pixel il cui avanzamento finisce alla fine del brano ed alla fine dello scorrimento del tappeto


questo il calcolo per farlo avanzare con un intervallo di 25 millesecondi

4) FUNZIONE TEMPO (tempo_trascorso/durata_brano) * 960 (viene eseguita ogni 25 millesecondi)

Il tappetto_note avanza poichè inserito nella FUNZIONE TEMPO con questo calcolo:
(tempo_trascorso/durata_brano)* lunghezza_tappeto
quindi ad ogni ciclo della FUNZIONE TEMPO il tappetto viene spostato nella nuova posiszione
............................................................

come dicevo all'inizio la sincronizzazione all'inizio è perfetta ma man mano si perde e, per esempio, superato un minuto è molto evidente con ritardi di 50 - 60 pixel, forse sono quei 25 millesecondi che stravolgono, seppur di poco il tutto e non mi garantiscono la sincronizzazione ma... spero che qualcuno possa aiutarmi e spero di aver posto bene la mia difficoltà.
Grazie anticipatamente
gerrix

Risposte
gerrix
Lo sfasamento era tra l'illuminazione dei tasti virtuali e i mattoncini. In pratica avevo un set interval di 20 millesecondi mentre l'audio andava da solo, poi ho fatto fare tutto insieme ed ho risolto. Grazie comunque.
gerrix

Quinzio
Scritto così non è molto dettagliato ma sembra tutto a posto.
Se hai scritto del codice software prova a metterlo che ci si da un occhiata.
Lo sfasamento è tra i mattoncini e i tasti del pianoforte o con la musica ?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.