beeps 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.doc/ext/beeps/analyser.cpp +1 -1
  3. data/.doc/ext/beeps/{adsr.cpp → envelope.cpp} +20 -20
  4. data/.doc/ext/beeps/file_in.cpp +1 -1
  5. data/.doc/ext/beeps/gain.cpp +1 -1
  6. data/.doc/ext/beeps/mic_in.cpp +1 -1
  7. data/.doc/ext/beeps/native.cpp +4 -2
  8. data/.doc/ext/beeps/oscillator.cpp +1 -1
  9. data/.doc/ext/beeps/pitch_shift.cpp +1 -1
  10. data/.doc/ext/beeps/processor.cpp +1 -1
  11. data/.doc/ext/beeps/sequencer.cpp +87 -0
  12. data/.doc/ext/beeps/sound.cpp +1 -1
  13. data/.doc/ext/beeps/sound_player.cpp +1 -1
  14. data/.doc/ext/beeps/time_stretch.cpp +1 -1
  15. data/.github/workflows/release-gem.yml +1 -1
  16. data/.github/workflows/test.yml +3 -0
  17. data/ChangeLog.md +13 -0
  18. data/Gemfile.lock +1 -1
  19. data/LICENSE +21 -0
  20. data/Rakefile +3 -2
  21. data/VERSION +1 -1
  22. data/beeps.gemspec +2 -2
  23. data/ext/beeps/analyser.cpp +1 -1
  24. data/ext/beeps/defs.h +2 -0
  25. data/ext/beeps/{adsr.cpp → envelope.cpp} +20 -20
  26. data/ext/beeps/extconf.rb +11 -3
  27. data/ext/beeps/file_in.cpp +1 -1
  28. data/ext/beeps/gain.cpp +1 -1
  29. data/ext/beeps/mic_in.cpp +1 -1
  30. data/ext/beeps/native.cpp +4 -2
  31. data/ext/beeps/oscillator.cpp +1 -1
  32. data/ext/beeps/pitch_shift.cpp +1 -1
  33. data/ext/beeps/processor.cpp +1 -1
  34. data/ext/beeps/sequencer.cpp +92 -0
  35. data/ext/beeps/sound.cpp +1 -1
  36. data/ext/beeps/sound_player.cpp +1 -1
  37. data/ext/beeps/time_stretch.cpp +1 -1
  38. data/include/beeps/defs.h +7 -0
  39. data/include/beeps/filter.h +4 -4
  40. data/include/beeps/generator.h +31 -0
  41. data/include/beeps/ruby/beeps.h +1 -1
  42. data/include/beeps/ruby/exception.h +2 -2
  43. data/include/beeps/ruby/filter.h +16 -10
  44. data/include/beeps/ruby/generator.h +18 -5
  45. data/include/beeps/ruby/processor.h +2 -2
  46. data/include/beeps/ruby/sound.h +4 -4
  47. data/lib/beeps/extension.rb +4 -0
  48. data/lib/beeps/processor.rb +2 -2
  49. data/src/beeps.cpp +3 -1
  50. data/src/beeps.h +22 -0
  51. data/src/{adsr.cpp → envelope.cpp} +21 -20
  52. data/src/openal.cpp +3 -1
  53. data/src/oscillator.cpp +75 -44
  54. data/src/osx/beeps.mm +19 -0
  55. data/src/processor.cpp +59 -49
  56. data/src/processor.h +30 -14
  57. data/src/sequencer.cpp +160 -0
  58. data/src/signals.cpp +45 -29
  59. data/src/signals.h +4 -4
  60. data/src/sound.cpp +32 -29
  61. data/src/win32/beeps.cpp +36 -0
  62. data/src/win32/exception.cpp +40 -0
  63. data/src/win32/exception.h +40 -0
  64. data/src/win32/signals.cpp +186 -0
  65. metadata +21 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb86426316eb60913fcb725b8ee212785e3fde7f75bfb58a682e7a4a8468c20d
4
- data.tar.gz: 91ed66b1ac199397817a1129432818f809b59e10b1bbf4a3e24ebd1fb2706ff3
3
+ metadata.gz: c83b46a4b2d1c3e24bcf22711ef53a8776651c7a4f7d90d069b96c9cc5e62064
4
+ data.tar.gz: 162ddb6915de1cbae2c11af0a92dcf14e6c9e35968b4fb6374868a42a11a7eef
5
5
  SHA512:
