Method: Musicality::SuperCollider::Conductor#initialize

Defined in:
lib/musicality/performance/supercollider/conductor.rb

#initialize(score) ⇒ Conductor

Returns a new instance of Conductor.



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/musicality/performance/supercollider/conductor.rb', line 5

def initialize score
  unless score.is_a?(Score::Timed)
    raise ArgumentError, "The given score is not a Score::Timed. \
    Convert it first using ScoreConverter."
  end

  parts = score.collated? ? score.parts : ScoreCollator.new(score).collate_parts
  @performers = Hash[ parts.map do |name, part|
    [name, Performer.new(part)]
  end]
end