From 8acc546539dec49c501c429f0cd1c230bd06e4f1 Mon Sep 17 00:00:00 2001 From: dimon Date: Fri, 17 Jul 2026 15:29:44 +0000 Subject: [PATCH] Add jazz_improvisation.js --- jazz_improvisation.js | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 jazz_improvisation.js diff --git a/jazz_improvisation.js b/jazz_improvisation.js new file mode 100644 index 0000000..b4956d3 --- /dev/null +++ b/jazz_improvisation.js @@ -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("*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("") + .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("") // Стакатто играет на быстрых пассажах, вибрато — на длинных финалах + // --- НАСТРОЙКА ХАРАКТЕРА САКСОФОНА --- + .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) \ No newline at end of file