Class: Daw
- Inherits:
-
Object
show all
- Defined in:
- lib/daw.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize ⇒ Daw
Returns a new instance of Daw.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/daw.rb', line 15
def initialize
osc_server = OSC::EMServer.new(11_011)
osc_client = OSC::Client.new('localhost', 10_001)
Thread.new { osc_server.run }
@sequencer = Musa::Sequencer::Sequencer.new 4, 24, do_log: true
@clock = Musa::Clock::InputMidiClock.new do_log: true, logger: @sequencer.logger
transport = Musa::Transport::Transport.new @clock, sequencer: @sequencer
transport.after_stop do
sequencer.reset
end
@midi_devices = MIDIDevices.new(@sequencer)
@tracks, @handler = daw_initialize(midi_devices: @midi_devices, clock: @clock, osc_server: osc_server, osc_client: osc_client, logger: @sequencer.logger)
@handler.sync
Thread.new { transport.start }
end
|
Instance Attribute Details
#clock ⇒ Object
Returns the value of attribute clock.
42
43
44
|
# File 'lib/daw.rb', line 42
def clock
@clock
end
|
#sequencer ⇒ Object
Returns the value of attribute sequencer.
42
43
44
|
# File 'lib/daw.rb', line 42
def sequencer
@sequencer
end
|
#tracks ⇒ Object
Returns the value of attribute tracks.
42
43
44
|
# File 'lib/daw.rb', line 42
def tracks
@tracks
end
|
Class Method Details
.daw_controller_for(daw_id) ⇒ Object
11
12
13
|
# File 'lib/daw.rb', line 11
def self.daw_controller_for(daw_id)
@@daws[daw_id].new
end
|
.register(daw_id, daw_class) ⇒ Object
6
7
8
9
|
# File 'lib/daw.rb', line 6
def self.register(daw_id, daw_class)
@@daws ||= {}
@@daws[daw_id] = daw_class
end
|
Instance Method Details
#midi_sync(midi_device_name, manufacturer: nil, model: nil, name: nil) ⇒ Object
44
45
46
47
48
49
50
51
52
|
# File 'lib/daw.rb', line 44
def midi_sync(midi_device_name, manufacturer: nil, model: nil, name: nil)
name ||= midi_device_name
@clock.input = MIDICommunications::Input.all.find do |_|
(_.manufacturer == manufacturer || manufacturer.nil?) &&
(_.model == model || model.nil?) &&
(_.name == name || name.nil?)
end
end
|
#sync ⇒ Object
54
55
56
|
# File 'lib/daw.rb', line 54
def sync
@handler.sync
end
|
#track(name, all: false) ⇒ Object
40
|
# File 'lib/daw.rb', line 40
def track(name, all: false); end
|