basic-sequencer 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sequencer.rb +1 -1
- data/lib/sequencer/clock.rb +24 -0
- data/test/clock_test.rb +40 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fee1fb5787628ee5fd6fe422239e040e37d7309
|
4
|
+
data.tar.gz: 24ca6dca2aad4d6dad6cb9221f2d0b61f7870adb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb36e4d709eb8b179f84a91c132c85cc0efa6c2c94449ab90387ec05c7807dd273278afd1404944b878d8fb6e76c7444c97c44edfdf60cb42de241404c5dddfe
|
7
|
+
data.tar.gz: ad16382fa3c2a3922277e964ef849b304dedc92910e38a1856f063378cd8f660be720734dd3b2ab516c3589e2e4ddd6835467a964d29b29ba3ff6ead9962f2af
|
data/lib/sequencer.rb
CHANGED
data/lib/sequencer/clock.rb
CHANGED
@@ -32,6 +32,30 @@ module Sequencer
|
|
32
32
|
Thread.abort_on_exception = true
|
33
33
|
end
|
34
34
|
|
35
|
+
# Add a MIDI clock output
|
36
|
+
# @param [Array<UniMIDI::Output>, UniMIDI::Output] output
|
37
|
+
# @return [Array<UniMIDI::Output>]
|
38
|
+
def add_midi_output(output)
|
39
|
+
outputs = [output].flatten
|
40
|
+
@clock.add_destination(outputs)
|
41
|
+
midi_outputs
|
42
|
+
end
|
43
|
+
|
44
|
+
# Remove a MIDI clock output
|
45
|
+
# @param [Array<UniMIDI::Output>, UniMIDI::Output] output
|
46
|
+
# @return [Array<UniMIDI::Output>]
|
47
|
+
def remove_midi_output(output)
|
48
|
+
outputs = [output].flatten
|
49
|
+
@clock.remove_destination(outputs)
|
50
|
+
midi_outputs
|
51
|
+
end
|
52
|
+
|
53
|
+
# The MIDI outputs
|
54
|
+
# @return [Array<UniMIDI::Output>]
|
55
|
+
def midi_outputs
|
56
|
+
@clock.destinations.map(&:output)
|
57
|
+
end
|
58
|
+
|
35
59
|
private
|
36
60
|
|
37
61
|
# Action taken by the clock on a tick. Fires the tick event
|
data/test/clock_test.rb
CHANGED
@@ -8,6 +8,46 @@ class Sequencer::ClockTest < Test::Unit::TestCase
|
|
8
8
|
@clock = Sequencer::Clock.new(120)
|
9
9
|
end
|
10
10
|
|
11
|
+
context "Clock#initialize" do
|
12
|
+
|
13
|
+
should "get MIDI output" do
|
14
|
+
output = Object.new
|
15
|
+
@clock = Sequencer::Clock.new(120, :output => output)
|
16
|
+
assert_not_nil @clock.midi_outputs
|
17
|
+
assert_not_empty @clock.midi_outputs
|
18
|
+
assert @clock.midi_outputs.include?(output)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
context "Clock#add_midi_output" do
|
24
|
+
|
25
|
+
should "add MIDI output" do
|
26
|
+
output = Object.new
|
27
|
+
refute @clock.midi_outputs.include?(output)
|
28
|
+
@clock.add_midi_output(output)
|
29
|
+
assert_not_nil @clock.midi_outputs
|
30
|
+
assert_not_empty @clock.midi_outputs
|
31
|
+
assert @clock.midi_outputs.include?(output)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
context "Clock#remove_midi_output" do
|
37
|
+
|
38
|
+
should "remove MIDI output" do
|
39
|
+
output = Object.new
|
40
|
+
refute @clock.midi_outputs.include?(output)
|
41
|
+
@clock.add_midi_output(output)
|
42
|
+
assert_not_nil @clock.midi_outputs
|
43
|
+
assert_not_empty @clock.midi_outputs
|
44
|
+
assert @clock.midi_outputs.include?(output)
|
45
|
+
@clock.remove_midi_output(output)
|
46
|
+
refute @clock.midi_outputs.include?(output)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
11
51
|
context "Clock#tempo" do
|
12
52
|
|
13
53
|
should "get tempo" do
|