music-transcription 0.6.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/examples/hip.yml +516 -0
  3. data/examples/make_hip.rb +63 -0
  4. data/examples/make_missed_connection.rb +65 -0
  5. data/examples/make_song1.rb +71 -0
  6. data/examples/make_song2.rb +58 -0
  7. data/examples/missed_connection.yml +305 -0
  8. data/examples/song1.yml +367 -0
  9. data/examples/song2.yml +236 -0
  10. data/lib/music-transcription/accent.rb +4 -15
  11. data/lib/music-transcription/accents.rb +12 -0
  12. data/lib/music-transcription/dynamic.rb +6 -15
  13. data/lib/music-transcription/meter.rb +15 -0
  14. data/lib/music-transcription/note.rb +28 -91
  15. data/lib/music-transcription/part.rb +9 -65
  16. data/lib/music-transcription/score.rb +14 -43
  17. data/lib/music-transcription/version.rb +1 -1
  18. data/lib/music-transcription.rb +2 -0
  19. data/spec/meter_spec.rb +25 -0
  20. data/spec/note_spec.rb +20 -33
  21. data/spec/part_spec.rb +13 -82
  22. data/spec/score_spec.rb +28 -16
  23. data/spec/spec_helper.rb +7 -2
  24. metadata +14 -20
  25. data/samples/arrangements/glissando_test.yml +0 -71
  26. data/samples/arrangements/hip.yml +0 -952
  27. data/samples/arrangements/instrument_test.yml +0 -119
  28. data/samples/arrangements/legato_test.yml +0 -237
  29. data/samples/arrangements/make_glissando_test.rb +0 -27
  30. data/samples/arrangements/make_hip.rb +0 -75
  31. data/samples/arrangements/make_instrument_test.rb +0 -34
  32. data/samples/arrangements/make_legato_test.rb +0 -37
  33. data/samples/arrangements/make_missed_connection.rb +0 -72
  34. data/samples/arrangements/make_portamento_test.rb +0 -27
  35. data/samples/arrangements/make_slur_test.rb +0 -37
  36. data/samples/arrangements/make_song1.rb +0 -84
  37. data/samples/arrangements/make_song2.rb +0 -69
  38. data/samples/arrangements/missed_connection.yml +0 -481
  39. data/samples/arrangements/portamento_test.yml +0 -71
  40. data/samples/arrangements/slur_test.yml +0 -237
  41. data/samples/arrangements/song1.yml +0 -640
  42. data/samples/arrangements/song2.yml +0 -429
