feep 0.2.0 → 0.2.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
- SHA1:
3
- metadata.gz: e87c34f7d21c5d23b2669158b25ce0fc0fd1bf60
4
- data.tar.gz: edf55481d50da651ffd4d48e907ba1e8e310660a
2
+ SHA256:
3
+ metadata.gz: 928244c2a8864fca9f619a60eed0c7da8e6d4df507d467660beb2907597716db
4
+ data.tar.gz: 102df846ee51d192a915318fc78f63dcdd4de8881ae7e5d090e5c4d3080269a4
5
5
  SHA512:
6
- metadata.gz: cb7e7b72212d937917828282e0523133e9b1ef38d61d6c47e42a3b860a9d9270444ebc5ec08483e547cc84e8532277ca0b8a6e2617ac56771722bed82c13236c
7
- data.tar.gz: 985dab8e5d8b3e4aafd0547bfeeddaaed048448f0d50b5f18c85f5eda8aa2e33a5bd8f6fd873790a675444805811991641daf4c6c3e703b83aa298950e9c0cdb
6
+ metadata.gz: 641ca5b0a4f84d7ee28b7c61289d64039903a5db7f4290e9f0bbcbddf3de0926ca4248b4188a14c7079dd2eb0ff28f3ac82862c11ad8b657fbee010ffc8af860
7
+ data.tar.gz: 5c2f14de1f60e886f089aadf1f18a38eb7444a736912dddf9f3a69a0565bc0a387080e5d5c220a573349773f2dbea43711beae7a681e068b9d24ae1aab61836c
@@ -1,16 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- feep (0.1.4)
4
+ feep (0.2.1)
5
5
  os (~> 0.9, >= 0.9.6)
6
6
  wavefile (= 0.6.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.0.0)
12
- astrolabe (1.3.0)
13
- parser (>= 2.2.0.pre.3, < 3.0)
11
+ ast (2.3.0)
14
12
  byebug (3.5.1)
15
13
  columnize (~> 0.8)
16
14
  debugger-linecache (~> 1.2)
@@ -21,9 +19,10 @@ GEM
21
19
  diff-lcs (1.2.5)
22
20
  method_source (0.8.2)
23
21
  os (0.9.6)
24
- parser (2.2.0.3)
25
- ast (>= 1.1, < 3.0)
26
- powerpack (0.1.0)
22
+ parallel (1.12.1)
23
+ parser (2.4.0.2)
24
+ ast (~> 2.3)
25
+ powerpack (0.1.1)
27
26
  pry (0.10.1)
28
27
  coderay (~> 1.1.0)
29
28
  method_source (~> 0.8.1)
@@ -36,7 +35,7 @@ GEM
36
35
  pry-byebug (3.0.1)
37
36
  byebug (~> 3.4)
38
37
  pry (~> 0.10)
39
- rainbow (2.0.0)
38
+ rainbow (3.0.0)
40
39
  rake (10.4.2)
41
40
  rspec (3.2.0)
42
41
  rspec-core (~> 3.2.0)
@@ -51,14 +50,16 @@ GEM
51
50
  diff-lcs (>= 1.2.0, < 2.0)
52
51
  rspec-support (~> 3.2.0)
53
52
  rspec-support (3.2.2)
54
- rubocop (0.29.1)
55
- astrolabe (~> 1.3)
56
- parser (>= 2.2.0.1, < 3.0)
53
+ rubocop (0.52.1)
54
+ parallel (~> 1.10)
55
+ parser (>= 2.4.0.2, < 3.0)
57
56
  powerpack (~> 0.1)
58
- rainbow (>= 1.99.1, < 3.0)
59
- ruby-progressbar (~> 1.4)
60
- ruby-progressbar (1.7.5)
57
+ rainbow (>= 2.2.2, < 4.0)
58
+ ruby-progressbar (~> 1.7)
59
+ unicode-display_width (~> 1.0, >= 1.0.1)
60
+ ruby-progressbar (1.9.0)
61
61
  slop (3.6.0)
62
+ unicode-display_width (1.3.0)
62
63
  wavefile (0.6.0)
63
64
  win32console (1.3.2)
64
65
 
@@ -72,7 +73,7 @@ DEPENDENCIES
72
73
  pry-byebug (~> 3.0)
73
74
  rake (~> 10.0)