6
- metadata.gz: e33ed0d5cd549533810d6ed7525f66a9bf0504d4e65c6ee2f90da399d437ecc6016d0844d6d85c049bb4d7cf20ddb06c7d38a3ab2e49fd7668de8e225fe89e6e
7
- data.tar.gz: 805747561bbb762333b571f3b5694cd10fec190085df0bfd81fd2295406f77c8e5fe50eda51a2fd3378014f93c276d1fc37a5a70d0c179a719bd4c2552dd13bd
6
+ metadata.gz: 56d4eea3b0323dae779d4ec28c8b6a779b15b9fe3377178acca350ebc82e605f4be39e5969b008527fb1c14e7071ebeb08d6f1204b12c79282faa509cecc187a
7
+ data.tar.gz: cdd5ebec38e614f2cbb015c21f2899dcf5ee2e1bbdb9e83bd69681d83c7cc022a5a6002ac2044c86cb0d93a3874644787848c42120e97651cdd1343fc09e888c
@@ -6,7 +6,7 @@
6
6
  #include "defs.h"
7
7
 
8
8
 
9
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Analyser)
9
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Analyser)
10
10
 
11
11
  #define THIS to<Beeps::Analyser*>(self)
12
12
 
@@ -5,17 +5,17 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::ADSR)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Envelope)
9
9
 
10
- #define THIS to<Beeps::ADSR*>(self)
10
+ #define THIS to<Beeps::Envelope*>(self)
11
11
 
12
- #define CHECK RUCY_CHECK_OBJ(Beeps::ADSR, self)
12
+ #define CHECK RUCY_CHECK_OBJ(Beeps::Envelope, self)
13
13
 
14
14
 
15
15
  static
16
16
  VALUE alloc(VALUE klass)
17
17
  {
18
- return value(new Beeps::RubyProcessor<Beeps::ADSR>, klass);
18
+ return value(new Beeps::RubyProcessor<Beeps::Envelope>, klass);
19
19
  }
20
20
 
21
21
  static
@@ -103,25 +103,25 @@ VALUE get_release_time(VALUE self)
103
103
  }
104
104
 
105
105
 
106
- static Class cADSR;
106
+ static Class cEnvelope;
107
107
 
108
108
  void
109
- Init_beeps_adsr ()
109
+ Init_beeps_envelope ()
110
110
  {
111
111
  Module mBeeps = rb_define_module("Beeps");
112
112
 
113
- cADSR = mBeeps.define_class("ADSR", Beeps::processor_class());
114
- rb_define_alloc_func(cADSR, alloc);
115
- cADSR.define_private_method("note_on!", note_on);
116
- cADSR.define_private_method("note_off!", note_off);
117
- rb_define_method(cADSR, "attack_time=", RUBY_METHOD_FUNC(set_attack_time), 1);
118
- rb_define_method(cADSR, "attack_time", RUBY_METHOD_FUNC(get_attack_time), 0);
119
- rb_define_method(cADSR, "decay_time=", RUBY_METHOD_FUNC(set_decay_time), 1);
120
- rb_define_method(cADSR, "decay_time", RUBY_METHOD_FUNC(get_decay_time), 0);
121
- rb_define_method(cADSR, "sustain_level=", RUBY_METHOD_FUNC(set_sustain_level), 1);
122
- rb_define_method(cADSR, "sustain_level", RUBY_METHOD_FUNC(get_sustain_level), 0);
123
- rb_define_method(cADSR, "release_time=", RUBY_METHOD_FUNC(set_release_time), 1);
124
- rb_define_method(cADSR, "release_time", RUBY_METHOD_FUNC(get_release_time), 0);
113
+ cEnvelope = mBeeps.define_class("Envelope", Beeps::processor_class());
114
+ rb_define_alloc_func(cEnvelope, alloc);
115
+ cEnvelope.define_private_method("note_on!", note_on);
116
+ cEnvelope.define_private_method("note_off!", note_off);
117
+ rb_define_method(cEnvelope, "attack_time=", RUBY_METHOD_FUNC(set_attack_time), 1);
118
+ rb_define_method(cEnvelope, "attack_time", RUBY_METHOD_FUNC(get_attack_time), 0);
119
+ rb_define_method(cEnvelope, "decay_time=", RUBY_METHOD_FUNC(set_decay_time), 1);
120
+ rb_define_method(cEnvelope, "decay_time", RUBY_METHOD_FUNC(get_decay_time), 0);
121
+ rb_define_method(cEnvelope, "sustain_level=", RUBY_METHOD_FUNC(set_sustain_level), 1);
122
+ rb_define_method(cEnvelope, "sustain_level", RUBY_METHOD_FUNC(get_sustain_level), 0);
123
+ rb_define_method(cEnvelope, "release_time=", RUBY_METHOD_FUNC(set_release_time), 1);
124
+ rb_define_method(cEnvelope, "release_time", RUBY_METHOD_FUNC(get_release_time), 0);
125
125
  }
