beeps 0.1.32 → 0.1.33

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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/beeps/adsr.cpp +139 -0
  3. data/.doc/ext/beeps/analyser.cpp +128 -0
  4. data/.doc/ext/beeps/beeps.cpp +9 -1
  5. data/.doc/ext/beeps/file_in.cpp +55 -9
  6. data/.doc/ext/beeps/gain.cpp +64 -0
  7. data/.doc/ext/beeps/mic_in.cpp +83 -0
  8. data/.doc/ext/beeps/native.cpp +20 -8
  9. data/.doc/ext/beeps/oscillator.cpp +88 -0
  10. data/.doc/ext/beeps/pitch_shift.cpp +64 -0
  11. data/.doc/ext/beeps/processor.cpp +31 -2
  12. data/.doc/ext/beeps/sound.cpp +90 -7
  13. data/.doc/ext/beeps/sound_player.cpp +156 -0
  14. data/.doc/ext/beeps/time_stretch.cpp +64 -0
  15. data/.github/workflows/release-gem.yml +4 -1
  16. data/ChangeLog.md +8 -0
  17. data/Rakefile +26 -4
  18. data/VERSION +1 -1
  19. data/beeps.gemspec +2 -2
  20. data/ext/beeps/adsr.cpp +150 -0
  21. data/ext/beeps/analyser.cpp +134 -0
  22. data/ext/beeps/beeps.cpp +10 -1
  23. data/ext/beeps/extconf.rb +1 -2
  24. data/ext/beeps/file_in.cpp +60 -9
  25. data/ext/beeps/gain.cpp +67 -0
  26. data/ext/beeps/mic_in.cpp +88 -0
  27. data/ext/beeps/native.cpp +20 -8
  28. data/ext/beeps/oscillator.cpp +93 -0
  29. data/ext/beeps/pitch_shift.cpp +67 -0
  30. data/ext/beeps/processor.cpp +34 -2
  31. data/ext/beeps/sound.cpp +99 -7
  32. data/ext/beeps/sound_player.cpp +169 -0
  33. data/ext/beeps/time_stretch.cpp +67 -0
  34. data/include/beeps/beeps.h +2 -1
  35. data/include/beeps/filter.h +179 -0
  36. data/include/beeps/generator.h +120 -0
  37. data/include/beeps/processor.h +37 -68
  38. data/include/beeps/ruby/filter.h +78 -0
  39. data/include/beeps/ruby/generator.h +60 -0
  40. data/include/beeps/ruby/processor.h +5 -45
  41. data/include/beeps/ruby/sound.h +14 -3
  42. data/include/beeps/signals.h +10 -4
  43. data/include/beeps/sound.h +67 -2
  44. data/lib/beeps/beeps.rb +6 -1
  45. data/lib/beeps/processor.rb +95 -15
  46. data/lib/beeps/sound.rb +29 -2
  47. data/src/adsr.cpp +245 -0
  48. data/src/analyser.cpp +254 -0
  49. data/src/beeps.cpp +11 -2
  50. data/src/file_in.cpp +94 -0
  51. data/src/gain.cpp +55 -0
  52. data/src/mic_in.cpp +262 -0
  53. data/src/mic_in.h +20 -0
  54. data/src/openal.cpp +2 -1
  55. data/src/oscillator.cpp +145 -0
  56. data/src/osx/signals.mm +83 -0
  57. data/src/pitch_shift.cpp +82 -0
  58. data/src/processor.cpp +202 -88
  59. data/src/processor.h +98 -0
  60. data/src/signals.cpp +326 -20
  61. data/src/signals.h +192 -2
  62. data/src/sound.cpp +735 -113
  63. data/src/sound.h +6 -1
  64. data/src/time_stretch.cpp +91 -0
  65. data/test/helper.rb +2 -1
  66. data/test/test_beeps.rb +10 -7
  67. data/test/test_beeps_init.rb +18 -0
  68. data/test/test_file_in.rb +15 -0
  69. data/test/test_processor.rb +50 -0
  70. data/test/test_sound.rb +87 -11
  71. data/test/test_sound_player.rb +134 -0
  72. metadata +54 -16
  73. data/.doc/ext/beeps/sawtooth_wave.cpp +0 -61
  74. data/.doc/ext/beeps/sine_wave.cpp +0 -61
  75. data/.doc/ext/beeps/square_wave.cpp +0 -61
  76. data/ext/beeps/sawtooth_wave.cpp +0 -64
  77. data/ext/beeps/sine_wave.cpp +0 -64
  78. data/ext/beeps/square_wave.cpp +0 -64