74
75
  rspec (~> 3.0)
75
- rubocop (~> 0.29)
76
+ rubocop (~> 0.52.1)
76
77
 
77
78
  BUNDLED WITH
78
- 1.13.1
79
+ 1.16.1
@@ -1,30 +1,30 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'feep/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'feep'
8
- spec.version = Feep::VERSION
9
- spec.platform = Gem::Platform::RUBY
10
- spec.authors = ['Michael Chadwick']
11
- spec.email = 'mike@codana.me'
12
- spec.homepage = 'http://rubygems.org/gems/feep'
13
- spec.summary = 'Make your computer feep with Ruby'
14
- spec.description = 'Use Ruby to make your computer beep at a certain frequency for a certain duration. Do it for fun, or add it to other programs for easy alert sounds.'
15
-
16
- spec.files = `git ls-files`.split("\n")
17
- spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
- spec.require_paths = ['lib']
20
- spec.license = 'MIT'
21
-
22
- spec.add_runtime_dependency 'wavefile', '= 0.6.0'
23
- spec.add_runtime_dependency 'os', '~> 0.9', '>= 0.9.6'
24
-
25
- spec.add_development_dependency 'pry-byebug', '~> 3.0'
26
- spec.add_development_dependency 'bundler', '~> 1.8'
27
- spec.add_development_dependency 'rake', '~> 10.0'
28
- spec.add_development_dependency 'rspec', '~> 3.0'
29
- spec.add_development_dependency 'rubocop', '~> 0.29'
30
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'feep/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'feep'
8
+ spec.version = Feep::VERSION
9
+ spec.platform = Gem::Platform::RUBY
10
+ spec.authors = ['Michael Chadwick']
11
+ spec.email = 'mike@codana.me'
12
+ spec.homepage = 'http://rubygems.org/gems/feep'
13
+ spec.summary = 'Make your computer feep with Ruby'
14
+ spec.description = 'Use Ruby to make your computer beep at a certain frequency for a certain duration. Do it for fun, or add it to other programs for easy alert sounds.'
15
+
16
+ spec.files = `git ls-files`.split("\n")
17
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
20
+ spec.license = 'MIT'
21
+
22
+ spec.add_runtime_dependency 'wavefile', '= 0.6.0'
23
+ spec.add_runtime_dependency 'os', '~> 0.9', '>= 0.9.6'
24
+
25
+ spec.add_development_dependency 'pry-byebug', '~> 3.0'
26
+ spec.add_development_dependency 'bundler', '~> 1.8'
27
+ spec.add_development_dependency 'rake', '~> 10.0'
28
+ spec.add_development_dependency 'rspec', '~> 3.0'
29
+ spec.add_development_dependency 'rubocop', '~> 0.52.1'
30
+ end
@@ -1,257 +1,257 @@
1
- # lib/feep/constants.rb
2
-
3
- module Feep
4
- # constants
5
- SNDPLAYER_WIN = 'sounder.exe'
6
- SNDPLAYER_UNIX = 'afplay'
7
- SAMPLE_RATE = 44100
8
- TWO_PI = 2 * Math::PI
9
- RANDOM_GENERATOR = Random.new
10
- WAVE_TYPES = %w[sine square saw triangle noise]
11
-
12
- # tables of musical data
13
- SCALES = Hash[
14
- :chromatic => '1,1,1,1,1,1,1,1,1,1,1,1,1',
15
- :whole_tone => '2,2,2,2,2,2,2',
16
- :major => '2,2,2,1,2,2,2,1',
17
- :minor_harm => '2,1,2,2,1,3,3',
18
- :minor_melodic => '2,1,2,2,2,2,3',
19
- :major_pentatonic => '2,2,3,2,3,2',
20
- :minor_pentatonic => '3,2,2,3,2,3',
21
- :blues => '3,2,1,1,3,2,3',
22
- :phyrgian => '1,2,2,2,1,2,2,2',
23
- :dorian => '2,1,2,2,2,1,2,2'
24
- ]
25
- NOTES = Array[
26
- 'C0','C#0','D0','D#0','E0','F0','F#0','G0','G#0','A0','A#0','B0',
27
- 'C1','C#1','D1','D#1','E1','F1','F#1','G1','G#1','A1','A#1','B1',
28
- 'C2','C#2','D2','D#2','E2','F2','F#2','G2','G#2','A2','A#2','B2',
29
- 'C3','C#3','D3','D#3','E3','F3','F#3','G3','G#3','A3','A#3','B3',
30
- 'C4','C#4','D4','D#4','E4','F4','F#4','G4','G#4','A4','A#4','B4',
31
- 'C5','C#5','D5','D#5','E5','F5','F#5','G5','G#5','A5','A#5','B5',
32
- 'C6','C#6','D6','D#6','E6','F6','F#6','G6','G#6','A6','A#6','B6',
33
- 'C7','C#7','D7','D#7','E7','F7','F#7','G7','G#7','A7','A#7','B7',
34
- 'C8','C#8','D8','D#8','E8','F8','F#8','G8','G#8','A8','A#8','B8',
35
- 'C9','C#9','D9','D#9','E9','F9','F#9','G9','G#9','A9','A#9','B9'
36
- ]
37
- NOTES_ALT = Array[
38
- 'C0','Db0','D0','Eb0','E0','F0','Gb0','G0','Ab0','A0','Bb0','B0',
39
- 'C1','Db1','D1','Eb1','E1','F1','Gb1','G1','Ab1','A1','Bb1','B1',
40
- 'C2','Db2','D2','Eb2','E2','F2','Gb2','G2','Ab2','A2','Bb2','B2',
41
- 'C3','Db3','D3','Eb3','E3','F3','Gb3','G3','Ab3','A3','Bb3','B3',
42
- 'C4','Db4','D4','Eb4','E4','F4','Gb4','G4','Ab4','A4','Bb4','B4',
43
- 'C5','Db5','D5','Eb5','E5','F5','Gb5','G5','Ab5','A5','Bb5','B5',
44
- 'C6','Db6','D6','Eb6','E6','F6','Gb6','G6','Ab6','A6','Bb6','B6',
45
- 'C7','Db7','D7','Eb7','E7','F7','Gb7','G7','Ab7','A7','Bb7','B7',
46
- 'C8','Db8','D8','Eb8','E8','F8','Gb8','G8','Ab8','A8','Bb8','B8',
47
- 'C9','Db9','D9','Eb9','E9','F9','Gb9','G9','Ab9','A9','Bb9','B9'
48
- ]
49
-
50
- FREQS = Array[
51
- 16.351,17.324,18.354,19.445,20.601,21.827,23.124,24.499,25.956,27.500,29.135,30.868,
52
- 32.703,34.648,36.708,38.891,41.203,43.654,46.249,48.999,51.913,55.000,58.270,61.375,
53
- 65.406,69.296,73.416,77.782,82.407,87.307,92.499,97.999,103.826,110.000,116.541,
54
- 123.471,130.813,138.591,146.832,155.564,164.814,174.614,184.997,195.998,207.652,220.000,233.082,246.942,
55
- 261.626,277.183,293.665,311.127,329.628,349.228,369.994,391.995,415.305,440.000,466.164,493.883,
56
- 523.251,554.365,587.330,622.254,659.255,698.457,739.989,783.991,830.609,880.000,932.328,987.767,
57
- 1046.502,1108.731,1174.659,1244.508,1318.510,1396.913,1479.978,1567.982,1661.219,1760.000,1864.655,1975.533,
58
- 2093.005,2217.461,2349.318,2489.016,2637.021,2793.826,2959.956,3135.964,3322.438,3520.000,3729.310,3951.066,
59
- 4186.009,4434.922,4698.636,4978.032,5274.042,5587.652,5919.910,6271.928,6644.876,7040.000,7458.620,7902.132,
60
- 8372.018,8869.844,9397.272,9956.064,10548.084,11175.304,11839.820,12543.856,13289.752,14080.000,14917.240,15804.264
61
- ]
62
-
63
- MIDIS = Array[
64
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
65
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
66
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
67
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
68
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
69
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
70
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
71
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
72
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
73
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131
74
- ]
75
-
76
- NOTE_FREQ = Hash[
77
- 'C0' => 16.351,
78
- 'C#0' => 17.324,
79
- 'Db0' => 17.324,
80
- 'D0' => 18.354,
81
- 'D#0' => 19.445,
82
- 'Eb0' => 19.445,
83
- 'E0' => 20.601,
84
- 'F0' => 21.827,
85
- 'F#0' => 23.124,
86
- 'Gb0' => 23.124,
87
- 'G0' => 24.499,
88
- 'G#0' => 25.956,
89
- 'Ab0' => 25.956,
90
- 'A0' => 27.500,
91
- 'A#0' => 29.135,
92
- 'Bb0' => 29.135,
93
- 'B0' => 30.868,
94
- 'C1' => 32.703,
95
- 'C#1' => 34.648,
96
- 'Db1' => 34.648,
97
- 'D1' => 36.708,
98
- 'D#1' => 38.891,
99
- 'Eb1' => 38.891,
100
- 'E1' => 41.203,
101
- 'F1' => 43.654,
102
- 'F#1' => 46.249,
103
- 'Gb1' => 46.249,
104
- 'G1' => 48.999,
105
- 'G#1' => 51.913,
106
- 'Ab1' => 51.913,
107
- 'A1' => 55.000,
108
- 'A#1' => 58.270,
109
- 'Bb1' => 58.270,
110
- 'B1' => 61.375,
111
- 'C2' => 65.406,
112
- 'C#2' => 69.296,
113
- 'Db2' => 69.296,
114
- 'D2' => 73.416,
115
- 'D#2' => 77.782,
116
- 'Eb2' => 77.782,
117
- 'E2' => 82.407,
118
- 'F2' => 87.307,
119
- 'F#2' => 92.499,
120
- 'Gb2' => 92.499,
121
- 'G2' => 97.999,
122
- 'G#2' => 97.999,
123
- 'Ab2' => 103.826,
124
- 'A2' => 110.000,
125
- 'A#2' => 116.541,
126
- 'Bb2' => 116.541,
127
- 'B2' => 123.471,
128
- 'C3' => 130.813,
129
- 'C#3' => 138.591,
130
- 'Db3' => 138.591,
131
- 'D3' => 146.832,
132
- 'D#3' => 155.564,
133
- 'Eb3' => 155.564,
134
- 'E3' => 164.814,
135
- 'F3' => 174.614,
136
- 'F#3' => 184.997,
137
- 'Gb3' => 184.997,
138
- 'G3' => 195.998,
139
- 'G#3' => 207.652,
140
- 'Ab3' => 207.652,
141
- 'A3' => 220.000,
142
- 'A#3' => 233.082,
143
- 'Bb3' => 233.082,
144
- 'B3' => 246.942,
145
- 'C4' => 261.626,
146
- 'C#4' => 277.183,
147
- 'Db4' => 277.183,
148
- 'D4' => 293.665,
149
- 'D#4' => 311.127,
150
- 'Eb4' => 311.127,
151
- 'E4' => 329.628,
152
- 'F4' => 349.228,
153
- 'F#4' => 369.994,
154
- 'Gb4' => 369.994,
155
- 'G4' => 391.995,
156
- 'G#4' => 415.305,
157
- 'Ab4' => 415.305,
158
- 'A4' => 440.000,
159
- 'A#4' => 466.164,
160
- 'Bb4' => 466.164,
161
- 'B4' => 493.883,
162
- 'C5' => 523.251,
163
- 'C#5' => 554.365,
164
- 'Db5' => 554.365,
165
- 'D5' => 587.330,
166
- 'D#5' => 622.254,
167
- 'Eb5' => 622.254,
168
- 'E5' => 659.255,
169
- 'F5' => 698.457,
170
- 'F#5' => 739.989,
171
- 'Gb5' => 739.989,
172
- 'G5' => 783.991,
173
- 'G#5' => 830.609,
174
- 'Ab5' => 830.609,
175
- 'A5' => 880.000,
176
- 'A#5' => 932.328,
177
- 'Bb5' => 932.328,
178
- 'B5' => 987.767,
179
- 'C6' => 1046.502,
180
- 'C#6' => 1108.731,
181
- 'Db6' => 1108.731,
182
- 'D6' => 1174.659,
183
- 'D#6' => 1244.508,
184
- 'Eb6' => 1244.508,
185
- 'E6' => 1318.510,
186
- 'F6' => 1396.913,
187
- 'F#6' => 1479.978,
188
- 'Gb6' => 1479.978,
189
- 'G6' => 1567.982,
190
- 'G#6' => 1661.219,
191
- 'Ab6' => 1661.219,
192
- 'A6' => 1760.000,
193
- 'A#6' => 1864.655,
194
- 'Bb6' => 1864.655,
195
- 'B6' => 1975.533,
196
- 'C7' => 2093.005,
197
- 'C#7' => 2217.461,
198
- 'Db7' => 2217.461,
199
- 'D7' => 2349.318,
200
- 'D#7' => 2489.016,
201
- 'Eb7' => 2489.016,
202
- 'E7' => 2637.021,
203
- 'F7' => 2793.826,
204
- 'F#7' => 2959.956,
205
- 'Gb7' => 2959.956,
206
- 'G7' => 3135.964,
207
- 'G#7' => 3322.438,
208
- 'Ab7' => 3322.438,
209
- 'A7' => 3520.000,
210
- 'A#7' => 3729.310,
211
- 'Bb7' => 3729.310,
212
- 'B7' => 3951.066,
213
- 'C8' => 4186.009,
214
- 'C#8' => 4434.922,
215
- 'Db8' => 4434.922,
216
- 'D8' => 4698.636,
217
- 'D#8' => 4978.032,
218
- 'Eb8' => 4978.032,
219
- 'E8' => 5274.042,
220
- 'F8' => 5587.652,
221
- 'F#8' => 5919.910,
222
- 'Gb8' => 5919.910,
223
- 'G8' => 6271.928,
224
- 'G#8' => 6644.876,
225
- 'Ab8' => 6644.876,
226
- 'A8' => 7040.000,
227
- 'A#8' => 7458.620,
228
- 'Bb8' => 7458.620,
229
- 'B8' => 7902.132,
230
- 'C9' => 8372.018,
231
- 'C#9' => 8869.844,
232
- 'Db9' => 8869.844,
233
- 'D9' => 9397.272,
234
- 'D#9' => 9956.064,
235
- 'Eb9' => 9956.064,
236
- 'E9' => 10548.084,
237
- 'F9' => 11175.304,
238
- 'F#9' => 11839.820,
239
- 'Gb9' => 11839.820,
240
- 'G9' => 12543.856,
241
- 'G#9' => 13289.752,
242
- 'Ab9' => 13289.752,
243
- 'A9' => 14080.000,
244
- 'A#9' => 14917.240,
245
- 'Bb9' => 14917.240,
246
- 'B9' => 15804.264
247
- ]
248
-
249
- # error messages
250
- ERROR_MSG = Hash[
251
- :invalid_note => 'Note name argument is invalid.',
252
- :invalid_scale => "Scale ID is invalid. Valid IDs are: #{SCALES.keys}",
253
- :invalid_scale_root_note => 'Scale cannot start with that note/frequency.',
254
- :invalid_waveform => "Waveform type is invalid. Valid waveform types are: #{WAVE_TYPES}",
255
- :scale_needs_note => 'You need to enter a valid note (-n) if you want to play a scale.'
256
- ]
257
- end
1
+ # lib/feep/constants.rb
2
+
3
+ module Feep
4
+ # constants
5
+ SNDPLAYER_WIN = 'sounder.exe'
6
+ SNDPLAYER_UNIX = 'afplay'
7
+ SAMPLE_RATE = 44100
8
+ TWO_PI = 2 * Math::PI
9
+ RANDOM_GENERATOR = Random.new
10
+ WAVE_TYPES = %w[sine square saw triangle noise]
11
+
12
+ # tables of musical data
13
+ SCALES = Hash[
14
+ :chromatic => '1,1,1,1,1,1,1,1,1,1,1,1,1',
15
+ :whole_tone => '2,2,2,2,2,2,2',
16
+ :major => '2,2,2,1,2,2,2,1',
17
+ :minor_harm => '2,1,2,2,1,3,3',
18
+ :minor_melodic => '2,1,2,2,2,2,3',
19
+ :major_pentatonic => '2,2,3,2,3,2',
20
+ :minor_pentatonic => '3,2,2,3,2,3',
21
+ :blues => '3,2,1,1,3,2,3',
22
+ :phyrgian => '1,2,2,2,1,2,2,2',
23
+ :dorian => '2,1,2,2,2,1,2,2'
24
+ ]
25
+ NOTES = Array[
26
+ 'C0','C#0','D0','D#0','E0','F0','F#0','G0','G#0','A0','A#0','B0',
27
+ 'C1','C#1','D1','D#1','E1','F1','F#1','G1','G#1','A1','A#1','B1',
28
+ 'C2','C#2','D2','D#2','E2','F2','F#2','G2','G#2','A2','A#2','B2',
29
+ 'C3','C#3','D3','D#3','E3','F3','F#3','G3','G#3','A3','A#3','B3',
30
+ 'C4','C#4','D4','D#4','E4','F4','F#4','G4','G#4','A4','A#4','B4',
31
+ 'C5','C#5','D5','D#5','E5','F5','F#5','G5','G#5','A5','A#5','B5',
32
+ 'C6','C#6','D6','D#6','E6','F6','F#6','G6','G#6','A6','A#6','B6',
33
+ 'C7','C#7','D7','D#7','E7','F7','F#7','G7','G#7','A7','A#7','B7',
34
+ 'C8','C#8','D8','D#8','E8','F8','F#8','G8','G#8','A8','A#8','B8',
35
+ 'C9','C#9','D9','D#9','E9','F9','F#9','G9','G#9','A9','A#9','B9'
36
+ ]
37
+ NOTES_ALT = Array[
38
+ 'C0','Db0','D0','Eb0','E0','F0','Gb0','G0','Ab0','A0','Bb0','B0',
39
+ 'C1','Db1','D1','Eb1','E1','F1','Gb1','G1','Ab1','A1','Bb1','B1',
40
+ 'C2','Db2','D2','Eb2','E2','F2','Gb2','G2','Ab2','A2','Bb2','B2',
41
+ 'C3','Db3','D3','Eb3','E3','F3','Gb3','G3','Ab3','A3','Bb3','B3',
42
+ 'C4','Db4','D4','Eb4','E4','F4','Gb4','G4','Ab4','A4','Bb4','B4',
43
+ 'C5','Db5','D5','Eb5','E5','F5','Gb5','G5','Ab5','A5','Bb5','B5',
44
+ 'C6','Db6','D6','Eb6','E6','F6','Gb6','G6','Ab6','A6','Bb6','B6',
45
+ 'C7','Db7','D7','Eb7','E7','F7','Gb7','G7','Ab7','A7','Bb7','B7',
46
+ 'C8','Db8','D8','Eb8','E8','F8','Gb8','G8','Ab8','A8','Bb8','B8',
47
+ 'C9','Db9','D9','Eb9','E9','F9','Gb9','G9','Ab9','A9','Bb9','B9'
48
+ ]
49
+
50
+ FREQS = Array[
51
+ 16.351,17.324,18.354,19.445,20.601,21.827,23.124,24.499,25.956,27.500,29.135,30.868,
52
+ 32.703,34.648,36.708,38.891,41.203,43.654,46.249,48.999,51.913,55.000,58.270,61.375,
53
+ 65.406,69.296,73.416,77.782,82.407,87.307,92.499,97.999,103.826,110.000,116.541,
54
+ 123.471,130.813,138.591,146.832,155.564,164.814,174.614,184.997,195.998,207.652,220.000,233.082,246.942,
55
+ 261.626,277.183,293.665,311.127,329.628,349.228,369.994,391.995,415.305,440.000,466.164,493.883,
56
+ 523.251,554.365,587.330,622.254,659.255,698.457,739.989,783.991,830.609,880.000,932.328,987.767,
57
+ 1046.502,1108.731,1174.659,1244.508,1318.510,1396.913,1479.978,1567.982,1661.219,1760.000,1864.655,1975.533,
58
+ 2093.005,2217.461,2349.318,2489.016,2637.021,2793.826,2959.956,3135.964,3322.438,3520.000,3729.310,3951.066,
59
+ 4186.009,4434.922,4698.636,4978.032,5274.042,5587.652,5919.910,6271.928,6644.876,7040.000,7458.620,7902.132,
60
+ 8372.018,8869.844,9397.272,9956.064,10548.084,11175.304,11839.820,12543.856,13289.752,14080.000,14917.240,15804.264
61
+ ]
62
+
63
+ MIDIS = Array[
64
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
65
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
66
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
67
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
68
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
69
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
70
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
71
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
72
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
73
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131
74
+ ]
75
+
76
+ NOTE_FREQ = Hash[
77
+ 'C0' => 16.351,
78
+ 'C#0' => 17.324,
79
+ 'Db0' => 17.324,
80
+ 'D0' => 18.354,
81
+ 'D#0' => 19.445,
82
+ 'Eb0' => 19.445,
83
+ 'E0' => 20.601,
84
+ 'F0' => 21.827,
85
+ 'F#0' => 23.124,
86
+ 'Gb0' => 23.124,
87
+ 'G0' => 24.499,
88
+ 'G#0' => 25.956,
89
+ 'Ab0' => 25.956,
90
+ 'A0' => 27.500,
91
+ 'A#0' => 29.135,
92
+ 'Bb0' => 29.135,
93
+ 'B0' => 30.868,
94
+ 'C1' => 32.703,
95
+ 'C#1' => 34.648,
96
+ 'Db1' => 34.648,
97
+ 'D1' => 36.708,
98
+ 'D#1' => 38.891,
99
+ 'Eb1' => 38.891,
100
+ 'E1' => 41.203,
101
+ 'F1' => 43.654,
102
+ 'F#1' => 46.249,
103
+ 'Gb1' => 46.249,
104
+ 'G1' => 48.999,
105
+ 'G#1' => 51.913,
106
+ 'Ab1' => 51.913,
107
+ 'A1' => 55.000,
108
+ 'A#1' => 58.270,
109
+ 'Bb1' => 58.270,
110
+ 'B1' => 61.375,
111
+ 'C2' => 65.406,
112
+ 'C#2' => 69.296,
113
+ 'Db2' => 69.296,
114
+ 'D2' => 73.416,
115
+ 'D#2' => 77.782,
116
+ 'Eb2' => 77.782,
117
+ 'E2' => 82.407,
118
+ 'F2' => 87.307,
119
+ 'F#2' => 92.499,
120
+ 'Gb2' => 92.499,
121
+ 'G2' => 97.999,
122
+ 'G#2' => 97.999,
123
+ 'Ab2' => 103.826,
124
+ 'A2' => 110.000,
125
+ 'A#2' => 116.541,
126
+ 'Bb2' => 116.541,
127
+ 'B2' => 123.471,
128
+ 'C3' => 130.813,
129
+ 'C#3' => 138.591,
130
+ 'Db3' => 138.591,
131
+ 'D3' => 146.832,
132
+ 'D#3' => 155.564,
133
+ 'Eb3' => 155.564,
134
+ 'E3' => 164.814,
135
+ 'F3' => 174.614,
136
+ 'F#3' => 184.997,
137
+ 'Gb3' => 184.997,
138
+ 'G3' => 195.998,
139
+ 'G#3' => 207.652,
140
+ 'Ab3' => 207.652,
141
+ 'A3' => 220.000,
142
+ 'A#3' => 233.082,
143
+ 'Bb3' => 233.082,
144
+ 'B3' => 246.942,
145
+ 'C4' => 261.626,
146
+ 'C#4' => 277.183,
147
+ 'Db4' => 277.183,
148
+ 'D4' => 293.665,
149
+ 'D#4' => 311.127,
150
+ 'Eb4' => 311.127,
151
+ 'E4' => 329.628,
152
+ 'F4' => 349.228,
153
+ 'F#4' => 369.994,
154
+ 'Gb4' => 369.994,
155
+ 'G4' => 391.995,
156
+ 'G#4' => 415.305,
157
+ 'Ab4' => 415.305,
158
+ 'A4' => 440.000,
159
+ 'A#4' => 466.164,
160
+ 'Bb4' => 466.164,
161
+ 'B4' => 493.883,
162
+ 'C5' => 523.251,
163
+ 'C#5' => 554.365,
164
+ 'Db5' => 554.365,
165
+ 'D5' => 587.330,
166
+ 'D#5' => 622.254,
167
+ 'Eb5' => 622.254,
168
+ 'E5' => 659.255,
169
+ 'F5' => 698.457,
170
+ 'F#5' => 739.989,
171
+ 'Gb5' => 739.989,
172
+ 'G5' => 783.991,
173
+ 'G#5' => 830.609,
174
+ 'Ab5' => 830.609,
175
+ 'A5' => 880.000,
176
+ 'A#5' => 932.328,
177
+ 'Bb5' => 932.328,
178
+ 'B5' => 987.767,
179
+ 'C6' => 1046.502,
180
+ 'C#6' => 1108.731,
181
+ 'Db6' => 1108.731,
182
+ 'D6' => 1174.659,
183
+ 'D#6' => 1244.508,
184
+ 'Eb6' => 1244.508,
185
+ 'E6' => 1318.510,
186
+ 'F6' => 1396.913,
187
+ 'F#6' => 1479.978,
188
+ 'Gb6' => 1479.978,
189
+ 'G6' => 1567.982,
190
+ 'G#6' => 1661.219,
191
+ 'Ab6' => 1661.219,
192
+ 'A6' => 1760.000,
193
+ 'A#6' => 1864.655,
194
+ 'Bb6' => 1864.655,
195
+ 'B6' => 1975.533,
196
+ 'C7' => 2093.005,
197
+ 'C#7' => 2217.461,
198
+ 'Db7' => 2217.461,
199
+ 'D7' => 2349.318,
200
+ 'D#7' => 2489.016,
201
+ 'Eb7' => 2489.016,
202
+ 'E7' => 2637.021,
203
+ 'F7' => 2793.826,
204
+ 'F#7' => 2959.956,
205
+ 'Gb7' => 2959.956,
206
+ 'G7' => 3135.964,
207
+ 'G#7' => 3322.438,
208
+ 'Ab7' => 3322.438,
209
+ 'A7' => 3520.000,
210
+ 'A#7' => 3729.310,
211
+ 'Bb7' => 3729.310,
212
+ 'B7' => 3951.066,
213
+ 'C8' => 4186.009,
214
+ 'C#8' => 4434.922,
215
+ 'Db8' => 4434.922,
216
+ 'D8' => 4698.636,
217
+ 'D#8' => 4978.032,
218
+ 'Eb8' => 4978.032,
219
+ 'E8' => 5274.042,
220
+ 'F8' => 5587.652,
221
+ 'F#8' => 5919.910,
222
+ 'Gb8' => 5919.910,
223
+ 'G8' => 6271.928,
224
+ 'G#8' => 6644.876,
225
+ 'Ab8' => 6644.876,
226
+ 'A8' => 7040.000,
227
+ 'A#8' => 7458.620,
228
+ 'Bb8' => 7458.620,
229
+ 'B8' => 7902.132,
230
+ 'C9' => 8372.018,
231
+ 'C#9' => 8869.844,
232
+ 'Db9' => 8869.844,
233
+ 'D9' => 9397.272,
234
+ 'D#9' => 9956.064,
235
+ 'Eb9' => 9956.064,
236
+ 'E9' => 10548.084,
237
+ 'F9' => 11175.304,
238
+ 'F#9' => 11839.820,
239
+ 'Gb9' => 11839.820,
240
+ 'G9' => 12543.856,
241
+ 'G#9' => 13289.752,
242
+ 'Ab9' => 13289.752,
243
+ 'A9' => 14080.000,
244
+ 'A#9' => 14917.240,
245
+ 'Bb9' => 14917.240,
246
+ 'B9' => 15804.264
247
+ ]
248
+
249
+ # error messages
250
+ ERROR_MSG = Hash[
251
+ :invalid_note => 'Note name argument is invalid.',
252
+ :invalid_scale => "Scale ID is invalid. Valid IDs are: #{SCALES.keys}",
253
+ :invalid_scale_root_note => 'Scale cannot start with that note/frequency.',
254
+ :invalid_waveform => "Waveform type is invalid. Valid waveform types are: #{WAVE_TYPES}",
255
+ :scale_needs_note => 'You need to enter a valid note (-n) if you want to play a scale.'
256
+ ]
257
+ end
@@ -1,3 +1,3 @@
1
- module Feep
2
- VERSION = '0.2.0'
3
- end
1
+ module Feep
2
+ VERSION = '0.2.1'
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-11 00:00:00.000000000 Z
11
+ date: 2018-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wavefile
@@ -106,14 +106,14 @@ dependencies:
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0.29'
109
+ version: 0.52.1
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0.29'
116
+ version: 0.52.1
117
117
  description: Use Ruby to make your computer beep at a certain frequency for a certain
118
118
  duration. Do it for fun, or add it to other programs for easy alert sounds.
119
119
  email: mike@codana.me
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
159
  version: '0'
160
160
  requirements: []
161
161
  rubyforge_project:
162
- rubygems_version: 2.6.11
162
+ rubygems_version: 2.7.4
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: Make your computer feep with Ruby