stave 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 298ec095fbd8df1e9ee1f77db4708598d0fbb433a3d364810884787451dcec21
4
- data.tar.gz: 1c89449bb41bdabb016ef555b0cc8962eb9d6cf99fe90f35e689632c326ff48a
3
+ metadata.gz: 10860c4906c91ed85b0eaf4bf769d89e786d6c889d316610d6dff4477f5abe8c
4
+ data.tar.gz: '0930d6304e76d6cda5c6c899e55e5f21805653ae78a32190e17445bf324fc2cd'
5
5
  SHA512:
6
- metadata.gz: 134a5a015273135682beec053a9985eb6f0084e972a516f26da08a221b3c16edee37c3d4ac1ec46c2ffedc4d7b77206ccd539b041a772214ca31ae295ead4c64
7
- data.tar.gz: 3d7b9d994d481785c8625757caa253fd4ae2f70e1f9a24531758a7ed392bccbe24a10912069ed2fa2ef51f13be4bf22d09a7c93ad72e267ee487773547435140
6
+ metadata.gz: cf4f49e8b76f5e0a2230355e509d3b9e1f8607d171be5775db0a030a4008c7ee09daacf5d41ce1dc9e6a38a330f3cffdc23a67751d84947092f90721d6e79b8a
7
+ data.tar.gz: 064a179f62697d1a3d12b0a1fa41849e4c1dfab51d4569f0d46020673a96fb52906c18b27a1b1c5d02e9e2ab61e955660e9dbb290afc4ef8a491e8dd2b8106f5
@@ -1,6 +1,6 @@
1
1
  module Stave
2
2
  module Theory
3
- class Note < Core::Lookup
3
+ class Note < Core::Lookup # rubocop:disable Metrics/ClassLength
4
4
  class PitchClass < Core::Lookup
5
5
  variant :c, index: 0, symbol: "C", to_i: 0
6
6
  variant :d, index: 1, symbol: "D", to_i: 2
@@ -26,59 +26,157 @@ module Stave
26
26
  end
27
27
 
28
28
  with_options pitch_class: PitchClass.a do
29
- variant :a_double_flat, accidental: Accidental.double_flat
30
- variant :a_flat, accidental: Accidental.flat
31
- variant :a_natural, accidental: Accidental.natural
32
- variant :a_sharp, accidental: Accidental.sharp
33
- variant :a_double_sharp, accidental: Accidental.double_sharp
29
+ variant :a_double_flat,
30
+ accidental: Accidental.double_flat,
31
+ circle_of_fifths?: false
32
+
33
+ variant :a_flat,
34
+ accidental: Accidental.flat,
35
+ circle_of_fifths?: true
36
+
37
+ variant :a_natural,
38
+ accidental: Accidental.natural,
39
+ circle_of_fifths?: true
40
+
41
+ variant :a_sharp,
42
+ accidental: Accidental.sharp,
43
+ circle_of_fifths?: false
44
+
45
+ variant :a_double_sharp,
46
+ accidental: Accidental.double_sharp,
47
+ circle_of_fifths?: false
34
48
  end
35
49
 
36
50
  with_options pitch_class: PitchClass.b do
37
- variant :b_double_flat, accidental: Accidental.double_flat
38
- variant :b_flat, accidental: Accidental.flat
39
- variant :b_natural, accidental: Accidental.natural
40
- variant :b_sharp, accidental: Accidental.sharp
41
- variant :b_double_sharp, accidental: Accidental.double_sharp
51
+ variant :b_double_flat,
52
+ accidental: Accidental.double_flat,
53
+ circle_of_fifths?: false
54
+
55
+ variant :b_flat,
56
+ accidental: Accidental.flat,
57
+ circle_of_fifths?: true
58
+
59
+ variant :b_natural,
60
+ accidental: Accidental.natural,
61
+ circle_of_fifths?: true
62
+
63
+ variant :b_sharp,
64
+ accidental: Accidental.sharp,
65
+ circle_of_fifths?: false
66
+
67
+ variant :b_double_sharp,
68
+ accidental: Accidental.double_sharp,
69
+ circle_of_fifths?: false
42
70
  end
43
71
 
44
72
  with_options pitch_class: PitchClass.c do
45
- variant :c_double_flat, accidental: Accidental.double_flat
46
- variant :c_flat, accidental: Accidental.flat
47
- variant :c_natural, accidental: Accidental.natural
48
- variant :c_sharp, accidental: Accidental.sharp
49
- variant :c_double_sharp, accidental: Accidental.double_sharp
73
+ variant :c_double_flat,
74
+ accidental: Accidental.double_flat,
75
+ circle_of_fifths?: false
76
+
77
+ variant :c_flat,
78
+ accidental: Accidental.flat,
79
+ circle_of_fifths?: true
80
+
81
+ variant :c_natural,
82
+ accidental: Accidental.natural,
83
+ circle_of_fifths?: true
84
+
85
+ variant :c_sharp,
86
+ accidental: Accidental.sharp,
87
+ circle_of_fifths?: true
88
+
89
+ variant :c_double_sharp,
90
+ accidental: Accidental.double_sharp,
91
+ circle_of_fifths?: false
50
92
  end
