Add jazz_improvisation.js

This commit is contained in:
dimon 2026-07-17 15:29:44 +00:00
parent c88c485912
commit 8acc546539

56
jazz_improvisation.js Normal file
View File

@ -0,0 +1,56 @@
// Скорость джазового свинга
setcpm(30)
// 1. Ударные (используют стандартные сэмплы 's')
const drums = stack(
s("bd [~ bd] bd ~"),
s("~ sd ~ sd"),
s("hh*4")
.degradeBy(0.2)
.fast(1.5)
.slow(1)
).gain(0.3)
// 2. Джазовые аккорды (используют генератор 'sound')
const piano = chord("<Dm7 G7 C^7 C^7>*6")
.voicing()
.scale("D:dorian") // Карта нот (Дорийский лад)
.scramble(4) // Случайно путает порядок нот в каждом цикле)
.sound("piano")
.speed("0.9 1.0 0.8 0.7")
.lpf(1100) // Мягкий фильтр, убирает резкость пилы
.attack(0.04)
.release(2.5)
.voice(4) // Разрешаем звучать одновременно только 6 нотам.
.gain(0.15)
// 3. Бас (низкий синусоидальный синтезатор)
const bass = chord("<Dm7 G7 C^7 C^7>")
.rootNotes(2) // Сразу извлекаем тонику во 2-й (низкой) октаве
.sound("sine") // Чистый бас
.gain(0.6)
// 4. Случайная джазовая импровизация
// Мы просто перечисляем ноты в джазовой сетке, а метод scramble перемешивает их на ходу!
const sax = note("[0 2 4 6 7 9 11 12]*2")
.scale("D:dorian") // Карта нот (Дорийский лад)
.scramble(4) // Случайно путает порядок нот в каждом цикле)
.slow("<1.2 0.9 0.7 1.8>") // Фирменный разгон и замедление фразы
.degradeBy(0.25) // Случайно пропускает 25% нот, создавая живые паузы
.s("<sax_stacc*3 sax_stacc*2 sax sax_vib>") // Стакатто играет на быстрых пассажах, вибрато — на длинных финалах
// --- НАСТРОЙКА ХАРАКТЕРА САКСОФОНА ---
.speed("0.3 0.4 0.2 0.3") // Замедляем сам аудиофайл/ Он звучит дольше, жирнее и глубже
.attack(0.02) // Fade-in: убирает резкий щелчок, звук плавно «раздувается»
.hold(0.2) // Удержание: пик громкости в середине ноты
.release(2.0) // Fade-out: хвост звука плавно затухает после окончания ноты
.legato("<0.6 0.8 1.1 2.0>") // Связность: ноты немного наслаиваются, как при игре на одном дыхании. Для стаккато — короткое, для вибрато — длинное
.lpf(2800) // Фильтр: слегка приглушает ядовитые высокие частоты MIDI-сэмпла
.velocity("<1 0.7 0.9 0.6>") // Акценты: сильная доля громкая, слабая — тише
.slide("<0 0.03 0 -0.03>") // Крошечный слайд для джазовой небрежности
.gain("[1 0.3 0.8 0.4]*2") // Динамическая волна громкости: проваливает звук между нотами до 0.3 и взрывает до 1.0 на старте
.room(0.3)
.delay(0.3).delaytime(0.25).delayfeedback(0.2) // Легкое эхо для джазовой атмосферы
// Финальный микс
//stack(drums, piano, bass, sax)
stack(piano, sax)