datos

Sonic Pi

Parte1_IntroSonicPi

Parte2_SonicPiAvanzado

Series de datos

potencia = [70,70,70,70,72,74,74,74,77,77,77,77,77,79,79,82,82,82,82,77,77,77,72,70,69,69,69,69,69,69,67,67,67,67,67,65,65,63,60,60,60,60,60,58,58,58,58,58]

voltaje = [58,58,58,58,58,58,58,58,62,62,62,62,65,65,65,65,65,65,67,67,67,67,67,67,67,65,65,65,65,65,65,63,63,63,63,63,63,63,63,65,65,65,65,70,70,70,70,70]

voltaje_dim = [58,58,58,58,58,58,58,58,62,62,62,62]

temperatura = [22,22,22,22,24,26,26,26,29,29,29,29,29,31,31,34,34,34,34,29,29,29,24,22,21,21,21,21,21,21,19,19,19,19,17,17,15,12,12,12,12,10,10,10,10]

Archivos de datos

sample.csv

datos_univariable.zip

datos_multivariable.zip

Funciones

# Función de mapeado de intervalos
# dato_min: el valor mínimo de los datos origen. Se puede obtener con data.by_col["variableX"].min
# dato_max: el valor máximo de los datos origen. Se puede obtener con data.by_col["variableX"].max
# dest_min: el valor mínimo de la dimensión sonora destino (notas MIDI, valores para amp, rate, etc.)
# dest_max: el valor máximo de la dimensión sonora destino (notas MIDI, valores para amp, rate, etc.)
# IMPORTANTE: cuando la dimensión sonora son notas MIDI, elegir octavas enteras si se quiere emplear después
# las funciones "toca_mayor" o "diatonica"
def imagen(dato_min, dato_max, dest_min, dest_max, dato)
(dest_min + (dato - dato_min) * ((dest_max - dest_min)/(dato_max - dato_min)))
end
# Función de conversión a una escala mayor DE UNA OCTAVA de EXTENSIÓN
# notamin: nota fundamental de la escala
# valor: la nota original que se ajustará a la inferior más cercana de la escala mayor
def toca_mayor(notamin, valor)
case
when (valor>=notamin) && (valor<notamin+2)
play notamin
when (valor>=notamin+2) && (valor<notamin+4)
play notamin+2
when (valor>=notamin+4) && (valor<notamin+5)
play notamin+4
when (valor>=notamin+5) && (valor<notamin+7)
play notamin+5
when (valor>=notamin+7) && (valor<notamin+9)
play notamin+7
when (valor>=notamin+9) && (valor<notamin+11)
play notamin+9
when (valor>=notamin+11) && (valor<notamin+12)
play notamin+11
when valor>=notamin+12
play notamin+12
end
end
# Función de conversión a una escala diatónica
# notamin: nota fundamental de la escala (debe coincidir con la nota menor del rango elegido)
# tipo: el tipo de escala
# octavas: el número de octavas de despliegue
# valor: la nota original que se ajustará a la inferior más cercana de la escala tipo
def diatonica(notamin, tipo, octavas, valor)
a = scale(notamin, tipo, num_octaves: octavas)
print a

for i in(0..a.length-2)
if ((valor<a[0]) || (valor>a[a.length-1]))
puts "Valor fuera de rango"
break
end

puts "#{i} [#{a[i]}, #{a[i+1]}]"

if ((valor>=a[i]) && (valor<a[i+1]))
puts "La nota de entrada es %d" % valor
puts "La nota que realmente suena es %d" % a[i]
play a[i]
break
end

if (a[i+1]==a[a.length-1])
puts "La nota que suena * es %d" % a[a.length-1]
play a[a.length-1]
end
end
end

Start typing and press Enter to search