voicemeeter-rb/lib/voicemeeter/mixins.rb

75 lines
1.6 KiB
Ruby
Raw Normal View History

module Voicemeeter
module Mixins
2023-07-09 19:43:26 +01:00
module Fades
def fadeto(target, time)
2023-07-14 12:01:41 +01:00
setter("FadeTo", "(#{target}, #{time})")
2023-07-09 19:43:26 +01:00
sleep(@remote.delay)
end
2023-07-09 19:43:26 +01:00
def fadeby(change, time)
2023-07-14 12:01:41 +01:00
setter("FadeBy", "(#{change}, #{time})")
2023-07-09 19:43:26 +01:00
sleep(@remote.delay)
end
2023-07-09 19:43:26 +01:00
end
2023-07-09 19:43:26 +01:00
module Return
extend MetaFunctions
attr_accessor_float :returnreverb, :returndelay, :returnfx1, :returnfx2
2023-07-09 19:43:26 +01:00
end
2023-07-09 19:43:26 +01:00
module Apps
def appgain(name, gain)
2023-07-14 12:01:41 +01:00
setter("AppGain", "(\"#{name}\", #{gain})")
end
2023-07-09 19:43:26 +01:00
def appmute(name, mute)
2023-07-14 12:01:41 +01:00
setter("AppMute", "(\"#{name}\", #{mute ? 1 : 0})")
2023-07-09 19:43:26 +01:00
end
end
2023-07-09 19:43:26 +01:00
module Outputs
def make_attr_outputs(num_a, num_b)
(1..(num_a + num_b)).each do |i|
param = (i <= num_a) ? :"A#{i}" : :"B#{i - num_a}"
define_singleton_method(param) do
getter(param).to_i == 1
end
define_singleton_method("#{param}=") do |value|
setter(param, value && 1 || 0)
end
end
2023-07-09 19:43:26 +01:00
end
end
2023-07-09 19:43:26 +01:00
module Xy
module Pan
extend MetaFunctions
attr_accessor_float :pan_x, :pan_y
end
2023-07-09 19:43:26 +01:00
module Color
extend MetaFunctions
attr_accessor_float :color_x, :color_y
end
2023-07-09 19:43:26 +01:00
module Fx
extend MetaFunctions
attr_accessor_float :fx_x, :fx_y
end
end
2023-07-09 19:43:26 +01:00
module Fx
extend MetaFunctions
attr_accessor_float :reverb, :delay, :fx1, :fx2
attr_accessor_bool :postreverb, :postdelay, :postfx1, :postfx2
2023-07-09 19:43:26 +01:00
end
module LevelEnum
PREFADER = 0
POSTFADER = 1
POSTMUTE = 2
BUS = 3
end
end
end