voicemeeter_api_ruby 4.1.5 → 4.3.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -1
- data/README.md +24 -5
- data/lib/voicemeeter/base.rb +223 -0
- data/lib/voicemeeter/bus.rb +99 -0
- data/lib/voicemeeter/button.rb +25 -0
- data/lib/voicemeeter/cbindings.rb +126 -0
- data/lib/voicemeeter/command.rb +38 -0
- data/lib/voicemeeter/configs.rb +83 -0
- data/lib/voicemeeter/device.rb +26 -0
- data/lib/voicemeeter/errors.rb +43 -0
- data/lib/voicemeeter/inst.rb +27 -0
- data/lib/voicemeeter/iremote.rb +34 -0
- data/lib/voicemeeter/kinds.rb +79 -0
- data/lib/voicemeeter/meta.rb +251 -0
- data/lib/voicemeeter/mixin.rb +74 -0
- data/lib/voicemeeter/recorder.rb +20 -0
- data/lib/voicemeeter/runvm.rb +31 -0
- data/lib/voicemeeter/strip.rb +124 -0
- data/lib/voicemeeter/vban.rb +80 -0
- data/lib/voicemeeter/version.rb +25 -0
- data/lib/voicemeeter.rb +8 -8
- metadata +20 -19
- data/lib/base.rb +0 -220
- data/lib/bus.rb +0 -105
- data/lib/button.rb +0 -23
- data/lib/cbindings.rb +0 -125
- data/lib/command.rb +0 -36
- data/lib/configs.rb +0 -80
- data/lib/device.rb +0 -24
- data/lib/errors.rb +0 -41
- data/lib/inst.rb +0 -27
- data/lib/iremote.rb +0 -32
- data/lib/kinds.rb +0 -77
- data/lib/meta.rb +0 -275
- data/lib/recorder.rb +0 -20
- data/lib/runvm.rb +0 -29
- data/lib/strip.rb +0 -135
- data/lib/vban.rb +0 -78
- data/lib/version.rb +0 -3
data/lib/strip.rb
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
require_relative "iremote"
|
2
|
-
|
3
|
-
class Strip < IRemote
|
4
|
-
"
|
5
|
-
Concrete Strip class
|
6
|
-
"
|
7
|
-
include Channel_Meta_Functions
|
8
|
-
|
9
|
-
attr_accessor :gainlayer, :levels
|
10
|
-
|
11
|
-
def self.make(remote, layout_strip)
|
12
|
-
"
|
13
|
-
Factory function for Strip classes.
|
14
|
-
"
|
15
|
-
p_in, v_in = layout_strip.values
|
16
|
-
(0...(p_in + v_in)).map do |i|
|
17
|
-
i < p_in ? PhysicalStrip.new(remote, i) : VirtualStrip.new(remote, i)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def initialize(remote, i)
|
22
|
-
super
|
23
|
-
self.make_accessor_bool :solo, :mute, :mono
|
24
|
-
self.make_accessor_float :gain
|
25
|
-
self.make_accessor_int :limit
|
26
|
-
self.make_accessor_string :label
|
27
|
-
|
28
|
-
num_A, num_B = remote.kind.layout[:bus].values
|
29
|
-
self.make_accessor_bool *make_channel_props(num_A, num_B)
|
30
|
-
|
31
|
-
@gainlayer = (0...8).map { |j| GainLayer.new(remote, i, j) }
|
32
|
-
@levels = StripLevels.new(remote, i)
|
33
|
-
end
|
34
|
-
|
35
|
-
def identifier
|
36
|
-
"strip[#{@index}]"
|
37
|
-
end
|
38
|
-
|
39
|
-
def fadeto(target, time)
|
40
|
-
self.setter("FadeTo", "(#{target}, #{time})")
|
41
|
-
sleep(@remote.delay)
|
42
|
-
end
|
43
|
-
|
44
|
-
def fadeby(change, time)
|
45
|
-
self.setter("FadeBy", "(#{change}, #{time})")
|
46
|
-
sleep(@remote.delay)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
class PhysicalStrip < Strip
|
51
|
-
def initialize(remote, i)
|
52
|
-
super
|
53
|
-
self.make_accessor_float :comp, :gate, :audibility
|
54
|
-
self.make_reader_only :device, :sr
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
class VirtualStrip < Strip
|
59
|
-
def initialize(remote, i)
|
60
|
-
super
|
61
|
-
self.make_accessor_bool :mc
|
62
|
-
self.make_accessor_int :k
|
63
|
-
self.make_accessor_float :bass, :mid, :treble
|
64
|
-
end
|
65
|
-
|
66
|
-
def appgain(name, gain)
|
67
|
-
self.setter("AppGain", "(\"#{name}\", #{gain})")
|
68
|
-
end
|
69
|
-
|
70
|
-
def appmute(name, mute)
|
71
|
-
self.setter("AppMute", "(\"#{name}\", #{mute ? 1 : 0})")
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
class GainLayer < IRemote
|
76
|
-
def initialize(remote, i, j)
|
77
|
-
super(remote, i)
|
78
|
-
@j = j
|
79
|
-
end
|
80
|
-
|
81
|
-
def identifier
|
82
|
-
"strip[#{@index}]"
|
83
|
-
end
|
84
|
-
|
85
|
-
def gain
|
86
|
-
self.getter("gainlayer[#{@j}]")
|
87
|
-
end
|
88
|
-
|
89
|
-
def gain=(value)
|
90
|
-
self.setter("gainlayer[#{@j}]", value)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
class StripLevels < IRemote
|
95
|
-
def initialize(remote, i)
|
96
|
-
super
|
97
|
-
if i < @remote.p_in
|
98
|
-
@init = i * 2
|
99
|
-
@offset = 2
|
100
|
-
else
|
101
|
-
@init = (@remote.p_in * 2) + ((i - @remote.p_in) * 8)
|
102
|
-
@offset = 8
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
def identifier
|
107
|
-
"strip[#{@index}]"
|
108
|
-
end
|
109
|
-
|
110
|
-
def get_level(mode)
|
111
|
-
if @remote.running
|
112
|
-
vals = @remote.cache["strip_level"][@init, @offset]
|
113
|
-
else
|
114
|
-
vals = (@init...@offset).map { |i| get_level(mode, i) }
|
115
|
-
end
|
116
|
-
vals.map { |x| x > 0 ? (20 * Math.log(x, 10)).round(1) : -200.0 }
|
117
|
-
end
|
118
|
-
|
119
|
-
def prefader
|
120
|
-
@remote.strip_mode = 0
|
121
|
-
get_level(0)
|
122
|
-
end
|
123
|
-
|
124
|
-
def postfader
|
125
|
-
@remote.strip_mode = 1
|
126
|
-
get_level(1)
|
127
|
-
end
|
128
|
-
|
129
|
-
def postmute
|
130
|
-
@remote.strip_mode = 2
|
131
|
-
get_level(2)
|
132
|
-
end
|
133
|
-
|
134
|
-
def isdirty? = @remote._strip_comp[@init, @offset].any?
|
135
|
-
end
|
data/lib/vban.rb
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
require_relative "iremote"
|
2
|
-
require_relative "meta"
|
3
|
-
require_relative "errors"
|
4
|
-
|
5
|
-
class VbanStream < IRemote
|
6
|
-
"
|
7
|
-
A class representing a VBAN stream
|
8
|
-
"
|
9
|
-
include Vban_Meta_Functions
|
10
|
-
|
11
|
-
def initialize(remote, i)
|
12
|
-
super
|
13
|
-
self.make_accessor_bool :on
|
14
|
-
self.make_accessor_string :name, :ip
|
15
|
-
self.make_accessor_int :quality, :route
|
16
|
-
end
|
17
|
-
|
18
|
-
def identifier
|
19
|
-
"vban.#{self.direction}stream[#{@index}]"
|
20
|
-
end
|
21
|
-
|
22
|
-
def direction
|
23
|
-
raise "Called abstract mehod: direction"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class VbanInstream < VbanStream
|
28
|
-
"
|
29
|
-
A subclass representing a VBAN Instream
|
30
|
-
"
|
31
|
-
def initialize(remote, i)
|
32
|
-
super
|
33
|
-
self.make_reader_int :sr, :channel, :bit
|
34
|
-
end
|
35
|
-
|
36
|
-
def direction
|
37
|
-
:in
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
class VbanOutstream < VbanStream
|
42
|
-
"
|
43
|
-
A subclass representing a VBAN Outstream
|
44
|
-
"
|
45
|
-
def initialize(remote, i)
|
46
|
-
super
|
47
|
-
self.make_accessor_int :sr, :channel, :bit
|
48
|
-
end
|
49
|
-
|
50
|
-
def direction
|
51
|
-
:out
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
class Vban
|
56
|
-
attr_accessor :instream, :outstream
|
57
|
-
|
58
|
-
def initialize(remote, vban_streams)
|
59
|
-
"
|
60
|
-
Initializes a Vban class
|
61
|
-
|
62
|
-
Creates an array for each in/out stream
|
63
|
-
"
|
64
|
-
vban_in, vban_out = vban_streams.values
|
65
|
-
self.instream = (0...vban_in).map { |i| VbanInstream.new(remote, i) }
|
66
|
-
self.outstream = (0...vban_out).map { |i| VbanOutstream.new(remote, i) }
|
67
|
-
|
68
|
-
@remote = remote
|
69
|
-
end
|
70
|
-
|
71
|
-
def enable
|
72
|
-
@remote.set_parameter("vban.enable", 1)
|
73
|
-
end
|
74
|
-
|
75
|
-
def disable
|
76
|
-
@remote.set_parameter("vban.enable", 0)
|
77
|
-
end
|
78
|
-
end
|
data/lib/version.rb
DELETED