¿Cómo hacer referencia o calcular el cambio de tono porcentual entre dos notas?

Estoy construyendo un software arpegiador.

Entonces, para comenzar, tengo una nota para una muestra de piano, llámela 'piano-base-note.mp3'.

y tengo un script para aumentar/disminuir el tono de un archivo mp3 en un porcentaje. Cuando se inicie el arpegiador, creará los archivos mp3 modificados necesarios para reproducir el arpegio. Es decir, cambiará el tono y guardará nuevas copias.

En este momento estoy definiendo una 'nota' en términos de diferencia porcentual de la nota base. Es decir, bajar un 50% en el tono sería 0.5. Para doble tono es 2.0.

Ahora estoy tratando de usar este enfoque basado en porcentajes para hacer escalas reales, y no estoy seguro de cómo hacerlo.

¿Hay algún tipo de gráfico que muestre el cambio de tono porcentual entre dos notas? O una fórmula para calcularlo?

huygens-fokker.org/scala podría valer la pena echarle un vistazo.
Estaba a punto de preguntar por qué usaría la diferencia porcentual (una complicación innecesaria) en lugar de la proporción, ¡pero luego vi que está usando la proporción! (Los dos cambios que menciona, expresados ​​como diferencias porcentuales, serían -50% y +100%).
Si lee el código de Objective-C, consulte esta clase que creé que hace exactamente lo que está pidiendo. La clase de reproductor de audio en la biblioteca también le permite modificar el tono de una muestra en tiempo real. Aquí: github.com/rednebmas/SBMusicUtilities/blob/master/…

Respuestas (7)

La respuesta general a "cuál es el cambio de tono porcentual entre dos notas" es probablemente "jueves", ya que el OP no ha dado ninguna pista de lo que se supone que significa "nota".

Si estás hablando de música occidental convencional y temperamento igual, una octava tiene una relación de frecuencia de 2:1 y se divide en 12 partes (semitonos). Los cambios de tono funcionan en una escala logarítmica, por lo que un semitono tiene una relación de tono de (la raíz 12 de 2): 1, o un aumento de 5,94630943592952645618252949463% (según la calculadora de Windows 10).

La forma estándar de describir el tamaño numérico de los intervalos musicales es en "centavos": un centavo es 1/100 de un semitono o 1/1200 de una octava, medido en una escala logarítmica. Por lo tanto, un centavo es una relación de tono de 0,05777895065548592967925757932%; tenga en cuenta que, dado que se trata de una escala logarítmica, NO es "el tamaño de un semitono dividido por 100", es decir, 0,0594630943592952645618252949463%.

Hay muchos otros sistemas de afinación posibles: pruebe https://en.wikipedia.org/wiki/Musical_temperament para comenzar, o busque en Google "temperamento musical".

En "Entonación justa", los intervalos de un arpegio suelen ser fracciones bastante simples como 5/4, 4/3, 3/2, 8/5, etc.

No existe una razón lógica profunda por la que una octava deba dividirse en 12 partes iguales, como en la música popular occidental. Por ejemplo, la música india "clásica" utiliza una escala con 22 divisiones desiguales. En Occidente también se han utilizado escalas con otros números de divisiones iguales, por ejemplo, 19, 24, 53 o 72 "notas por octava" en lugar de 12.

Gran respuesta, pero hay una razón lógica (no necesariamente profunda) para dividir una escala en semitonos iguales. Si usamos solo la entonación y recorremos el círculo de quintas, de C a C, aterrizaremos ligeramente torcidos de donde comenzamos. Históricamente, se utilizaron otros compromisos, con algunas teclas sonando más afinadas que otras; cada tecla tenía su propio 'color'. . . con el advenimiento del temperamento igual, se hizo posible escribir música que explotara los cambios de tonalidad, como lanzarse a otra tonalidad desde un acorde de séptima dominante. (Irónicamente, un acorde de séptima dominante en entonación justa suena muy suave)

Hay dos tipos de fórmulas que puede usar para encontrar la relación entre notas: solo entonación y temperamento igual; ambos tienen sus ventajas y desventajas, que no entraré en muchos detalles en esta respuesta, ya que parece estar fuera del alcance de su pregunta.

Primero, una regla general, que se cumple en ambos sistemas

