diamond 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,96 @@
1
+ require "helper"
2
+
3
+ class Diamond::SequenceParametersTest < Test::Unit::TestCase
4
+
5
+ context "SequenceParameters" do
6
+
7
+ setup do
8
+ @sequence = Diamond::Sequence.new
9
+ @params = Diamond::SequenceParameters.new(@sequence, 16) { @sequence.mark_changed }
10
+ end
11
+
12
+ context "#rate=" do
13
+
14
+ should "set rate" do
15
+ @sequence.expects(:mark_changed).once
16
+ @params.rate = 16
17
+ assert_equal 16, @params.rate
18
+ end
19
+
20
+ end
21
+
22
+ context "#range=" do
23
+
24
+ should "set range" do
25
+ @sequence.expects(:mark_changed).once
26
+ @params.range = 4
27
+ assert_equal 4, @params.range
28
+
29
+ @sequence.expects(:mark_changed).once
30
+ @params.range += 1
31
+ assert_equal 5, @params.range
32
+ end
33
+
34
+ end
35
+
36
+ context "#interval=" do
37
+
38
+ should "set interval" do
39
+ @sequence.expects(:mark_changed).once
40
+ assert_not_equal 7, @params.interval
41
+ @params.interval = 7
42
+ assert_equal 7, @params.interval
43
+ end
44
+
45
+ end
46
+
47
+ context "#gate=" do
48
+
49
+ should "set gate" do
50
+ @sequence.expects(:mark_changed).once
51
+ assert_not_equal 125, @params.gate
52
+ @params.gate = 125
53
+ assert_equal 125, @params.gate
54
+ end
55
+
56
+ end
57
+
58
+ context "#pattern_offset=" do
59
+
60
+ should "set pattern offset" do
61
+ @sequence.expects(:mark_changed).once
62
+ assert_not_equal 5, @params.pattern_offset
63
+ @params.pattern_offset = 5
64
+ assert_equal 5, @params.pattern_offset
65
+ end
66
+
67
+ end
68
+
69
+ context "#constrain" do
70
+
71
+ should "constrain max only" do
72
+ assert_equal 40, @params.send(:constrain, 50, :max => 40)
73
+ assert_equal 30, @params.send(:constrain, 30, :max => 40)
74
+ end
75
+
76
+ should "constain min only" do
77
+ assert_equal 40, @params.send(:constrain, 30, :min => 40)
78
+ assert_equal 50, @params.send(:constrain, 50, :min => 40)
79
+ end
80
+
81
+ should "constrain to min and max" do
82
+ assert_equal 10, @params.send(:constrain, 5, :min => 10, :max => 100)
83
+ assert_equal 100, @params.send(:constrain, 500, :min => 10, :max => 100)
84
+ assert_equal 50, @params.send(:constrain, 50, :min => 10, :max => 100)
85
+ end
86
+
87
+ should "constrain to range" do
88
+ assert_equal 10, @params.send(:constrain, 5, :range => 10..100)
89
+ assert_equal 100, @params.send(:constrain, 500, :range => 10..100)
90
+ assert_equal 50, @params.send(:constrain, 50, :range => 10..100)
91
+ end
92
+
93
+ end
94
+ end
95
+ end
96
+
@@ -0,0 +1,36 @@
1
+ require "helper"
2
+
3
+ class Diamond::SequenceTest < Test::Unit::TestCase
4
+
5
+ context "Sequence" do
6
+
7
+ setup do
8
+ @sequence = Diamond::Sequence.new
9
+ @params = Diamond::SequenceParameters.new(@sequence, 16) { @sequence.mark_changed }
10
+ end
11
+
12
+ context "#update" do
13
+
14
+ should "convert notes to events" do
15
+ notes = [
16
+ MIDIMessage::NoteOn["C4"].new(0, 100),
17
+ MIDIMessage::NoteOn["E4"].new(0, 100),
18
+ MIDIMessage::NoteOn["G4"].new(0, 100)
19
+ ]
20
+ @sequence.add(notes)
21
+ schema = @sequence.send(:update)
22
+ assert_equal(24, schema.length)
23
+ assert_equal(MIDIInstrument::NoteEvent, schema[0][0].class)
24
+ assert_equal(MIDIInstrument::NoteEvent, schema[4][0].class)
25
+ assert_equal(MIDIInstrument::NoteEvent, schema[8][0].class)
26
+ assert_equal([], schema[1])
27
+ assert_equal([], schema[5])
28
+ assert_equal([], schema[9])
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
metadata ADDED
@@ -0,0 +1,222 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: diamond
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.1
5
+ platform: ruby
6
+ authors:
7
+ - Ari Russo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: analog
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '0.3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0.3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: basic-sequencer
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.0.6
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.0.6
53
+ - !ruby/object:Gem::Dependency
54
+ name: eventmachine
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.3
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.0.3
73
+ - !ruby/object:Gem::Dependency
74
+ name: midi-instrument
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.4.4
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.4.4
93
+ - !ruby/object:Gem::Dependency
94
+ name: midi-message
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.4.1
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.4.1
113
+ - !ruby/object:Gem::Dependency
114
+ name: midi-topaz
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.1.1
123
+ type: :runtime
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 0.1.1
133
+ - !ruby/object:Gem::Dependency
134
+ name: osc-ruby
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 0.1.1
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 0.1.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: unimidi
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 0.4.3
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 0.4.3
173
+ description: A MIDI arpeggiator in Ruby
174
+ email:
175
+ - ari.russo@gmail.com
176
+ executables: []
177
+ extensions: []
178
+ extra_rdoc_files: []
179
+ files:
180
+ - LICENSE
181
+ - README.md
182
+ - lib/diamond.rb
183
+ - lib/diamond/api.rb
184
+ - lib/diamond/arpeggiator.rb
185
+ - lib/diamond/clock.rb
186
+ - lib/diamond/midi.rb
187
+ - lib/diamond/osc.rb
188
+ - lib/diamond/pattern.rb
189
+ - lib/diamond/sequence.rb
190
+ - lib/diamond/sequence_parameters.rb
191
+ - test/api_test.rb
192
+ - test/arpeggiator_test.rb
193
+ - test/helper.rb
194
+ - test/osc_test.rb
195
+ - test/pattern_test.rb
196
+ - test/sequence_parameters_test.rb
197
+ - test/sequence_test.rb
198
+ homepage: http://github.com/arirusso/diamond
199
+ licenses:
200
+ - Apache 2.0
201
+ metadata: {}
202
+ post_install_message:
203
+ rdoc_options: []
204
+ require_paths:
205
+ - lib
206
+ required_ruby_version: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: '0'
211
+ required_rubygems_version: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: 1.3.6
216
+ requirements: []
217
+ rubyforge_project: diamond
218
+ rubygems_version: 2.2.2
219
+ signing_key:
220
+ specification_version: 4
221
+ summary: MIDI Arpeggiator
222
+ test_files: []