126
126
 
127
127
 
@@ -130,9 +130,9 @@ namespace Beeps
130
130
 
131
131
 
132
132
  Class
133
- adsr_class ()
133
+ envelope_class ()
134
134
  {
135
- return cADSR;
135
+ return cEnvelope;
136
136
  }
137
137
 
138
138
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::FileIn)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::FileIn)
9
9
 
10
10
  #define THIS to<Beeps::FileIn*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Gain)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Gain)
9
9
 
10
10
  #define THIS to<Beeps::Gain*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::MicIn)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::MicIn)
9
9
 
10
10
  #define THIS to<Beeps::MicIn*>(self)
11
11
 
@@ -9,11 +9,12 @@ void Init_beeps_sound_player ();
9
9
  void Init_beeps_processor ();
10
10
 
11
11
  void Init_beeps_oscillator ();
12
+ void Init_beeps_sequencer ();
12
13
  void Init_beeps_file_in ();
13
14
  void Init_beeps_mic_in ();
14
15
 
15
16
  void Init_beeps_gain ();
16
- void Init_beeps_adsr ();
17
+ void Init_beeps_envelope ();
17
18
  void Init_beeps_time_stretch ();
18
19
  void Init_beeps_pitch_shift ();
19
20
  void Init_beeps_analyser ();
@@ -38,11 +39,12 @@ extern "C" void
38
39
  Init_beeps_processor();
39
40
 
40
41
  Init_beeps_oscillator();
42
+ Init_beeps_sequencer();
41
43
  Init_beeps_file_in();
42
44
  Init_beeps_mic_in();
43
45
 
44
46
  Init_beeps_gain();
45
- Init_beeps_adsr();
47
+ Init_beeps_envelope();
46
48
  Init_beeps_time_stretch();
47
49
  Init_beeps_pitch_shift();
48
50
  Init_beeps_analyser();
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Oscillator)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Oscillator)
9
9
 
10
10
  #define THIS to<Beeps::Oscillator*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::PitchShift)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::PitchShift)
9
9
 
10
10
  #define THIS to<Beeps::PitchShift*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Processor)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Processor)
9
9
 
10
10
  #define THIS to<Beeps::Processor*>(self)
11
11
 