@@ -1,119 +0,0 @@
1
- --- !ruby/object:Music::Transcription::Arrangement
2
- score: !ruby/object:Music::Transcription::TempoScore
3
- tempo_profile: !ruby/object:Music::Transcription::Profile
4
- start_value: !ruby/object:Music::Transcription::Tempo
5
- beats_per_minute: 120
6
- beat_duration: !ruby/object:Rational
7
- denominator: 4
8
- numerator: 1
9
- value_changes: {}
10
- parts:
11
- 1: !ruby/object:Music::Transcription::Part
12
- offset: 0
13
- loudness_profile: !ruby/object:Music::Transcription::Profile
14
- start_value: 0.5
15
- value_changes: {}
16
- notes:
17
- - !ruby/object:Music::Transcription::Note
18
- duration: 0.125
19
- intervals:
20
- - !ruby/object:Music::Transcription::Interval
21
- pitch: &20734400 !ruby/object:Music::Transcription::Pitch
22
- cents_per_octave: 1200
23
- octave: 3
24
- semitone: 0
25
- cent: 0
26
- base_freq: 16.351597831287414
27
- link: !ruby/object:Music::Transcription::Link
28
- target_pitch: !ruby/object:Music::Transcription::Pitch
29
- cents_per_octave: 1200
30
- octave: 0
31
- semitone: 0
32
- cent: 0
33
- base_freq: 16.351597831287414
34
- relationship: :none
35
- sustain: 0.5
36
- attack: 0.5
37
- separation: 0.5
38
- - !ruby/object:Music::Transcription::Note
39
- duration: 0.125
40
- intervals:
41
- - !ruby/object:Music::Transcription::Interval
42
- pitch: !ruby/object:Music::Transcription::Pitch
43
- cents_per_octave: 1200
44
- octave: 3
45
- semitone: 2
46
- cent: 0
47
- base_freq: 16.351597831287414
48
- link: !ruby/object:Music::Transcription::Link
49
- target_pitch: !ruby/object:Music::Transcription::Pitch
50
- cents_per_octave: 1200
51
- octave: 0
52
- semitone: 0
53
- cent: 0
54
- base_freq: 16.351597831287414
55
- relationship: :none
56
- sustain: 0.5
57
- attack: 0.5
58
- separation: 0.5
59
- - !ruby/object:Music::Transcription::Note
60
- duration: 0.25
61
- intervals:
62
- - !ruby/object:Music::Transcription::Interval
63
- pitch: *20734400
64
- link: !ruby/object:Music::Transcription::Link
65
- target_pitch: !ruby/object:Music::Transcription::Pitch
66
- cents_per_octave: 1200
67
- octave: 0
68
- semitone: 0
69
- cent: 0
70
- base_freq: 16.351597831287414
71
- relationship: :none
72
- sustain: 0.5
73
- attack: 0.5
74
- separation: 0.5
75
- - !ruby/object:Music::Transcription::Note
76
- duration: 0.5
77
- intervals:
78
- - !ruby/object:Music::Transcription::Interval
79
- pitch: *20734400
80
- link: !ruby/object:Music::Transcription::Link
81
- target_pitch: !ruby/object:Music::Transcription::Pitch
82
- cents_per_octave: 1200
83
- octave: 0
84
- semitone: 0
85
- cent: 0
86
- base_freq: 16.351597831287414
87
- relationship: :none
88
- - !ruby/object:Music::Transcription::Interval
89
- pitch: !ruby/object:Music::Transcription::Pitch
90
- cents_per_octave: 1200
91
- octave: 3
92
- semitone: 4
93
- cent: 0
94
- base_freq: 16.351597831287414
95
- link: !ruby/object:Music::Transcription::Link
96
- target_pitch: !ruby/object:Music::Transcription::Pitch
97
- cents_per_octave: 1200
98
- octave: 0
99
- semitone: 0
100
- cent: 0
101
- base_freq: 16.351597831287414
102
- relationship: :none
103
- sustain: 0.5
104
- attack: 0.5
105
- separation: 0.5
106
- program: !ruby/object:Music::Transcription::Program
107
- segments:
108
- - !ruby/range
109
- begin: 0
110
- end: 1.0
111
- excl: true
112
- instrument_configs:
113
- 1: !ruby/object:Music::Transcription::InstrumentConfig
114
- plugin_name: synth_instr_3
115
- initial_settings:
116
- - blend
117
- - short attack
118
- - long decay
119
- setting_changes: {}
@@ -1,237 +0,0 @@
1
- --- !ruby/object:Music::Transcription::Arrangement
2
- score: !ruby/object:Music::Transcription::TempoScore
3
- tempo_profile: !ruby/object:Music::Transcription::Profile
4
- start_value: !ruby/object:Music::Transcription::Tempo
5
- beats_per_minute: 120
6
- beat_duration: !ruby/object:Rational
7
- denominator: 4
8
- numerator: 1
9
- value_changes: {}
10
- parts:
11
- 1: !ruby/object:Music::Transcription::Part
12
- offset: 0
13
- loudness_profile: !ruby/object:Music::Transcription::Profile
14
- start_value: 0.5
15
- value_changes: {}
16
- notes:
17
- - !ruby/object:Music::Transcription::Note
18
- duration: 0.25
19
- intervals:
20
- - !ruby/object:Music::Transcription::Interval
21
- pitch: &13618520 !ruby/object:Music::Transcription::Pitch
22
- cents_per_octave: 1200
23
- octave: 3
24
- semitone: 0
25
- cent: 0
26
- base_freq: 16.351597831287414
27
- link: !ruby/object:Music::Transcription::Link
28
- target_pitch: !ruby/object:Music::Transcription::Pitch
29
- cents_per_octave: 1200
30
- octave: 0
31
- semitone: 0
32
- cent: 0
33
- base_freq: 16.351597831287414
34
- relationship: :none
35
- sustain: 0.5
36
- attack: 0.5
37
- separation: 0.5
38
- - !ruby/object:Music::Transcription::Note
39
- duration: 0.25
40
- intervals:
41
- - !ruby/object:Music::Transcription::Interval
42
- pitch: &13617440 !ruby/object:Music::Transcription::Pitch
43
- cents_per_octave: 1200
44
- octave: 3
45
- semitone: 2
46
- cent: 0
47
- base_freq: 16.351597831287414
48
- link: !ruby/object:Music::Transcription::Link
49
- target_pitch: !ruby/object:Music::Transcription::Pitch
50
- cents_per_octave: 1200
51
- octave: 0
52
- semitone: 0
53
- cent: 0
54
- base_freq: 16.351597831287414
55
- relationship: :none
56
- sustain: 0.5
57
- attack: 0.5
58
- separation: 0.5
59
- - !ruby/object:Music::Transcription::Note
60
- duration: 0.25
61
- intervals:
62
- - !ruby/object:Music::Transcription::Interval
63
- pitch: &13616520 !ruby/object:Music::Transcription::Pitch
64
- cents_per_octave: 1200
65
- octave: 3
66
- semitone: 4
67
- cent: 0
68
- base_freq: 16.351597831287414
69
- link: !ruby/object:Music::Transcription::Link
70
- target_pitch: !ruby/object:Music::Transcription::Pitch
71
- cents_per_octave: 1200
72
- octave: 0
73
- semitone: 0
74
- cent: 0
75
- base_freq: 16.351597831287414
76
- relationship: :none
77
- sustain: 0.5
78
- attack: 0.5
79
- separation: 0.5
80
- - !ruby/object:Music::Transcription::Note
81
- duration: 0.25
82
- intervals:
83
- - !ruby/object:Music::Transcription::Interval
84
- pitch: &13616080 !ruby/object:Music::Transcription::Pitch
85
- cents_per_octave: 1200
86
- octave: 3
87
- semitone: 5
88
- cent: 0
89
- base_freq: 16.351597831287414
90
- link: !ruby/object:Music::Transcription::Link
91
- target_pitch: !ruby/object:Music::Transcription::Pitch
92
- cents_per_octave: 1200
93
- octave: 0
94
- semitone: 0
95
- cent: 0
96
- base_freq: 16.351597831287414
97
- relationship: :none
98
- sustain: 0.5
99
- attack: 0.5
100
- separation: 0.5
101
- - !ruby/object:Music::Transcription::Note
102
- duration: 0.25
103
- intervals:
104
- - !ruby/object:Music::Transcription::Interval
105
- pitch: *13616520
106
- link: !ruby/object:Music::Transcription::Link
107
- target_pitch: !ruby/object:Music::Transcription::Pitch
108
- cents_per_octave: 1200
109
- octave: 0
110
- semitone: 0
111
- cent: 0
112
- base_freq: 16.351597831287414
113
- relationship: :none
114
- sustain: 0.5
115
- attack: 0.5
116
- separation: 0.5
117
- - !ruby/object:Music::Transcription::Note
118
- duration: 0.25
119
- intervals:
120
- - !ruby/object:Music::Transcription::Interval
121
- pitch: *13617440
122
- link: !ruby/object:Music::Transcription::Link
123
- target_pitch: !ruby/object:Music::Transcription::Pitch
124
- cents_per_octave: 1200
125
- octave: 0
126
- semitone: 0
127
- cent: 0
128
- base_freq: 16.351597831287414
129
- relationship: :none
130
- sustain: 0.5
131
- attack: 0.5
132
- separation: 0.5
133
- - !ruby/object:Music::Transcription::Note
134
- duration: 0.5
135
- intervals:
136
- - !ruby/object:Music::Transcription::Interval
137
- pitch: *13618520
138
- link: !ruby/object:Music::Transcription::Link
139
- target_pitch: !ruby/object:Music::Transcription::Pitch
140
- cents_per_octave: 1200
141
- octave: 0
142
- semitone: 0
143
- cent: 0
144
- base_freq: 16.351597831287414
145
- relationship: :none
146
- sustain: 0.5
147
- attack: 0.5
148
- separation: 0.5
149
- - !ruby/object:Music::Transcription::Note
150
- duration: 0.25
151
- intervals:
152
- - !ruby/object:Music::Transcription::Interval
153
- pitch: *13618520
154
- link: !ruby/object:Music::Transcription::Link
155
- target_pitch: *13617440
156
- relationship: :legato
157
- sustain: 0.5
158
- attack: 0.5
159
- separation: 0.5
160
- - !ruby/object:Music::Transcription::Note
161
- duration: 0.25
162
- intervals:
163
- - !ruby/object:Music::Transcription::Interval
164
- pitch: *13617440
165
- link: !ruby/object:Music::Transcription::Link
166
- target_pitch: *13616520
167
- relationship: :legato
168
- sustain: 0.5
169
- attack: 0.5
170
- separation: 0.5
171
- - !ruby/object:Music::Transcription::Note
172
- duration: 0.25
173
- intervals:
174
- - !ruby/object:Music::Transcription::Interval
175
- pitch: *13616520
176
- link: !ruby/object:Music::Transcription::Link
177
- target_pitch: *13616080
178
- relationship: :legato
179
- sustain: 0.5
180
- attack: 0.5
181
- separation: 0.5
182
- - !ruby/object:Music::Transcription::Note
183
- duration: 0.25
184
- intervals:
185
- - !ruby/object:Music::Transcription::Interval
186
- pitch: *13616080
187
- link: !ruby/object:Music::Transcription::Link
188
- target_pitch: *13616520
189
- relationship: :legato
190
- sustain: 0.5
191
- attack: 0.5
192
- separation: 0.5
193
- - !ruby/object:Music::Transcription::Note
194
- duration: 0.25
195
- intervals:
196
- - !ruby/object:Music::Transcription::Interval
197
- pitch: *13616520
198
- link: !ruby/object:Music::Transcription::Link
199
- target_pitch: *13617440
200
- relationship: :legato
201
- sustain: 0.5
202
- attack: 0.5
203
- separation: 0.5
204
- - !ruby/object:Music::Transcription::Note
205
- duration: 0.25
206
- intervals:
207
- - !ruby/object:Music::Transcription::Interval
208
- pitch: *13617440
209
- link: !ruby/object:Music::Transcription::Link
210
- target_pitch: *13618520
211
- relationship: :legato
212
- sustain: 0.5
213
- attack: 0.5
214
- separation: 0.5
215
- - !ruby/object:Music::Transcription::Note
216
- duration: 0.5
217
- intervals:
218
- - !ruby/object:Music::Transcription::Interval
219
- pitch: *13618520
220
- link: !ruby/object:Music::Transcription::Link
221
- target_pitch: !ruby/object:Music::Transcription::Pitch
222
- cents_per_octave: 1200
223
- octave: 0
224
- semitone: 0
225
- cent: 0
226
- base_freq: 16.351597831287414
227
- relationship: :none
228
- sustain: 0.5
229
- attack: 0.5
230
- separation: 0.5
231
- program: !ruby/object:Music::Transcription::Program
232
- segments:
233
- - !ruby/range
234
- begin: 0
235
- end: 4.0
236
- excl: true
237
- instrument_configs: {}
@@ -1,27 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...4.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- 1 => Part.new(
14
- :loudness_profile => profile(0.5),
15
- :notes => [
16
- note(0.75, [ interval(C3, glissando(F3)) ]),
17
- note(0.75, [ interval(F3, glissando(C3)) ]),
18
- note(0.5, [ interval(C3) ]),
19
- ]
20
- )
21
- }
22
- )
23
- )
24
-
25
- File.open("glissando_test.yml", "w") do |file|
26
- file.write arrangement.to_yaml
27
- end
@@ -1,75 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- bass_riff = [
7
- # 0.0
8
- note(Rational(1,6), [ interval(Bb2) ]),
9
- note(Rational(1,4)),
10
- note(Rational(1,3), [ interval(Ab2) ]),
11
- note(Rational(1,6), [ interval(F2) ]),
12
- note(Rational(1,12), [ interval(Ab2) ]),
13
- # 1.0
14
- note(Rational(1,6), [ interval(Bb2) ]),
15
- note(Rational(1,4)),
16
- note(Rational(1,3), [ interval(Ab2) ]),
17
- note(Rational(1,4), [ interval(Ab2) ]),
18
- ]
19
-
20
- lead_riff = [
21
- # 0.0
22
- note(Rational(1,6), [ interval(Bb3) ]),
23
- note(Rational(1,4)),
24
- note(Rational(1,12), [ interval(Db4, tie(Db4))]),
25
- note(Rational(1,6), [ interval(Db4, tie(Db4))]),
26
- note(Rational(1,36), [ interval(Db4)]),
27
- note(Rational(1,36), [ interval(Eb4)]),
28
- note(Rational(1,36), [ interval(Db4)]),
29
- note(Rational(1,6), [ interval(Ab3)]),
30
- note(Rational(1,12), [ interval(Db4)]),
31
- # 1.0
32
- note(Rational(1,6), [ interval(Bb3) ]),
33
- note(Rational(1,4)),
34
- note(Rational(1,12), [ interval(Db4, tie(Db4))]),
35
- note(Rational(1,4), [ interval(Db4, tie(Db4))]),
36
- note(Rational(1,8), [ interval(Db4, portamento(C4))]),
37
- note(Rational(1,8), [ interval(C4)]),
38
- ]
39
-
40
- whole_step = Pitch.new(:semitone => 2)
41
- bass_notes = bass_riff + bass_riff.map {|note| note.transpose(whole_step) }
42
- lead_notes = lead_riff + lead_riff.map {|note| note.transpose(whole_step) }
43
-
44
- arrangement = Arrangement.new(
45
- :score => TempoScore.new(
46
- :program => Program.new(
47
- :segments => [0...2, 0...2,2...4,0...2]
48
- ),
49
- :tempo_profile => profile(tempo(120)),
50
- :parts => {
51
- "lead" => Part.new(
52
- :notes => lead_notes,
53
- :loudness_profile => profile(0.5)
54
- ),
55
- "bass" => Part.new(
56
- :notes => bass_notes,
57
- :loudness_profile => profile(0.125)
58
- )
59
- }
60
- ),
61
- :instrument_configs => {
62
- 'bass' => InstrumentConfig.new(
63
- :plugin_name => "synth_instr_1",
64
- :initial_settings => ["sawtooth"]
65
- ),
66
- 'lead' => InstrumentConfig.new(
67
- :plugin_name => "synth_instr_3",
68
- :initial_settings => ["blend", "very short attack", "med decay"]
69
- ),
70
- }
71
- )
72
-
73
- File.open('hip.yml','w') do |file|
74
- file.write arrangement.to_yaml
75
- end
@@ -1,34 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...1.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- 1 => Part.new(
14
- :loudness_profile => profile(0.5),
15
- :notes => [
16
- note(0.125, [ interval(C3) ] ),
17
- note(0.125, [ interval(D3) ] ),
18
- note(0.25, [ interval(C3) ] ),
19
- note(0.50, [ interval(C3), interval(E3) ] ),
20
- ]
21
- )
22
- }
23
- ),
24
- :instrument_configs => {
25
- 1 => InstrumentConfig.new(
26
- :plugin_name => 'synth_instr_3',
27
- :initial_settings => ["blend", "short attack", "long decay"]
28
- ),
29
- }
30
- )
31
-
32
- File.open("instrument_test.yml", "w") do |file|
33
- file.write arrangement.to_yaml
34
- end
@@ -1,37 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...4.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- 1 => Part.new(
14
- :notes => [
15
- note(0.25, [ interval(C3) ]),
16
- note(0.25, [ interval(D3) ]),
17
- note(0.25, [ interval(E3) ]),
18
- note(0.25, [ interval(F3) ]),
19
- note(0.25, [ interval(E3) ]),
20
- note(0.25, [ interval(D3) ]),
21
- note(0.5, [ interval(C3) ]),
22
- note(0.25, [ interval(C3, legato(D3)) ]),
23
- note(0.25, [ interval(D3, legato(E3)) ]),
24
- note(0.25, [ interval(E3, legato(F3)) ]),
25
- note(0.25, [ interval(F3, legato(E3)) ]),
26
- note(0.25, [ interval(E3, legato(D3)) ]),
27
- note(0.25, [ interval(D3, legato(C3)) ]),
28
- note(0.5, [ interval(C3) ]),
29
- ]
30
- )
31
- }
32
- )
33
- )
34
-
35
- File.open("legato_test.yml", "w") do |file|
36
- file.write arrangement.to_yaml
37
- end
@@ -1,72 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...8.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- "bass" => Part.new(
14
- :notes => [
15
- # 0.0
16
- note(0.25, [ interval(Eb2) ]),
17
- note(0.25),
18
- note(0.25, [ interval(Bb2) ]),
19
- note(0.25),
20
- note(0.25, [ interval(Eb2) ]),
21
- note(0.125),
22
- note(0.125, [ interval(B2) ]),
23
- note(0.25, [ interval(Bb2) ]),
24
- note(0.25, [ interval(Ab2) ]),
25
-
26
- # 2.0
27
- note(0.25, [ interval(Eb2) ]),
28
- note(0.25),
29
- note(0.25, [ interval(Bb2) ]),
30
- note(0.25),
31
- note(0.25, [ interval(Eb2) ]),
32
- note(0.125),
33
- note(0.125, [ interval(B2) ]),
34
- note(0.25, [ interval(Bb2) ]),
35
- note(0.25, [ interval(Ab2) ]),
36
-
37
- # 4.0
38
- note(0.25, [ interval(Bb2) ]),
39
- note(0.125),
40
- note(0.125, [ interval(F3, tie(F3)) ]),
41
- note(0.5, [ interval(F3) ]),
42
- note(0.25, [ interval(Bb2) ]),
43
- note(0.125),
44
- note(0.125, [ interval(F3, tie(F3)) ]),
45
- note(0.5, [ interval(F3) ]),
46
-
47
- # 6.0
48
- note(0.25, [ interval(B2) ]),
49
- note(0.125),
50
- note(0.125, [ interval(Gb3, tie(Gb3)) ]),
51
- note(0.5, [ interval(Gb3) ]),
52
- note(0.25, [ interval(B2) ]),
53
- note(0.125),
54
- note(0.125, [ interval(Gb3, tie(Gb3)) ]),
55
- note(0.5, [ interval(Gb3) ]),
56
-
57
- #8.0
58
- ]
59
- )
60
- }
61
- ),
62
- :instrument_configs => {
63
- "bass" => InstrumentConfig.new(
64
- :plugin_name => 'synth_instr_3',
65
- :initial_settings => "blend"
66
- ),
67
- }
68
- )
69
-
70
- File.open("missed_connection.yml", "w") do |file|
71
- file.write arrangement.to_yaml
72
- end
@@ -1,27 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...4.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- 1 => Part.new(
14
- :loudness_profile => profile(0.5),
15
- :notes => [
16
- note(0.75, [ interval(C3, portamento(F3)) ]),
17
- note(0.75, [ interval(F3, portamento(C3)) ]),
18
- note(0.5, [ interval(C3) ]),
19
- ]
20
- )
21
- }
22
- )
23
- )
24
-
25
- File.open("portamento_test.yml", "w") do |file|
26
- file.write arrangement.to_yaml
27
- end
@@ -1,37 +0,0 @@
1
- require 'music-transcription'
2
- require 'yaml'
3
-
4
- include Music::Transcription
5
-
6
- arrangement = Arrangement.new(
7
- :score => TempoScore.new(
8
- :program => Program.new(
9
- :segments => [0...4.0]
10
- ),
11
- :tempo_profile => profile(tempo(120)),
12
- :parts => {
13
- 1 => Part.new(
14
- :notes => [
15
- note(0.25, [ interval(C3) ]),
16
- note(0.25, [ interval(D3) ]),
17
- note(0.25, [ interval(E3) ]),
18
- note(0.25, [ interval(F3) ]),
19
- note(0.25, [ interval(E3) ]),
20
- note(0.25, [ interval(D3) ]),
21
- note(0.5, [ interval(C3) ]),
22
- note(0.25, [ interval(C3, slur(D3)) ]),
23
- note(0.25, [ interval(D3, slur(E3)) ]),
24
- note(0.25, [ interval(E3, slur(F3)) ]),
25
- note(0.25, [ interval(F3, slur(E3)) ]),
26
- note(0.25, [ interval(E3, slur(D3)) ]),
27
- note(0.25, [ interval(D3, slur(C3)) ]),
28
- note(0.5, [ interval(C3) ]),
29
- ]
30
- )
31
- }
32
- )
33
- )
34
-
35
- File.open("slur_test.yml", "w") do |file|
36
- file.write arrangement.to_yaml
37
- end