beeps 0.1.31 → 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 (81) 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 +62 -0
  16. data/.github/workflows/test.yml +0 -6
  17. data/.github/workflows/utils.rb +13 -5
  18. data/ChangeLog.md +13 -0
  19. data/Rakefile +27 -6
  20. data/VERSION +1 -1
  21. data/beeps.gemspec +2 -2
  22. data/ext/beeps/adsr.cpp +150 -0
  23. data/ext/beeps/analyser.cpp +134 -0
  24. data/ext/beeps/beeps.cpp +10 -1
  25. data/ext/beeps/extconf.rb +1 -2
  26. data/ext/beeps/file_in.cpp +60 -9
  27. data/ext/beeps/gain.cpp +67 -0
  28. data/ext/beeps/mic_in.cpp +88 -0
  29. data/ext/beeps/native.cpp +20 -8
  30. data/ext/beeps/oscillator.cpp +93 -0
  31. data/ext/beeps/pitch_shift.cpp +67 -0
  32. data/ext/beeps/processor.cpp +34 -2
  33. data/ext/beeps/sound.cpp +99 -7
  34. data/ext/beeps/sound_player.cpp +169 -0
  35. data/ext/beeps/time_stretch.cpp +67 -0
  36. data/include/beeps/beeps.h +2 -1
  37. data/include/beeps/filter.h +179 -0
  38. data/include/beeps/generator.h +120 -0
  39. data/include/beeps/processor.h +37 -68
  40. data/include/beeps/ruby/filter.h +78 -0
  41. data/include/beeps/ruby/generator.h +60 -0
  42. data/include/beeps/ruby/processor.h +5 -45
  43. data/include/beeps/ruby/sound.h +14 -3
  44. data/include/beeps/signals.h +10 -4
  45. data/include/beeps/sound.h +67 -2
  46. data/lib/beeps/beeps.rb +6 -1
  47. data/lib/beeps/processor.rb +95 -15
  48. data/lib/beeps/sound.rb +29 -2
  49. data/src/adsr.cpp +245 -0
  50. data/src/analyser.cpp +254 -0
  51. data/src/beeps.cpp +11 -2
  52. data/src/file_in.cpp +94 -0
  53. data/src/gain.cpp +55 -0
  54. data/src/mic_in.cpp +262 -0
  55. data/src/mic_in.h +20 -0
  56. data/src/openal.cpp +2 -1
  57. data/src/oscillator.cpp +145 -0
  58. data/src/osx/signals.mm +83 -0
  59. data/src/pitch_shift.cpp +82 -0
  60. data/src/processor.cpp +202 -88
  61. data/src/processor.h +98 -0
  62. data/src/signals.cpp +326 -20
  63. data/src/signals.h +192 -2
  64. data/src/sound.cpp +735 -113
  65. data/src/sound.h +6 -1
  66. data/src/time_stretch.cpp +91 -0
  67. data/test/helper.rb +2 -1
  68. data/test/test_beeps.rb +10 -7
  69. data/test/test_beeps_init.rb +18 -0
  70. data/test/test_file_in.rb +15 -0
  71. data/test/test_processor.rb +50 -0
  72. data/test/test_sound.rb +87 -11
  73. data/test/test_sound_player.rb +134 -0
  74. metadata +55 -17
  75. data/.doc/ext/beeps/sawtooth_wave.cpp +0 -61
  76. data/.doc/ext/beeps/sine_wave.cpp +0 -61
  77. data/.doc/ext/beeps/square_wave.cpp +0 -61
  78. data/.github/workflows/release.yml +0 -34
  79. data/ext/beeps/sawtooth_wave.cpp +0 -64
  80. data/ext/beeps/sine_wave.cpp +0 -64
  81. 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,34 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags: ['v[0-9]*']
6
-
7
- jobs:
8
- release:
9
- runs-on: macos-latest
10
-
11
- steps:
12
- - name: ruby 3.2
13
- uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: 3.2
16
-
17
- - name: checkout
18
- uses: actions/checkout@v2
19
-
20
- - name: setup dependencies
21
- run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
22
-
23
- - name: test
24
- run: rake test
25
-
26
- - name: upload to rubygems
27
- env:
28
- GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
29
- run: |
30
- mkdir -p $HOME/.gem
31
- touch $HOME/.gem/credentials
32
- chmod 0600 $HOME/.gem/credentials
33
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
34
- rake upload
@@ -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