@@ -0,0 +1,87 @@
1
+ #include "beeps/ruby/generator.h"
2
+
3
+
4
+ #include "beeps/ruby/processor.h"
5
+ #include "defs.h"
6
+
7
+
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Sequencer)
9
+
10
+ #define THIS to<Beeps::Sequencer*>(self)
11
+
12
+ #define CHECK RUCY_CHECK_OBJ(Beeps::Sequencer, self)
13
+
14
+
15
+ static
16
+ VALUE alloc(VALUE klass)
17
+ {
18
+ return value(new Beeps::RubyProcessor<Beeps::Sequencer>, klass);
19
+ }
20
+
21
+ static
22
+ VALUE add(VALUE self, VALUE processor, VALUE offset, VALUE duration)
23
+ {
24
+ CHECK;
25
+
26
+ THIS->add(
27
+ to<Beeps::Processor*>(processor),
28
+ to<float>(offset),
29
+ to<float>(duration));
30
+ }
31
+
32
+ static
33
+ VALUE remove(VALUE self, VALUE processor, VALUE offset)
34
+ {
35
+ CHECK;
36
+
37
+ THIS->remove(
38
+ to<Beeps::Processor*>(processor),
39
+ to<float>(offset));
40
+ }
41
+
42
+ static
43
+ VALUE set_time_scale(VALUE self, VALUE time_scale)
44
+ {
45
+ CHECK;
46
+
47
+ THIS->set_time_scale(to<float>(time_scale));
48
+ return time_scale;
49
+ }
50
+
51
+ static
52
+ VALUE get_time_scale(VALUE self)
53
+ {
54
+ CHECK;
55
+
56
+ return value(THIS->time_scale());
57
+ }
58
+
59
+
60
+ static Class cSequencer;
61
+
62
+ void
63
+ Init_beeps_sequencer ()
64
+ {
65
+ Module mBeeps = rb_define_module("Beeps");
66
+
67
+ cSequencer = mBeeps.define_class("Sequencer", Beeps::processor_class());
68
+ rb_define_alloc_func(cSequencer, alloc);
69
+ rb_define_method(cSequencer, "add", RUBY_METHOD_FUNC(add), 3);
70
+ rb_define_method(cSequencer, "remove", RUBY_METHOD_FUNC(remove), 2);
71
+ //rb_define_method(cSequencer, "time_scale=", RUBY_METHOD_FUNC(set_time_scale), 1);
72
+ //rb_define_method(cSequencer, "time_scale", RUBY_METHOD_FUNC(get_time_scale), 0);
73
+ }
74
+
75
+
76
+ namespace Beeps
77
+ {
78
+
79
+
80
+ Class
81
+ sequencer_class ()
82
+ {
83
+ return cSequencer;
84
+ }
85
+
86
+
87
+ }// Beeps
@@ -4,7 +4,7 @@
4
4
  #include "defs.h"
5
5
 
6
6
 
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::Sound)
7
+ RUCY_DEFINE_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Sound)
8
8
 
9
9
  #define THIS to<Beeps::Sound*>(self)
10
10
 
@@ -4,7 +4,7 @@
4
4
  #include "defs.h"
5
5
 
6
6
 
7
- RUCY_DEFINE_VALUE_FROM_TO(Beeps::SoundPlayer)
7
+ RUCY_DEFINE_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::SoundPlayer)
8
8
 
9
9
  #define THIS to<Beeps::SoundPlayer*>(self)
10
10
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::TimeStretch)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::TimeStretch)
9
9
 
10
10
  #define THIS to<Beeps::TimeStretch*>(self)
11
11
 
@@ -24,7 +24,7 @@ jobs:
24
24
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
25
25
 
26
26
  - name: test
27
- run: bundle exec rake quiet test
27
+ run: bundle exec rake quiet packages test
28
28
 
29
29
  - name: create gem
30
30
  id: gem
@@ -24,6 +24,9 @@ jobs:
24
24
  - name: setup dependencies
25
25
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
26
26
 
27
+ - name: packages
28
+ run: bundle exec rake packages
29
+
27
30
  - name: lib
28
31
  run: bundle exec rake lib
29
32
 
data/ChangeLog.md CHANGED
@@ -1,6 +1,19 @@
1
1
  # beeps ChangeLog
2
2
 
3
3
 
4
+ ## [v0.3.1] - 2025-01-13
5
+
6
+ - Add Sequencer class
7
+ - Add 'triangle' type to Oscillator
8
+ - Add LICENSE file
9
+ - Rename: ADSR -> Envelope
10
+
11
+
12
+ ## [v0.3] - 2024-07-06
13
+
14
+ - Support Windows
15
+
16
+
4
17
  ## [v0.2.1] - 2024-07-05
5
18
 
6
19
  - Do not delete OpenAL objects after calling OpenAL_fin()
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GEM
9
9
 
10
10
  PLATFORMS
11
11
  arm64-darwin-21
12
- arm64-darwin-22
12
+ arm64-darwin-23
13
13
 
14
14
  DEPENDENCIES
15
15
  rake
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2015 xord.org
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  # -*- mode: ruby -*-
2
2
 
3
-
4
3
  %w[../xot ../rucy .]
5
4
  .map {|s| File.expand_path "#{s}/lib", __dir__}
6
5
  .each {|s| $:.unshift s if !$:.include?(s) && File.directory?(s)}
@@ -15,6 +14,8 @@ require 'beeps/extension'
15
14
  EXTENSIONS = [Xot, Rucy, Beeps]
16
15
  TESTS_ALONE = ['test/test_beeps_init.rb']
17
16
 
