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