beeps 0.1.32 → 0.1.33

Sign up to get free protection for your applications and to get access to all the features.
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