51
93
 
52
94
  with_options pitch_class: PitchClass.d do
53
- variant :d_double_flat, accidental: Accidental.double_flat
54
- variant :d_flat, accidental: Accidental.flat
55
- variant :d_natural, accidental: Accidental.natural
56
- variant :d_sharp, accidental: Accidental.sharp
57
- variant :d_double_sharp, accidental: Accidental.double_sharp
95
+ variant :d_double_flat,
96
+ accidental: Accidental.double_flat,
97
+ circle_of_fifths?: false
98
+
99
+ variant :d_flat,
100
+ accidental: Accidental.flat,
101
+ circle_of_fifths?: true
102
+
103
+ variant :d_natural,
104
+ accidental: Accidental.natural,
105
+ circle_of_fifths?: true
106
+
107
+ variant :d_sharp,
108
+ accidental: Accidental.sharp,
109
+ circle_of_fifths?: false
110
+
111
+ variant :d_double_sharp,
112
+ accidental: Accidental.double_sharp,
113
+ circle_of_fifths?: false
58
114
  end
59
115
 
60
116
  with_options pitch_class: PitchClass.e do
61
- variant :e_double_flat, accidental: Accidental.double_flat
62
- variant :e_flat, accidental: Accidental.flat
63
- variant :e_natural, accidental: Accidental.natural
64
- variant :e_sharp, accidental: Accidental.sharp
65
- variant :e_double_sharp, accidental: Accidental.double_sharp
117
+ variant :e_double_flat,
118
+ accidental: Accidental.double_flat,
119
+ circle_of_fifths?: false
120
+
121
+ variant :e_flat,
122
+ accidental: Accidental.flat,
123
+ circle_of_fifths?: true
124
+
125
+ variant :e_natural,
126
+ accidental: Accidental.natural,
127
+ circle_of_fifths?: true
128
+
129
+ variant :e_sharp,
130
+ accidental: Accidental.sharp,
131
+ circle_of_fifths?: false
132
+
133
+ variant :e_double_sharp,
134
+ accidental: Accidental.double_sharp,
135
+ circle_of_fifths?: false
66
136
  end
67
137
 
68
138
  with_options pitch_class: PitchClass.f do
69
- variant :f_double_flat, accidental: Accidental.double_flat
70
- variant :f_flat, accidental: Accidental.flat
71
- variant :f_natural, accidental: Accidental.natural
72
- variant :f_sharp, accidental: Accidental.sharp
73
- variant :f_double_sharp, accidental: Accidental.double_sharp
139
+ variant :f_double_flat,
140
+ accidental: Accidental.double_flat,
141
+ circle_of_fifths?: false
142
+
143
+ variant :f_flat,
144
+ accidental: Accidental.flat,
145
+ circle_of_fifths?: false
146
+
147
+ variant :f_natural,
148
+ accidental: Accidental.natural,
149
+ circle_of_fifths?: true
150
+
151
+ variant :f_sharp,
152
+ accidental: Accidental.sharp,
153
+ circle_of_fifths?: true
154
+
155
+ variant :f_double_sharp,
156
+ accidental: Accidental.double_sharp,
157
+ circle_of_fifths?: false
74
158
  end
75
159
 
76
160
  with_options pitch_class: PitchClass.g do
77
- variant :g_double_flat, accidental: Accidental.double_flat
78
- variant :g_flat, accidental: Accidental.flat
79
- variant :g_natural, accidental: Accidental.natural
80
- variant :g_sharp, accidental: Accidental.sharp
81
- variant :g_double_sharp, accidental: Accidental.double_sharp
161
+ variant :g_double_flat,
162
+ accidental: Accidental.double_flat,
163
+ circle_of_fifths?: false
164
+
165
+ variant :g_flat,
166
+ accidental: Accidental.flat,
167
+ circle_of_fifths?: true
168
+
169
+ variant :g_natural,
170
+ accidental: Accidental.natural,
171
+ circle_of_fifths?: true
172
+
173
+ variant :g_sharp,
174
+ accidental: Accidental.sharp,
175
+ circle_of_fifths?: false
176
+
177
+ variant :g_double_sharp,
178
+ accidental: Accidental.double_sharp,
179
+ circle_of_fifths?: false
82
180
  end
83
181
 
84
182
  def +(other)
@@ -133,7 +231,7 @@ module Stave
133
231
  end
134
232
 
135
233
  def self.circle_of_fifths
136
- Circle.new(type: CircleType.fifths, root: Note.c_natural).notes
234
+ where(circle_of_fifths?: true)
137
235
  end
138
236
  end
139
237
  end
data/lib/stave/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Stave
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Welham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-05 00:00:00.000000000 Z
11
+ date: 2024-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk