null
музыка · delta machine · sonic pi

8

NES. Sega. консольная эстетика. четыре мира по 90 секунд.


артистDELTA MACHINE
движокSonic Pi
треков4
длительность06:00
формат4 × 90.0s
тональностьmixolydian · dorian · harmonic minor
статусreleased · 2026

«8» — это восемь бит.

Четыре мира. Каждый живёт ровно 90 секунд. NES Quest → Cosmic 1994 → Modern Chip Assault → Delta Glitch Core.

Chiptune не как ностальгия — как ограничение. Ограничение как форма.


01 NES Quest
классический квест. простой паттерн.
02 Cosmic 1994
fm-синтез. космос через старый чип.
03 Modern Chip Assault
современный ритм в старой форме.
04 Delta Glitch Core
глитч как финал. система ломается красиво.

# Signature: E dorian / FM pad + FM lead / sparse floating groove / echo+reverb space
use_debug false
use_bpm 124

# strict duration lock
start_t = vt
dur = 90.0

roots = (ring :e2, :d2, :a1, :b1)
chords = (ring
  (chord :e3, :minor7),
  (chord :d3, :sus2),
  (chord :a2, :minor7),
  (chord :b2, :major7)
)

lead_pool = (scale :e4, :dorian, num_octaves: 2).ring
lead_core = (ring 0,2,4,6, 7,6,4,2, 0,2,4,7)
end_1 = (ring 9,7,6,4)
end_2 = (ring 11,9,7,6)
end_3 = (ring 7,6,4,2)
end_4 = (ring 12,9,7,4)

lead_step = 0
harm_step = 0

with_fx :reverb, mix: 0.30, room: 1 do
  with_fx :echo, mix: 0.16, phase: 0.375, decay: 4 do

    live_loop :space_drums do
      t = vt - start_t
      stop if t >= dur

      step = tick(:sd) % 16
      # floating skeleton: fewer hits
      sample :bd_tek, amp: 0.72 if (step == 0 || step == 11)
      sample :sn_dolf, amp: 0.50 if step == 8
      sample :drum_cymbal_closed, amp: 0.10 if (spread 4,16).tick(:sh)
      sample :elec_tick, amp: 0.08 if (step == 4 || step == 12)

      sleep 0.125
    end

    live_loop :fm_pad do
      t = vt - start_t
      stop if t >= dur

      ch = chords[harm_step % chords.length]
      use_synth :fm
      # 2-note pad to keep event density safe
      synth :fm, note: ch[0], amp: 0.22, attack: 0.25, release: 1.6, depth: 1.8, divisor: 2, cutoff: 88
      synth :fm, note: ch[2], amp: 0.18, attack: 0.30, release: 1.8, depth: 1.6, divisor: 3, cutoff: 86

      harm_step += 1
      sleep 2.0
    end

    live_loop :fm_bass do
      t = vt - start_t
      stop if t >= dur

      root = roots.tick(:rb)
      phrase = (ring root, root + 7, root + 9, root + 7)
      bn = phrase.tick(:fb)

      use_synth :fm
      synth :fm, note: bn, amp: 0.34, release: 0.30, depth: 2.0, divisor: 1, cutoff: 84

      sleep 0.75
    end

    live_loop :cosmic_lead do
      t = vt - start_t
      stop if t >= dur

      cyc = (lead_step / 16) % 4
      pos = lead_step % 16
      idx =
        if pos < 12
          lead_core[pos]
        else
          if cyc == 0
            end_1[pos - 12]
          elsif cyc == 1
            end_2[pos - 12]
          elsif cyc == 2
            end_3[pos - 12]
          else
            end_4[pos - 12]
          end
        end

      n = lead_pool[idx]
      use_synth :fm
      synth :fm, note: n, amp: 0.28, release: 0.22, depth: 2.4, divisor: 2, cutoff: 104

      if one_in(9)
        synth :fm, note: n + 12, amp: 0.10, release: 0.10, depth: 1.2, divisor: 3, cutoff: 110
      end

      lead_step += 1
      sleep 0.25
    end
  end
end