Para encontrar una nota una octava por encima de otra nota, multiplique su número por 2. Para encontrar una nota una octava por debajo de otra nota, divida su número por 2.

Entonación justa

En entonación justa, el número por el que multiplicarás un tono será una relación entre dos números enteros; diste dos ejemplos en tu pregunta: 1/2 (o 0,5) y 2/1 (o 2,0).

Estas son las fracciones por las que debes multiplicar tu nota base para obtener las notas de la escala mayor en entonación justa:

Tónico/1º: 1

2º: 9/8

3º: 5/4

4to: 4/3

5to: 3/2

6º: 5/3

7: 15/8

Y aquí están las fracciones para las notas de la escala menor:

Tónico/1º: 1

2º: 9/8

3º: 6/5

4to: 4/3

5to: 3/2

6º: 8/5

7º: 9/5

temperamento igual

La octava se divide en 12 semitonos. En temperamento igual, cada uno de los semitonos tiene exactamente el mismo tamaño: la raíz doceava de dos. Así, 1 semitono arriba es igual a 1 por la raíz doceava de dos, 2 semitonos arriba es igual a 2 veces la raíz doceava de dos, y así sucesivamente. Aquí están las aproximaciones decimales para los intervalos temperados iguales de la escala.

1 semitono/segundo menor: 1.059463

2 semitonos/segundo mayor: 1.122462

3 semitonos/tercera menor: 1.189207

4 semitonos/tercera mayor: 1.259921

5 semitonos/cuarta perfecta: 1.334840

6 semitonos/tritono: 1.414214

7 semitonos/quinta justa: 1.498307

8 semitonos/sexta menor: 1.587401

9 semitonos/sexta mayor: 1.681793

10 semitonos/séptima menor: 1.781797

11 semitonos/séptima mayor: 1.887749

12 semitonos/ octava: 2.0

Entonces, ¿qué sistema debería usar?

Los intervalos de entonación justa tienen un sonido más puro. Sin embargo, solo funciona en una clave. Si configura las proporciones para C mayor en entonación justa y luego toca una escala o arpegio de D mayor, sonará mal. Dado que está creando un programa, asumo que desea que funcione en todas las tonalidades, por lo que diría que el temperamento igual es la fórmula adecuada para el trabajo. Además, mencionaste que estabas usando una muestra de piano. Los pianos están afinados con temperamento igual, por lo que probablemente sonará más fiel a un sonido de piano real si usa temperamento igual.

En realidad, los pianos no están afinados con un temperamento igual (google "Afinación estirada"), pero si el OP solo funciona con UNA muestra de piano, eso es irrelevante de todos modos.
En la afinación estirada, ¿los pasos no son iguales entre sí?
La afinación estirada es algo parecido a una quinta perfecta templada por igual en 7 pasos, así que pow((3/2), (n/7)), en lugar de una octava dividida por igual en 12 notas. Así es como Steinway espera que se afinen sus pianos, según tengo entendido. En realidad, varía según el piano y el registro, ya que los armónicos de una cuerda de piano golpeada son más anchos que los armónicos de una cuerda ideal y cambian según las características individuales de cada cuerda (lea más sobre este fenómeno en en.m. wikipedia.org/wiki/Inarmonicidad ).

Su fórmula, estilo excel, será pow(2, (n/12)) donde n es n medio paso por encima del tono original.

Para una escala mayor, use las notas 0 2 4 5 7 9 11 y 12.

Esto le dará una escala mayor temperada igual en forma de mp3.

Otras respuestas son bastante profundas, pero descubrí que para cálculos rápidos en el reverso del sobre, usaré 6% como medio paso, multiplicar o dividir por 1.06, ya que eso es aproximadamente igual a la 12 raíz de 2. Es una aproximación decente de 12-TET si no te importa la entonación y solo quieres estimar, digamos, cuánto más pequeños deben ser los trastes de tu guitarra para estar más arriba en el mástil o lo que sea. Por supuesto, si necesito una respuesta exacta, nunca haría esto, pero solo para experimentos mentales en los que necesito una conjetura aproximada, citaré un 6 %.

6% es una aproximación sorprendentemente buena (error de 0,9 centavos), pero al sumar los errores pueden sumar, no hay razón para no usar la precisión total en un programa de computadora. Cabe destacar que, históricamente, se utilizó la "regla de 18" en la construcción de instrumentos, por lo que el primer traste tenía una longitud de 17/18 de la escala del instrumento (error de 1,0 centavo).

