Domanda

Ho un motore sonoro OpenAL sul mio iPhone app. Quando gioco un suono che ho caricato, posso controllare è buio.

In OpenAL un passo impostato su 1,0 ha alcun effetto. Se si raddoppia a 2,0, gioca la nota 1 ottava più alta (12 semitoni). Se si dimezzi esso, a 0.5, sarà un'ottava inferiore (12 semitoni).

Quindi, il mio campione originale sta giocando un C. ho pensato che se divido 1 di 12 (semitoni) ho potuto ottenere in campo per le singole note in quella ottava. Ma questo non sembra essere il caso. Il che rende pensiamo che semitoni non sono valori uguali. È vero?

Qualcuno sa come posso risolvere il valore del passo OpenAL per le singole note in un'ottava?

Grazie

È stato utile?

Soluzione

Semitones sono uguali proporzioni. Quindi, se il campione è C, C # sarà il 12 ° radice di due. Se si contano semitoni C = 0, C # = 1, ecc, il rapporto è pow(2.0, n*1.0/12.0)

Funziona per i numeri negativi, anche.

Vorrei sottolineare, questo non è assolutamente vero in ogni schema di messa a punto ... ma questo è un buon inizio. Se davvero a cuore la piena complessità di accordatura, posso trovare alcuni riferimenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top