Notas y recursos de la clase. Imparte Dr. Hugo Solís García.
View the Project on GitHub MarianneTeixido/fundamentoscomputomusical
Lunes 18 de Agosto, 2025
Lugar: Zoom
El objetivo de esta clase profundizar en la sintaxis de las funciones y entender la relación entre frecuencias en relación al protocolo MIDI
~miFuncion = { arg param1, param2;
// Cuerpo de la función
param1 * param2; // Última línea es el valor de retorno
};
)
~miFuncion.value(5, 10);
(
~miFuncion = { arg param1 = 0, param2 = 1;
param1 + param2;
};
)
[40, 30, 32, 39, 31, 40, 33, 49]
(0..12)
.sum
: Suma todos los elementos..size
: Devuelve el número de elementos..scramble
: Devuelve una copia revuelta del arreglo..choose
: Devuelve un elemento aleatorio..do
:
(0..127).do({ arg nota;
// Código a ejecutar para cada valor de 'nota'
});
5.rand
: Entero aleatorio entre 0 y 4.5.0.rand
: Flotante aleatorio entre 0.0 y 5.0.rrand(3, 6)
: Entero aleatorio entre 3 y 6 (inclusive).exprand(2.0, 4.0)
: Flotante aleatorio entre 2.0 y 4.0.freq = 440 * (2 ** ((midiNote - 69) / 12))
midicps
(ej: 69.midicps
devuelve 440
).+
para concatenar:
("Nota: " + 60 + " Hz: " + 261.625).postln;
.do
en números: Itera n
veces (ej: 5.do{ ... }
itera 5 veces con valores de 0 a 4)..do
en arreglos: Itera sobre cada elemento del arreglo.Escribir una función que convierta un valor MIDI (0-127) a su frecuencia correspondiente en Hz usando la fórmula proporcionada.
Generar e imprimir las frecuencias de todas las notas MIDI (0 a 127) usando un ciclo.
Modificar el ejercicio para que también imprima el número de nota MIDI junto a su frecuencia.
Crear una serie de 12 notas (0 al 11), revolverla (scramble
), y luego iterar sobre ella.
Para cada nota, imprimir algo como: "Nota [nota+60]: [dinámica aleatoria]"
, donde las dinámicas sean elegidas aleatoriamente de un arreglo predefinido (ej: ["pp", "p", "mf", "f", "ff"]
).
Objetivo: Practicar el manejo de arreglos, iteración, aleatoriedad y concatenación de strings.
Archivo SuperCollider Sesión 2 (.scd)
Grabación de la Sesión 2