🎵 Music.Monvalto - Estudio de Grabación 🎵
▶️ Ejecutar/Actualizar
⏹️ Detener
🔴 Grabar
⏹️ Detener Grabación
💾 Descargar WAV
🗑️ Limpiar
00:00
Estado: Listo para comenzar
🎛️ Consola de Music.Monvalto 🎛️
Sistema inicializado - Listo para comenzar
💻 Music.Monvalto 💻
// Proyecto 3: House de los 90 con afinación a 432 Hz // Basado en los principios de proporción áurea, geometría sagrada y sintaxis de Strudel.cc // 0. Samples samples({voicer: 'libs/raro.wav'}, 'https://music.monvalto.com/'); // 1. Establecer el tempo // BPM: 129.6 (Proporción armónica con 432 Hz) setcps(0.54) // 2. Definir Patrones Musicales // --- Patrones de Batería --- const drumPattern1 = sound(` [bd - oh -][bd - oh -] [bd - - -][bd - oh -], [- - - -][cp - - -] [- - - -][cp - - -] `).bank("RolandTR707").gain(0.2); const drumPattern2 = sound(` [bd - hh -][bd - hh -] [bd - oh -][bd - oh -], [- - - -][cp*4 - - cp*4] [- - - -][cp*4 - - cp*4] `).bank("RolandTR707").gain(0.2); // --- Patrones de Batería Euclidianos (Fibonacci) --- const drumPattern3 = sound(` bd(4,4), ~ cp, hh(5,8) `).bank("RolandTR707").gain(0.2); const drumPattern4 = sound(` bd(4,4), ~ cp, hh(13,16), oh(3,8) `).bank("RolandTR707").gain(0.2); // --- Patrones de Bajo --- const bassPattern1 = note(` [c2 ~ c3 c2] [g#2 ~ c3 g#2] [d#2 ~ d#3 d#2] [a#2 ~ d#3 a#2] `).sound("sawtooth, triangle") .lpf(1500) .gain(0.7); const bassPattern2 = note(` [d3 - d3 -] [- - d4 -] [d3 - d#3 -] [- - d4 -] `).sound("sawtooth, triangle") .gain(0.4); // --- Patrón de Acordes --- const chordPattern1 = note(` ~ ~,[g,d#,g,a#] ~ ~ ~ ~,~ ~ ~ ~ [g,a#,d,d#], ~ ~ ~ [a#,d,f,a],~ ~ ~ ~ `).sound("gm_steel_drums") .sustain(0.6).gain(0.4); const chordPattern2 = note(` [- - - -] [a g a -] [- - - -] [a g a -] `).sound("gm_steel_drums") .sustain(0.7).gain(0.5); // --- Patrón de Melodía --- const melodyPattern = note(` c5 d#5 g5 a#5 g#4 c5 d#5 g5 d#5 g5 a#5 d6 a#4 d5 f5 a5 `).sound("sine") .delay(0.35).delayfeedback(0.5) .room(0.3).gain(0.2); // --- Patrón de Voz --- const voice = s("voicer - voicer -"); // 3. Estructura de la Canción (Intro -> Desarrollo -> Climax) const intro = stack( drumPattern3, bassPattern1, chordPattern1, ); const desarrollo = stack( drumPattern4, bassPattern2, chordPattern1, melodyPattern ); const climax = stack( drumPattern2, bassPattern2, chordPattern2, voice, ); // Secuenciador: 2 ciclos de Intro, 2 de Desarrollo, 4 de Climax cat( intro, intro, desarrollo, desarrollo, climax, climax, climax, climax ) .speed(432/440) ._punchcard().color("cyan magenta")