Первые ноты
Давайте посмотрим, как мы можем воспроизводить ноты
числа и ноты
воспроизведение нот с помощью чисел
note("48 52 55 59").sound("piano")Попробуйте разные числа!
Попробуйте десятичные числа, например 55.5
воспроизведение нот с помощью букв
note("c e g b").sound("piano")Попробуйте разные буквы (a - g).
Можете ли вы найти мелодии, которые образуют настоящие слова? Подсказка: ☕ 😉 ⚪
добавьте бемоль или диез, чтобы сыграть черные клавиши
note("db eb gb ab bb").sound("piano")note("c# d# f# g# a#").sound("piano")воспроизведение нот с буквами в разных октавах
note("c2 e3 g4 b5").sound("piano")Попробуйте разные октавы (1-8)
Если вы не знакомы с буквенной системой обозначения нот, вам будет проще использовать числа. Большинство примеров ниже будет использовать числа по этой причине. Мы также позже рассмотрим способы упростить игру правильных нот.
изменение звука
Так же, как и с неритмичными звуками, мы можем изменить звук наших нот с помощью sound:
note("36 43, 52 59 62 64").sound("piano")Попробуйте разные звуки:
- gm_electric_guitar_muted
- gm_acoustic_bass
- gm_voice_oohs
- gm_blown_bottle
- sawtooth
- square
- triangle
- как насчет bd, sd или hh?
- уберите
.sound('...')полностью
переключение между звуками
note("48 67 63 [62, 58]")
.sound("piano gm_electric_guitar_muted")наложение нескольких звуков
note("48 67 63 [62, 58]")
.sound("piano, gm_electric_guitar_muted")Паттерны note и sound комбинируются!
Мы увидим больше способов комбинировать паттерны позже..
Более длинные последовательности
Разделение последовательностей с помощью / для замедления
note("[36 34 41 39]/4").sound("gm_acoustic_bass")/4 воспроизводит последовательность в скобках на протяжении 4 циклов (=8с).
Таким образом, каждая из 4 нот длится 2 секунды.
Попробуйте добавить больше нот внутрь скобок и обратите внимание, как это ускоряется.
Воспроизведение одной на cycle с помощью < ... >
В предыдущей главе мы узнали, что < ... > (угловые скобки) можно использовать для воспроизведения только одной вещи за cycle,
что полезно и для более длинных мелодий:
note("<36 34 41 39>").sound("gm_acoustic_bass")Попробуйте добавить больше нот внутрь скобок и обратите внимание, как темп остается тем же.
Угловые скобки на самом деле — это просто сокращение:
<a b c> = [a b c]/3
<a b c d> = [a b c d]/4
…
Воспроизведение одной последовательности на cycle
Мы можем комбинировать 2 типа скобок различными способами. Вот пример повторяющейся басовой линии:
note("<[36 48]*4 [34 46]*4 [41 53]*4 [39 51]*4>")
.sound("gm_acoustic_bass")Чередование между несколькими вещами
note("60 <63 62 65 63>")
.sound("gm_xylophone")Это также полезно для неритмичных звуков:
sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")Гаммы
Найти правильные ноты может быть сложно.. Гаммы (scales) здесь, чтобы помочь:
setcpm(60)
n("0 2 4 <[6,8] [7,9]>")
.scale("C:minor").sound("piano")Попробуйте разные числа. Любое число должно звучать хорошо!
Попробуйте разные гаммы (scales):
- C:major
- A2:minor
- D:dorian
- G:mixolydian
- A2:minor:pentatonic
- F:major:pentatonic
автоматизация гамм
Как и всё остальное, мы можем автоматизировать гамму с помощью pattern:
setcpm(60)
n("<0 -3>, 2 4 <[6,8] [7,9]>")
.scale("<C:major D:mixolydian>/4")
.sound("piano")Если вы понятия не имеете, что означают эти гаммы, не волнуйтесь. Это просто названия для разных наборов нот, которые хорошо звучат вместе.
Не торопитесь, и вы найдете гаммы, которые вам понравятся!
Повторение и удлинение
Удлинение с помощью @
note("c@3 eb").sound("gm_acoustic_bass")Неиспользование @ равносильно использованию @1. В приведенном выше примере c длится 3 единицы, а eb — 1 единицу.
Попробуйте изменить это число!
Удлинение внутри подпоследовательностей
setcpm(60)
n("<[4@2 4] [5@2 5] [6@2 6] [5@2 5]>*2")
.scale("<C2:mixolydian F2:mixolydian>/4")
.sound("gm_acoustic_bass")Этот грув называется shuffle.
Каждый бит имеет две ноты, где первая в два раза длиннее второй.
Это иногда также называется triplet swing. Вы часто найдете это в блюзе и джазе.
Репликация
setcpm(60)
note("c!2 [eb,<g a bb a>]").sound("piano")Попробуйте переключаться между !, * и @
В чем разница?
Итоги
Давайте подведем итоги того, что мы узнали в этой главе:
| Концепция | Синтаксис | Пример |
|---|---|---|
| Замедление | / | note("[c a f e]/2") |
| Чередование | <> | note("c a f <e g>") |
| Удлинение | @ | note("c@3 e") |
| Репликация | ! | note("c!3 e") |
Новые функции:
| Название | Описание | Пример |
|---|---|---|
| note | установить высоту как число или букву | note("b g e c").sound("piano") |
| scale | интерпретировать n как ступень гаммы | n("6 4 2 0").scale("C:minor").sound("piano") |
| $: | воспроизводить паттерны параллельно | $: s("bd sd")
$: note("c eb g") |
Примеры
Классная басовая линия
note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("gm_synth_bass_1")
.lpf(800) // <-- мы скоро узнаем об этомКлассная мелодия
n(`<
[~ 0] 2 [0 2] [~ 2]
[~ 0] 1 [0 1] [~ 1]
[~ 0] 3 [0 3] [~ 3]
[~ 0] 2 [0 2] [~ 2]
>*4`).scale("C4:minor")
.sound("gm_synth_strings_1")Классные ударные
sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")Если бы только был способ воспроизводить всё вышеперечисленное одновременно…
Вы можете использовать $:
Воспроизведение нескольких паттернов
Если вы хотите воспроизводить несколько паттернов одновременно, убедитесь, что написали $: перед каждым:
$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>")
.sound("gm_synth_bass_1").lpf(800)
$: n(`<
[~ 0] 2 [0 2] [~ 2]
[~ 0] 1 [0 1] [~ 1]
[~ 0] 3 [0 3] [~ 3]
[~ 0] 2 [0 2] [~ 2]
>*4`).scale("C4:minor")
.sound("gm_synth_strings_1")
$: sound("bd*4, [~ <sd cp>]*2, [~ hh]*4")
.bank("RolandTR909")Попробуйте изменить $ на _$, чтобы заглушить часть!
Это начинает звучать как настоящая музыка! У нас есть звуки, у нас есть ноты, теперь не хватает последнего кусочка головоломки: эффектов