17
+ install_packages win32: %w[MINGW_PACKAGE_PREFIX-openal]
18
+
18
19
  use_external_library 'https://github.com/thestk/stk',
19
20
  tag: '4.6.2',
20
21
  incdirs: 'include',
@@ -47,6 +48,6 @@ default_tasks :ext
47
48
  use_bundler
48
49
  build_native_library
49
50
  build_ruby_extension
50
- test_ruby_extension
51
+ test_ruby_extension unless github_actions? && win32?
51
52
  generate_documents
52
53
  build_ruby_gem
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.1
data/beeps.gemspec CHANGED
@@ -25,8 +25,8 @@ Gem::Specification.new do |s|
25
25
  s.platform = Gem::Platform::RUBY
26
26
  s.required_ruby_version = '>= 3.0.0'
27
27
 
28
- s.add_runtime_dependency 'xot', '~> 0.2.1'
29
- s.add_runtime_dependency 'rucy', '~> 0.2.1'
28
+ s.add_runtime_dependency 'xot', '~> 0.3.1'
29
+ s.add_runtime_dependency 'rucy', '~> 0.3.1'
30
30
 
31
31
  s.files = `git ls-files`.split $/
32
32
  s.executables = s.files.grep(%r{^bin/}) {|f| File.basename f}
@@ -6,7 +6,7 @@
6
6
  #include "defs.h"
7
7
 
8
8
 
9
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Analyser)
9
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Analyser)
10
10
 
11
11
  #define THIS to<Beeps::Analyser*>(self)
12
12
 
data/ext/beeps/defs.h CHANGED
@@ -9,6 +9,8 @@
9
9
  #include "beeps/ruby/defs.h"
10
10
 
11
11
 
12
+ using namespace Xot::Types;
13
+
12
14
  using namespace Rucy;
13
15
 
14
16
 
@@ -5,17 +5,17 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::ADSR)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Envelope)
9
9
 
10
- #define THIS to<Beeps::ADSR*>(self)
10
+ #define THIS to<Beeps::Envelope*>(self)
11
11
 
12
- #define CHECK RUCY_CHECK_OBJ(Beeps::ADSR, self)
12
+ #define CHECK RUCY_CHECK_OBJ(Beeps::Envelope, self)
13
13
 
14
14
 
15
15
  static
16
16
  RUCY_DEF_ALLOC(alloc, klass)
17
17
  {
18
- return value(new Beeps::RubyProcessor<Beeps::ADSR>, klass);
18
+ return value(new Beeps::RubyProcessor<Beeps::Envelope>, klass);
19
19
  }
20
20
  RUCY_END
21
21
 
@@ -114,25 +114,25 @@ RUCY_DEF0(get_release_time)
114
114
  RUCY_END
115
115
 
116
116
 
117
- static Class cADSR;
117
+ static Class cEnvelope;
118
118
 
119
119
  void
120
- Init_beeps_adsr ()
120
+ Init_beeps_envelope ()
121
121
  {
122
122
  Module mBeeps = define_module("Beeps");
123
123
 
124
- cADSR = mBeeps.define_class("ADSR", Beeps::processor_class());
125
- cADSR.define_alloc_func(alloc);
126
- cADSR.define_private_method("note_on!", note_on);
127
- cADSR.define_private_method("note_off!", note_off);
128
- cADSR.define_method( "attack_time=", set_attack_time);
129
- cADSR.define_method( "attack_time", get_attack_time);
130
- cADSR.define_method( "decay_time=", set_decay_time);
131
- cADSR.define_method( "decay_time", get_decay_time);
132
- cADSR.define_method("sustain_level=", set_sustain_level);
133
- cADSR.define_method("sustain_level", get_sustain_level);
134
- cADSR.define_method("release_time=", set_release_time);
135
- cADSR.define_method("release_time", get_release_time);
124
+ cEnvelope = mBeeps.define_class("Envelope", Beeps::processor_class());
125
+ cEnvelope.define_alloc_func(alloc);
126
+ cEnvelope.define_private_method("note_on!", note_on);
127
+ cEnvelope.define_private_method("note_off!", note_off);
128
+ cEnvelope.define_method( "attack_time=", set_attack_time);
129
+ cEnvelope.define_method( "attack_time", get_attack_time);
130
+ cEnvelope.define_method( "decay_time=", set_decay_time);
131
+ cEnvelope.define_method( "decay_time", get_decay_time);
132
+ cEnvelope.define_method("sustain_level=", set_sustain_level);
133
+ cEnvelope.define_method("sustain_level", get_sustain_level);
134
+ cEnvelope.define_method("release_time=", set_release_time);
135
+ cEnvelope.define_method("release_time", get_release_time);
136
136
  }
