head_music 6.0.1 → 7.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/lib/head_music/consonance.rb +1 -1
- data/lib/head_music/content/composition.rb +3 -2
- data/lib/head_music/content/position.rb +0 -4
- data/lib/head_music/data/instrument_families.yml +1 -0
- data/lib/head_music/data/instruments.yml +411 -132
- data/lib/head_music/diatonic_interval/category.rb +24 -0
- data/lib/head_music/diatonic_interval/naming.rb +73 -0
- data/lib/head_music/diatonic_interval/parser.rb +47 -0
- data/lib/head_music/diatonic_interval/semitones.rb +36 -0
- data/lib/head_music/diatonic_interval/size.rb +50 -0
- data/lib/head_music/diatonic_interval.rb +1 -229
- data/lib/head_music/instrument/staff_scheme.rb +3 -3
- data/lib/head_music/instrument/{pitch_variant.rb → variant.rb} +6 -6
- data/lib/head_music/instrument.rb +9 -9
- data/lib/head_music/key_signature/enharmonic_equivalence.rb +2 -6
- data/lib/head_music/key_signature.rb +0 -1
- data/lib/head_music/locales/en.yml +77 -17
- data/lib/head_music/locales/fr.yml +0 -1
- data/lib/head_music/named.rb +0 -4
- data/lib/head_music/scale_degree.rb +9 -4
- data/lib/head_music/style/guidelines/notes_same_length.rb +0 -4
- data/lib/head_music/style/mark.rb +1 -4
- data/lib/head_music/version.rb +1 -1
- data/lib/head_music.rb +6 -1
- metadata +8 -3
@@ -92,16 +92,18 @@ en:
|
|
92
92
|
shaken: shaken
|
93
93
|
single_reed: single-reed
|
94
94
|
string: string
|
95
|
-
strings: strings
|
96
95
|
stringed_instrument: stringed instrument
|
96
|
+
strings: strings
|
97
97
|
struck: struck
|
98
98
|
voice: voice
|
99
99
|
wind: wind
|
100
100
|
wind_instrument: wind instrument
|
101
101
|
wood: wood
|
102
102
|
woodwind: woodwind
|
103
|
+
instrument_with_pitch_designation: "%{instrument} in %{pitch_designation}"
|
103
104
|
instrument_voices:
|
104
105
|
piccolo: piccolo
|
106
|
+
sopranino: sopranino
|
105
107
|
soprano: soprano
|
106
108
|
mezzo_soprano: mezzo-soprano
|
107
109
|
alto: alto
|
@@ -109,105 +111,163 @@ en:
|
|
109
111
|
baritone: baritone
|
110
112
|
bass: bass
|
111
113
|
contrabass: contrabass
|
112
|
-
|
114
|
+
subcontrabass: subcontrabass
|
113
115
|
instruments:
|
114
116
|
accordion: accordion
|
115
117
|
alto_clarinet: alto clarinet
|
116
118
|
alto_flute: alto flute
|
119
|
+
alto_recorder: alto recorder
|
120
|
+
alto_saxophone: alto saxophone
|
117
121
|
alto_voice: alto
|
118
122
|
arpeggione: arpeggione
|
119
123
|
bagpipe: bagpipe
|
124
|
+
bagpipes: bagpipes
|
120
125
|
banjo: banjo
|
121
126
|
baritone_horn: baritone horn
|
127
|
+
baritone_oboe: baritone oboe
|
128
|
+
baritone_saxophone: baritone saxophone
|
122
129
|
baritone_voice: baritone
|
130
|
+
bass: bass
|
123
131
|
bass_clarinet: bass clarinet
|
124
132
|
bass_drum: bass drum
|
125
133
|
bass_guitar: bass guitar
|
126
134
|
bass_oboe: bass oboe
|
135
|
+
bass_recorder: bass recorder
|
136
|
+
bass_saxophone: bass saxophone
|
127
137
|
bass_trombone: bass trombone
|
128
138
|
bass_trumpet: bass trumpet
|
129
|
-
bass_trumpet_in_b_flat: bass trumpet in B♭
|
130
|
-
bass_trumpet_in_c: bass trumpet in C
|
131
|
-
bass_trumpet_in_e_flat: bass trumpet in E♭
|
132
139
|
bass_tuba: bass tuba
|
133
|
-
bass_tuba_in_e_flat: bass tuba in E♭
|
134
|
-
bass_tuba_in_f: bass tuba in F
|
135
140
|
bass_voice: bass
|
136
141
|
basset_horn: basset horn
|
142
|
+
basset_recorder: basset recorder
|
137
143
|
bassoon: bassoon
|
144
|
+
bells: bells
|
138
145
|
bugle: bugle
|
139
|
-
bugle_in_b_flat: bugle in B♭
|
140
146
|
castanets: castanets
|
141
147
|
celesta: celesta
|
142
148
|
cello: cello
|
143
149
|
chimes: chimes
|
144
150
|
cimbalom: cimbalom
|
145
151
|
clarinet: clarinet
|
146
|
-
|
147
|
-
clarinet_in_c: clarinet in C
|
148
|
-
clarinet_in_d: clarinet in D
|
149
|
-
clarinet_in_e_flat: clarinet in E♭
|
152
|
+
clarion: clarion
|
150
153
|
clash_cymbals: clash cymbals
|
151
154
|
clavichord: clavichord
|
155
|
+
concert_bells: concert bells
|
156
|
+
concert_cymbals: concert cymbals
|
157
|
+
contra_great_bass_recorder: contra-great bass recorder
|
158
|
+
contrabass: contrabass
|
152
159
|
contrabass_clarinet: contrabass clarinet
|
160
|
+
contrabass_recorder: contrabass recorder
|
161
|
+
contrabass_saxophone: contrabass saxophone
|
162
|
+
contrabass_tuba: contrabass tuba
|
153
163
|
contrabassoon: contrabassoon
|
164
|
+
contralto: contralto
|
165
|
+
contralto_voice: contralto
|
154
166
|
cor_anglais: cor anglais
|
155
167
|
cornet: cornet
|
156
|
-
cowbell: cowbell
|
157
168
|
countertenor_voice: countertenor
|
169
|
+
cowbell: cowbell
|
170
|
+
crash_cymbal: crash cymbal
|
171
|
+
crash_cymbals: crash cymbals
|
158
172
|
crotales: crotales
|
159
173
|
cymbal: cymbal
|
174
|
+
descant: descant
|
160
175
|
double_bass: double bass
|
176
|
+
double_contrabass_recorder: double-contrabass recorder
|
161
177
|
english_horn: English horn
|
162
178
|
euphonium: euphonium
|
179
|
+
fiddle: fiddle
|
180
|
+
field_drum: field drum
|
163
181
|
flugelhorn: flugelhorn
|
164
182
|
flute: flute
|
183
|
+
fortepiano: fortepiano
|
165
184
|
french_horn: French horn
|
185
|
+
garklein_recorder: garklein recorder
|
166
186
|
glockenspiel: glockenspiel
|
187
|
+
gong: gong
|
188
|
+
great_bass_recorder: great bass recorder
|
167
189
|
great_highland_bagpipe: great highland bagpipe
|
168
190
|
guitar: guitar
|
169
191
|
hammered_dulcimer: hammered dulcimer
|
170
192
|
harp: harp
|
171
193
|
harpsichord: harpsichord
|
194
|
+
hautbois_d_amour: hautbois d'amour
|
195
|
+
hi-hat: hi-hat
|
172
196
|
horn: horn
|
197
|
+
kettledrum: kettledrum
|
198
|
+
kick_drum: kick drum
|
173
199
|
lute: lute
|
174
200
|
mandolin: mandolin
|
175
201
|
maracas: maracas
|
176
202
|
marimba: marimba
|
177
203
|
metal_block: metal block
|
204
|
+
mezzo: mezzo
|
205
|
+
mezzo_soprano: mezzo-soprano
|
206
|
+
mezzo_soprano_voice: mezzo-soprano
|
207
|
+
military_drum: military drum
|
178
208
|
natural_horn: natural horn
|
179
209
|
oboe: oboe
|
180
210
|
oboe_d_amore: oboe d'amore
|
211
|
+
octocontrabass_recorder: octocontrabass recorder
|
212
|
+
orchestral_chimes: orchestral chimes
|
213
|
+
orchestral_cymbals: orchestral cymbals
|
181
214
|
organ: organ
|
182
215
|
piano: piano
|
216
|
+
pianoforte: pianoforte
|
183
217
|
piccolo: piccolo
|
184
218
|
piccolo_clarinet: piccolo clarinet
|
185
219
|
piccolo_flute: piccolo flute
|
220
|
+
piccolo_recorder: piccolo recorder
|
221
|
+
piccolo_saxophone: piccolo saxophone
|
186
222
|
piccolo_trumpet: piccolo trumpet
|
223
|
+
pipe_organ: pipe organ
|
224
|
+
quart_bass_recorder: quart bass recorder
|
187
225
|
recorder: recorder
|
226
|
+
ride_cymbal: ride cymbal
|
188
227
|
saxophone: saxophone
|
189
228
|
side_drum: side drum
|
190
229
|
snare_drum: snare drum
|
230
|
+
sopranino_clarinet: sopranino clarinet
|
231
|
+
sopranino_recorder: sopranino recorder
|
232
|
+
sopranino_saxophone: sopranino saxophone
|
233
|
+
sopranissimo_recorder: sopranissimo recorder
|
234
|
+
sopranissimo_saxophone: sopranissimo saxophone
|
235
|
+
soprano: soprano
|
236
|
+
soprano_clarinet: soprano clarinet
|
237
|
+
soprano_recorder: soprano recorder
|
238
|
+
soprano_saxophone: soprano saxophone
|
191
239
|
soprano_voice: soprano
|
240
|
+
soprillo: soprillo
|
192
241
|
sousaphone: sousaphone
|
242
|
+
string_bass: string bass
|
243
|
+
sub_bass_recorder: sub-bass recorder
|
244
|
+
sub_contrabass_recorder: sub-contrabass recorder
|
245
|
+
sub_great_bass_recorder: sub-great bass recorder
|
246
|
+
subcontrabass_saxophone: subcontrabass saxophone
|
193
247
|
suspended_cymbal: suspended cymbal
|
194
248
|
synthesizer: synthesizer
|
249
|
+
tabor: tabor
|
195
250
|
tam_tam: tam-tam
|
196
251
|
tambourine: tambourine
|
197
252
|
temple_blocks: temple blocks
|
253
|
+
tenor: tenor
|
198
254
|
tenor_drum: tenor drum
|
255
|
+
tenor_recorder: tenor recorder
|
256
|
+
tenor_saxophone: tenor saxophone
|
199
257
|
tenor_trombone: tenor trombone
|
258
|
+
tenor_tuba: tenor tuba
|
200
259
|
tenor_voice: tenor
|
201
260
|
timpani: timpani
|
261
|
+
timpanum: timpanum
|
262
|
+
tom_drum: tom drum
|
263
|
+
tom_tom: tom-tom
|
264
|
+
treble_recorder: treble recorder
|
202
265
|
triangle: triangle
|
203
266
|
trombone: trombone
|
204
267
|
trumpet: trumpet
|
205
|
-
trumpet_in_c: trumpet in C
|
206
|
-
trumpet_in_d: trumpet in D
|
207
|
-
trumpet_in_e_flat: trumpet in E♭
|
208
268
|
tuba: tuba
|
209
|
-
tuba_in_c: tuba in C
|
210
269
|
tubular_bells: tubular bells
|
270
|
+
vibes: vibes
|
211
271
|
vibraphone: vibraphone
|
212
272
|
viola: viola
|
213
273
|
viola_d_amore: viola d'amore
|
data/lib/head_music/named.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# A scale degree is a number indicating the ordinality of the spelling in the key
|
1
|
+
# A scale degree is a number indicating the ordinality of the spelling in the key.
|
2
2
|
# TODO: Rewrite to accept a tonal_center and a scale type.
|
3
3
|
class HeadMusic::ScaleDegree
|
4
4
|
include Comparable
|
@@ -20,20 +20,25 @@ class HeadMusic::ScaleDegree
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def alteration
|
23
|
-
|
23
|
+
spelling_alteration_semitones = spelling.alteration&.semitones || 0
|
24
24
|
usual_sign_semitones = scale_degree_usual_spelling.alteration&.semitones || 0
|
25
|
-
delta =
|
25
|
+
delta = spelling_alteration_semitones - usual_sign_semitones
|
26
26
|
HeadMusic::Alteration.by(:semitones, delta) if delta != 0
|
27
27
|
end
|
28
28
|
|
29
|
+
def alteration_semitones
|
30
|
+
alteration&.semitones || 0
|
31
|
+
end
|
32
|
+
|
29
33
|
def to_s
|
30
34
|
"#{alteration}#{degree}"
|
31
35
|
end
|
32
36
|
|
33
37
|
def <=>(other)
|
34
38
|
if other.is_a?(HeadMusic::ScaleDegree)
|
35
|
-
[degree,
|
39
|
+
[degree, alteration_semitones] <=> [other.degree, other.alteration_semitones]
|
36
40
|
else
|
41
|
+
# TODO: Improve this
|
37
42
|
to_s <=> other.to_s
|
38
43
|
end
|
39
44
|
end
|
@@ -37,10 +37,6 @@ class HeadMusic::Style::Guidelines::NotesSameLength < HeadMusic::Style::Annotati
|
|
37
37
|
notes[0..-2]
|
38
38
|
end
|
39
39
|
|
40
|
-
def distinct_values
|
41
|
-
all_but_last_note.map(&:rhythmic_value).uniq.length
|
42
|
-
end
|
43
|
-
|
44
40
|
def first_most_common_rhythmic_value
|
45
41
|
@first_most_common_rhythmic_value ||= begin
|
46
42
|
candidates = most_common_rhythmic_values
|
data/lib/head_music/version.rb
CHANGED
data/lib/head_music.rb
CHANGED
@@ -38,12 +38,17 @@ require "head_music/circle"
|
|
38
38
|
require "head_music/clef"
|
39
39
|
require "head_music/consonance"
|
40
40
|
require "head_music/diatonic_interval"
|
41
|
+
require "head_music/diatonic_interval/category"
|
42
|
+
require "head_music/diatonic_interval/naming"
|
43
|
+
require "head_music/diatonic_interval/parser"
|
44
|
+
require "head_music/diatonic_interval/semitones"
|
45
|
+
require "head_music/diatonic_interval/size"
|
41
46
|
require "head_music/harmonic_interval"
|
42
47
|
require "head_music/instrument_family"
|
43
48
|
require "head_music/instrument"
|
44
|
-
require "head_music/instrument/pitch_variant"
|
45
49
|
require "head_music/instrument/staff_scheme"
|
46
50
|
require "head_music/instrument/staff"
|
51
|
+
require "head_music/instrument/variant"
|
47
52
|
require "head_music/interval_cycle"
|
48
53
|
require "head_music/key_signature"
|
49
54
|
require "head_music/key_signature/enharmonic_equivalence"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: head_music
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Head
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -136,11 +136,16 @@ files:
|
|
136
136
|
- lib/head_music/data/instrument_families.yml
|
137
137
|
- lib/head_music/data/instruments.yml
|
138
138
|
- lib/head_music/diatonic_interval.rb
|
139
|
+
- lib/head_music/diatonic_interval/category.rb
|
140
|
+
- lib/head_music/diatonic_interval/naming.rb
|
141
|
+
- lib/head_music/diatonic_interval/parser.rb
|
142
|
+
- lib/head_music/diatonic_interval/semitones.rb
|
143
|
+
- lib/head_music/diatonic_interval/size.rb
|
139
144
|
- lib/head_music/harmonic_interval.rb
|
140
145
|
- lib/head_music/instrument.rb
|
141
|
-
- lib/head_music/instrument/pitch_variant.rb
|
142
146
|
- lib/head_music/instrument/staff.rb
|
143
147
|
- lib/head_music/instrument/staff_scheme.rb
|
148
|
+
- lib/head_music/instrument/variant.rb
|
144
149
|
- lib/head_music/instrument_family.rb
|
145
150
|
- lib/head_music/interval_cycle.rb
|
146
151
|
- lib/head_music/key_signature.rb
|