2020/06/05

Scansione tasti e tasti controllo (funzioni ed effetti)

In un post precedente avevo detto che mio padre aveva preso in considerazione l’idea di sentire la pressione del tasto all’inizio o alla fine (cioè quando arriva in fondo) o entrambe, in modo da poter avere la velocità.

In questo appunto si legge:

NOTA:

Si assume di avere a disposizione ≈ 12 µsec minimi di intervallo tra INT1 (freq 27100 Hz)

C’è spazio per circa 200 cicli CPU

Forse si può fare scanner key UP (o DOWN) per tutta la tastiera (5 colonne)

A parte la scelta di sentire il “key UP” o “DOWN” e, nel caso in cui si fossero sentiti entrambi, capire come calcolare una velocità sensata dal tempo tra inizio e arrivo a fine corsa, bisognava vedere anche se c’era il tempo materiale di farlo. La risposta era sì, visto che aveva preso in considerazione se farlo o no. (Ma forse alla fine ha preferito non usare questa informazione e avere dei cicli liberi in più a disposizione di qualche effetto.)

Tasti controllo

Ho già detto che non esiste una documentazione ufficiale dei tasti controllo. Ho trovato questo appunto:

Non mi sembra attuale rispetto agli ultimi sviluppi del codice e quanto ricordo.

Dunque… stando a quanto c’è scritto il tasto a sinistra da solo è lo sblocco dei potenziometri, che sennò non vengono letti. Finché premuto, attiva Scan_Pot: cioè per poter variare i valori bisogna tenerlo premuto. Non mi sembra molto comodo e non ricordo che lo facesse: probabilmente non è così che funziona il lock adesso (se c’è). Da vedere nel codice.

È trattata la combinazione dei key 1 e 2:

Se attivi insieme key 1 e 2, cambiare metodo funzionamento (disattivare ADSR2 e attivare phaser)

Del resto il “key 2” premuto da solo è come “key 1” (come sotto), ma per SAMPLE 2. Sample? Forse fa riferimento alle forme d’onda predefinite?

Il “key 1”

se attivo: in ScanKey i tasti DO, DO# ecc. fanno memorizzare il ptr alla TAB sample corrispondente, per SAMPLE 1

in INT ADSR [2?] come 1ᵃ operazione: settare TOP, cancellare ??? pitch

se presenti valori di [?] SAMPLE 1 e/o 2: (ferma oscillatori)

blocca INT

copiare TAB nuova in RAM

Riattivare [?]

Sopra il frammento della foto c’è un altro appunto:

IDEA: per evitare false letture potenziometri, in ScanPot verificare che sia attivo tasto ‘UNLOCK’ ed eseguire solo se attivo (uno scan viene comunque eseguito allo start)

per cambio TAB sample: tasto ‘OSC1’ + uno dei tasti KEY (es. DO, DO# ecc)

analogo per ‘OSC2’

copiare in RAM da corrispondente TAB

eventualmente tacitare tutti gli osc, prima di cambio

I tasti ‘UNLOCK’, ‘OSC1’, ‘OSC2’ sono i 3 di avanzo della matrice KEY

‘OSC1’ + ‘OSC2’ → cambio modo (2 ADSR → phaser), oppure usare ‘OSC1’ e ‘OSC2’ + tastiera per settare modo (es. DO 2ᵃ ottava)

In questi appunti si parla ancora di phaser, ma in realtà avevo già mostrato un commento del codice che chiarisce la scomparsa del phaser a favore del tremolo:

/// Aggiunta funzione tremolo. Sostituisce phaser (troppo simile a chorus)

Questo commento compare già nella serie I del codice, mentre nella serie H in un commento c’è scritto LFO triangular per phaser e chorus, il che significa che ancora c’era il phaser (forse il passaggio alla serie I è avvenuto proprio per l’eliminazione del phaser).

Nell’archivio si arriva fino alla serie M. Manca la serie N, mentre non archiviata e disponibile perciò direttamente sul filesystem c’è la serie O versione 0. Anche questa serie va con lo schema 8, e introduce il glissato:

/// Versione base + tentativo glissato

C’è scritto tentativo ma io ricordo che mi aveva fatto sentire questo effetto e grossomodo funzionava: c’era qualche imperfezione, alcune cose legate alla polifonia, e forse anche qualche vero bug. C’erano delle condizioni particolari che davano dei risultati inattesi — or ora non riesco a focalizzare, ma ricordo un pomeriggio di quelli in cui mi ero messo a seguire i test che faceva e c’era un difetto nel glissato. Forse addirittura stranamente funzionava meglio con lo split attivo che senza.

Comunque, continuo a tornare sulla serie I (che va con lo schema 8) perché mi sembra quella meno sperimentale.

In alcuni commenti di alcune serie e versioni si legge versione base + … qualcosa, invece la serie I versione 8 contiene un commento che afferma trattarsi della versione base (che va sempre con lo schema 8).

In questa versione della serie già aveva scorporato le forme d’onda, le tabelle e le macro per metterle in .h a parte (invece che tutte nello stesso .ino), come avevo già detto in un altro post.

Devo rimandare ancora una volta un’analisi più dettagliata del codice per capire le combinazioni dei tasti controllo. Ma intanto, le funzioni/modi attivabili tramite di essi — al volo, quindi non so se l’elenco è esaustivo:

  • trasposizione (in ottave, ma è espressa in semitoni quindi potenzialmente si potrebbe trasporre anche in semitoni?)
  • selezione wave (forma d’onda) (sine, sine2, organ ???, bassoon ???, ramp, ramp2, triangle, trapezio, oboe ???, violin ???, hammond ???, vari “boh”, sax ???)
  • selezione preset e memorizzazione preset (preset e preset esteso)
  • modo ADSR1, modo ADSR2 (1 oscillatore solo o 2)
  • mod freq osc (?)
  • tremolo
  • split
  • chorus
  • percussione (penso che accorci i tempi dell’attacco)

Nota: non bisogna confonderle il fatto che ci siano due oscillatori con due ADSR con la questione della polifonia/parafonia. Il verdetto finale è che è proprio polifonico con polifonia 6 (c’è una define apposita: avendo più potenza e più memoria per le strutture degli oscillatori, sarebbe possibile anche aumentarla!). Infatti ogni nota attivata ha il suo inviluppo.

Nessun commento:

Posta un commento

Commenta solo per dare un contributo utile, una critica costruttiva o fare un'osservazione acuta. Non commentare solo per dire che esisti anche tu o che ti piace o dispiace quello che hai letto e visto su questo blog.