137
137
 
138
138
 
@@ -141,9 +141,9 @@ namespace Beeps
141
141
 
142
142
 
143
143
  Class
144
- adsr_class ()
144
+ envelope_class ()
145
145
  {
146
- return cADSR;
146
+ return cEnvelope;
147
147
  }
148
148
 
149
149
 
data/ext/beeps/extconf.rb CHANGED
@@ -11,9 +11,17 @@ require 'beeps/extension'
11
11
 
12
12
  Xot::ExtConf.new Xot, Rucy, Beeps do
13
13
  setup do
14
- headers << 'ruby.h' << 'OpenAL/al.h' << 'OpenAL/alc.h'
15
- frameworks << 'OpenAL' << 'AVFoundation' if osx?
16
- $LDFLAGS << ' -Wl,--out-implib=native.dll.a' if cygwin?
14
+ headers << 'ruby.h'
15
+
16
+ if win32?
17
+ headers << 'AL/al.h' << 'AL/alc.h'
18
+ libs << 'openal' << 'ole32' << 'mf' << 'mfplat' << 'mfreadwrite' << 'mfuuid'
19
+ elsif osx?
20
+ headers << 'OpenAL/al.h' << 'OpenAL/alc.h'
21
+ frameworks << 'OpenAL' << 'AVFoundation'
22
+ end
23
+
24
+ $LDFLAGS << ' -Wl,--out-implib=native.dll.a' if mingw? || cygwin?
17
25
  end
18
26
 
19
27
  create_makefile 'beeps/native'
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::FileIn)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::FileIn)
9
9
 
10
10
  #define THIS to<Beeps::FileIn*>(self)
11
11
 
data/ext/beeps/gain.cpp CHANGED
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Gain)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Gain)
9
9
 
10
10
  #define THIS to<Beeps::Gain*>(self)
11
11
 
data/ext/beeps/mic_in.cpp CHANGED
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::MicIn)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::MicIn)
9
9
 
10
10
  #define THIS to<Beeps::MicIn*>(self)
11
11
 
data/ext/beeps/native.cpp CHANGED
@@ -9,11 +9,12 @@ void Init_beeps_sound_player ();
9
9
  void Init_beeps_processor ();
10
10
 
11
11
  void Init_beeps_oscillator ();
12
+ void Init_beeps_sequencer ();
12
13
  void Init_beeps_file_in ();
13
14
  void Init_beeps_mic_in ();
14
15
 
15
16
  void Init_beeps_gain ();
16
- void Init_beeps_adsr ();
17
+ void Init_beeps_envelope ();
17
18
  void Init_beeps_time_stretch ();
18
19
  void Init_beeps_pitch_shift ();
19
20
  void Init_beeps_analyser ();
@@ -38,11 +39,12 @@ extern "C" void
38
39
  Init_beeps_processor();
39
40
 
40
41
  Init_beeps_oscillator();
42
+ Init_beeps_sequencer();
41
43
  Init_beeps_file_in();
42
44
  Init_beeps_mic_in();
43
45
 
44
46
  Init_beeps_gain();
45
- Init_beeps_adsr();
47
+ Init_beeps_envelope();
46
48
  Init_beeps_time_stretch();
47
49
  Init_beeps_pitch_shift();
48
50
  Init_beeps_analyser();
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Oscillator)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Oscillator)
9
9
 
10
10
  #define THIS to<Beeps::Oscillator*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::PitchShift)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::PitchShift)
9
9
 
10
10
  #define THIS to<Beeps::PitchShift*>(self)
11
11
 
@@ -5,7 +5,7 @@
5
5
  #include "defs.h"
6
6
 
7
7
 
8
- RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(Beeps::Processor)
8
+ RUCY_DEFINE_WRAPPER_VALUE_FROM_TO(BEEPS_EXPORT, Beeps::Processor)
9
9
 
10
10
  #define THIS to<Beeps::Processor*>(self)
11
11