@@ -1,61 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SawtoothWave)
8
-
9
- #define THIS to<Beeps::SawtoothWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SawtoothWave, self)
12
-
13
-
14
- static
15
- VALUE alloc(VALUE klass)
16
- {
17
- return new_type<Beeps::SawtoothWave>(klass);
18
- }
19
-
20
- static
21
- VALUE set_frequency(VALUE self, VALUE frequency)
22
- {
23
- CHECK;
24
- THIS->set_frequency(frequency.as_f(true));
25
- return self;
26
- }
27
-
28
- static
29
- VALUE frequency(VALUE self)
30
- {
31
- CHECK;
32
- return to<float>(THIS->frequency());
33
- }
34
-
35
-
36
- static Class cSawtoothWave;
37
-
38
- void
39
- Init_beeps_sawtooth_wave ()
40
- {
41
- Module mBeeps = rb_define_module("Beeps");
42
-
43
- cSawtoothWave = mBeeps.define_class("SawtoothWave", Beeps::processor_class());
44
- rb_define_alloc_func(cSawtoothWave, alloc);
45
- rb_define_method(cSawtoothWave, "frequency=", RUBY_METHOD_FUNC(set_frequency), 1);
46
- rb_define_method(cSawtoothWave, "frequency", RUBY_METHOD_FUNC(frequency), 0);
47
- }
48
-
49
-
50
- namespace Beeps
51
- {
52
-
53
-
54
- Class
55
- sawtooth_wave_class ()
56
- {
57
- return cSawtoothWave;
58
- }
59
-
60
-
61
- }// Beeps
@@ -1,61 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SineWave)
8
-
9
- #define THIS to<Beeps::SineWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SineWave, self)
12
-
13
-
14
- static
15
- VALUE alloc(VALUE klass)
16
- {
17
- return new_type<Beeps::SineWave>(klass);
18
- }
19
-
20
- static
21
- VALUE set_frequency(VALUE self, VALUE frequency)
22
- {
23
- CHECK;
24
- THIS->set_frequency(frequency.as_f(true));
25
- return self;
26
- }
27
-
28
- static
29
- VALUE frequency(VALUE self)
30
- {
31
- CHECK;
32
- return to<float>(THIS->frequency());
33
- }
34
-
35
-
36
- static Class cSineWave;
37
-
38
- void
39
- Init_beeps_sine_wave ()
40
- {
41
- Module mBeeps = rb_define_module("Beeps");
42
-
43
- cSineWave = mBeeps.define_class("SineWave", Beeps::processor_class());
44
- rb_define_alloc_func(cSineWave, alloc);
45
- rb_define_method(cSineWave, "frequency=", RUBY_METHOD_FUNC(set_frequency), 1);
46
- rb_define_method(cSineWave, "frequency", RUBY_METHOD_FUNC(frequency), 0);
47
- }
48
-
49
-
50
- namespace Beeps
51
- {
52
-
53
-
54
- Class
55
- sine_wave_class ()
56
- {
57
- return cSineWave;
58
- }
59
-
60
-
61
- }// Beeps
@@ -1,61 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SquareWave)
8
-
9
- #define THIS to<Beeps::SquareWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SquareWave, self)
12
-
13
-
14
- static
15
- VALUE alloc(VALUE klass)
16
- {
17
- return new_type<Beeps::SquareWave>(klass);
18
- }
19
-
20
- static
21
- VALUE set_frequency(VALUE self, VALUE frequency)
22
- {
23
- CHECK;
24
- THIS->set_frequency(frequency.as_f(true));
25
- return self;
26
- }
27
-
28
- static
29
- VALUE frequency(VALUE self)
30
- {
31
- CHECK;
32
- return to<float>(THIS->frequency());
33
- }
34
-
35
-
36
- static Class cSquareWave;
37
-
38
- void
39
- Init_beeps_square_wave ()
40
- {
41
- Module mBeeps = rb_define_module("Beeps");
42
-
43
- cSquareWave = mBeeps.define_class("SquareWave", Beeps::processor_class());
44
- rb_define_alloc_func(cSquareWave, alloc);
45
- rb_define_method(cSquareWave, "frequency=", RUBY_METHOD_FUNC(set_frequency), 1);
46
- rb_define_method(cSquareWave, "frequency", RUBY_METHOD_FUNC(frequency), 0);
47
- }
48
-
49
-
50
- namespace Beeps
51
- {
52
-
53
-
54
- Class
55
- square_wave_class ()
56
- {
57
- return cSquareWave;
58
- }
59
-
60
-
61
- }// Beeps
@@ -1,64 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SawtoothWave)
8
-
9
- #define THIS to<Beeps::SawtoothWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SawtoothWave, self)
12
-
13
-
14
- static
15
- RUCY_DEF_ALLOC(alloc, klass)
16
- {
17
- return new_type<Beeps::SawtoothWave>(klass);
18
- }
19
- RUCY_END
20
-
21
- static
22
- RUCY_DEF1(set_frequency, frequency)
23
- {
24
- CHECK;
25
- THIS->set_frequency(frequency.as_f(true));
26
- return self;
27
- }
28
- RUCY_END
29
-
30
- static
31
- RUCY_DEF0(frequency)
32
- {
33
- CHECK;
34
- return to<float>(THIS->frequency());
35
- }
36
- RUCY_END
37
-
38
-
39
- static Class cSawtoothWave;
40
-
41
- void
42
- Init_beeps_sawtooth_wave ()
43
- {
44
- Module mBeeps = define_module("Beeps");
45
-
46
- cSawtoothWave = mBeeps.define_class("SawtoothWave", Beeps::processor_class());
47
- cSawtoothWave.define_alloc_func(alloc);
48
- cSawtoothWave.define_method("frequency=", set_frequency);
49
- cSawtoothWave.define_method("frequency", frequency);
50
- }
51
-
52
-
53
- namespace Beeps
54
- {
55
-
56
-
57
- Class
58
- sawtooth_wave_class ()
59
- {
60
- return cSawtoothWave;
61
- }
62
-
63
-
64
- }// Beeps
@@ -1,64 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SineWave)
8
-
9
- #define THIS to<Beeps::SineWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SineWave, self)
12
-
13
-
14
- static
15
- RUCY_DEF_ALLOC(alloc, klass)
16
- {
17
- return new_type<Beeps::SineWave>(klass);
18
- }
19
- RUCY_END
20
-
21
- static
22
- RUCY_DEF1(set_frequency, frequency)
23
- {
24
- CHECK;
25
- THIS->set_frequency(frequency.as_f(true));
26
- return self;
27
- }
28
- RUCY_END
29
-
30
- static
31
- RUCY_DEF0(frequency)
32
- {
33
- CHECK;
34
- return to<float>(THIS->frequency());
35
- }
36
- RUCY_END
37
-
38
-
39
- static Class cSineWave;
40
-
41
- void
42
- Init_beeps_sine_wave ()
43
- {
44
- Module mBeeps = define_module("Beeps");
45
-
46
- cSineWave = mBeeps.define_class("SineWave", Beeps::processor_class());
47
- cSineWave.define_alloc_func(alloc);
48
- cSineWave.define_method("frequency=", set_frequency);
49
- cSineWave.define_method("frequency", frequency);
50
- }
51
-
52
-
53
- namespace Beeps
54
- {
55
-
56
-
57
- Class
58
- sine_wave_class ()
59
- {
60
- return cSineWave;
61
- }
62
-
63
-
64
- }// Beeps
@@ -1,64 +0,0 @@
1
- #include "beeps/ruby/processor.h"
2
-
3
-
4
- #include "defs.h"
5
-
6
-
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SquareWave)
8
-
9
- #define THIS to<Beeps::SquareWave*>(self)
10
-
11
- #define CHECK RUCY_CHECK_OBJECT(Beeps::SquareWave, self)
12
-
13
-
14
- static
15
- RUCY_DEF_ALLOC(alloc, klass)
16
- {
17
- return new_type<Beeps::SquareWave>(klass);
18
- }
19
- RUCY_END
20
-
21
- static
22
- RUCY_DEF1(set_frequency, frequency)
23
- {
24
- CHECK;
25
- THIS->set_frequency(frequency.as_f(true));
26
- return self;
27
- }
28
- RUCY_END
29
-
30
- static
31
- RUCY_DEF0(frequency)
32
- {
33
- CHECK;
34
- return to<float>(THIS->frequency());
35
- }
36
- RUCY_END
37
-
38
-
39
- static Class cSquareWave;
40
-
41
- void
42
- Init_beeps_square_wave ()
43
- {
44
- Module mBeeps = define_module("Beeps");
45
-
46
- cSquareWave = mBeeps.define_class("SquareWave", Beeps::processor_class());
47
- cSquareWave.define_alloc_func(alloc);
48
- cSquareWave.define_method("frequency=", set_frequency);
49
- cSquareWave.define_method("frequency", frequency);
50
- }
51
-
52
-
53
- namespace Beeps
54
- {
55
-
56
-
57
- Class
58
- square_wave_class ()
59
- {
60
- return cSquareWave;
61
- }
62
-
63
-
64
- }// Beeps