Usando el cálculo de alta precisión SpeedCrunch para Linux... se siente como la minería de Bitcoin ya que el número final se alinea con una fila perfecta de ceros al final...

En punto flotante de 64 bits:


1
= 1.00000000000000000000000000000000000000000000000000

ans*2^(1/12)
= 1.05946309435929526456182529494634170077920431749419

ans*2^(1/12)
= 1.12246204830937298143353304967917951623241111061399

ans*2^(1/12)
= 1.18920711500272106671749997056047591529297209246382

ans*2^(1/12)
= 1.25992104989487316476721060727822835057025146470151

ans*2^(1/12)
= 1.33483985417003436483083188118445277491239021262520

ans*2^(1/12)
= 1.41421356237309504880168872420969807856967187537695

ans*2^(1/12)
= 1.49830707687668149879928073202979579630215155373175

ans*2^(1/12)
= 1.58740105196819947475170563927230826039149332789985

ans*2^(1/12)
= 1.68179283050742908606225095246642979008006852471357

ans*2^(1/12)
= 1.78179743628067860948045241118102501597442523175632

ans*2^(1/12)
= 1.88774862536338699328382631333506875201513660667749

ans*2^(1/12)
= 2.00000000000000000000000000000000000000000000000000

@ user19146 parece que te estás refiriendo a la afinación pitagórica, que, si bien es bastante genial, matemáticamente elegante y usa fracciones simples, no es tan original como el registro de 1/12. Estuvo cerca, pero no del todo.

¿Es necesario que las notas del arpegio sean notas de la escala de clave? Puede considerar espaciarlos por igual (en frecuencias absolutas en lugar de logaritmos), de modo que cada uno sea un múltiplo (dentro de la tolerancia del temperamento) de la misma frecuencia fundamental. Así: suponiendo que vas de freq0 a freq1, con N-1 pasos intermedios, la j-ésima nota de dicho arpegio es freq0+j*(freq1-freq0)/N.

(Si la relación ideal entre las frecuencias extremas es p:q, por ejemplo, 5:8 para una sexta menor, N debería ser un múltiplo de |pq|.)

Sé que esto es viejo, pero me preguntaba lo mismo. Después de investigar un poco y calcular por mí mismo, la respuesta que creo que estaba buscando el OP es la siguiente: para una escala de temperamento igual de 12 notas por octava, cada nota o semitono es 5.946309436% "más alto" en frecuencia que la nota anterior. Entonces, si tiene una muestra de piano en "A" y toca la muestra a una velocidad de reproducción de 1.0596309436x, se reproducirá como A#/Bb. Para B, aumenta la velocidad de reproducción de la muestra A#/Bb en otro 5,963...% (lo que da como resultado una velocidad de reproducción de aproximadamente 1,1225x de la muestra original). La cifra de 5,96309436% solo funciona de manera incremental al subir la escala. Al descender en la escala, cada nota (semitono) debe reproducirse un 5,612568731 % más bajo/más lento que la nota anterior (o aproximadamente 0,9439x de la velocidad de reproducción)

Aquí hay un gráfico parcial simple que proporciona la velocidad de reproducción y la frecuencia resultante de algunas notas si estuviera usando una muestra que era una A a velocidad normal (440 Hz):

F#Gb- 0.8409x 369.99hz (5.61% más lento que G)

G------ 0.8909x 392.00hz (5.61% más lento que G#/Ab)

G#Ab- 0.9439x 415.30hz (5.61% más lento que A)

A------ 1.0000x 440.00hz

A#Bb- 1.0595x 466.16hz (5.95% más rápido que A)

B------ 1.1225x 493.88hz (5.95% más rápido que A#Bb)

C------ 1.1892x 523.25hz (5.95% más rápido que B)

C#Db- 1.2599x 554.37hz (5.95% más rápido que C)

Simplemente continúe de la misma manera en cualquier dirección para cualquier otra nota que desee reproducir basándose en la muestra original.

Agregaría la fórmula de cálculo para el 5.6...% mágico (raíz 12 de 2 menos 1) y recomendaría reemplazar más lento por más bajo y más rápido por más alto, ya que si ya hablando de frecuencias, más lento/más rápido es más engañoso que útil.