Class: RoadToRubykaigi::Audio::MelodySequencer

Inherits:
SequencerBase show all
Defined in:
lib/road_to_rubykaigi/audio/sequencer.rb

Constant Summary collapse

GENERATOR =
RoundedSquareOscillator
STACCATO_RATIO =
0.35
SCORE =

6 Measures

[ # 6 Measures
  { frequency: %i[F5], duration: 0.5, envelope: { a: 0.05, d: 0.0, s: 0.5, sl: 0.4, rl: 1.0 } },
  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },
  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },

  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[G5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },
  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },

  { frequency: %i[REST], duration: 0.5 },
  { frequency: %i[A5], duration: 0.5 },
  { frequency: %i[G5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },
  { frequency: %i[E5], duration: 1.0, envelope: :melody_long, staccato: 0.95 },

  { frequency: %i[F5], duration: 0.5, envelope: { a: 0.15, d: 0.15, s: 0.5, sl: 0.4, rl: 0.9 } },
  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[A4], duration: 0.5 },
  { frequency: %i[C5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[D5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[C5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },

  { frequency: %i[C5], duration: 1.0, envelope: { a: 0.5, d: 0.15, s: 0.7, sl: 0.5, rl: 0.5 }, staccato: 0.95 },
  { frequency: %i[F5], duration: 0.25, envelope: { a: 0.05, d: 0.0, s: 0.5, sl: 0.4, rl: 1.0 } },
  { frequency: %i[A5], duration: 0.25 },
  { frequency: %i[C5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[C5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[C5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },

  { frequency: %i[C5], duration: 0.5 },
  { frequency: %i[F5], duration: 0.5 },
  { frequency: %i[A5], duration: 0.25 },
  { frequency: %i[G5], duration: 0.25 },
  { frequency: %i[F5], duration: 0.25 },
  { frequency: %i[E5], duration: 0.25 },
  { frequency: %i[F5], duration: 1.0, envelope: :melody_long, staccato: 0.95 },
]

Constants inherited from SequencerBase

SequencerBase::BPM, SequencerBase::ENVELOPE, SequencerBase::NOTES

Instance Method Summary collapse

Methods inherited from SequencerBase

#finished?, #gain, #generate, #rewind, #sample_rate

Instance Method Details

#loop?Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/road_to_rubykaigi/audio/sequencer.rb', line 217

def loop?
  true
end