Example #1
0
        /// <summary>
        ///     Get Voicemeeter Type.
        /// </summary>
        /// <param name="type">The variable receiving the type</param>
        /// <inheritdoc cref="RemoteApiWrapper.GetVoicemeeterType(out int)" path="/returns"/>
        public Int32 GetVoicemeeterType(out VoicemeeterType type)
        {
            var resp = GetVoicemeeterType(out Int32 typeVal);

            type = (VoicemeeterType)typeVal;
            return(resp);
        }
Example #2
0
 /// <summary>
 ///     Run Voicemeeter Application (get installation directory and run Voicemeeter Application).
 /// </summary>
 /// <param name="type">Voicemeeter type</param>
 /// <returns>
 ///     0: Ok.<br/>
 ///     -1: not installed<br/>
 /// </returns>
 public Int32 RunVoicemeeter(VoicemeeterType type)
 {
     return(RunVoicemeeter((int)type));
 }
Example #3
0
        static void RunOptions(Options o)
        {
            Console.WriteLine("OSC will listen on port " + o.ListenPort + " and send to " + o.SendIp + ":" + o.SendPort + "");

            remote.Login();

            var listener = new UDPListener(o.ListenPort);
            var sender   = new UDPSender(o.SendIp, o.SendPort);

            VoicemeeterType vmType = remote.GetVMType();

            Console.WriteLine("Successfully connect to " + vmType + " version: " + remote.GetVMVersion());

            while (true)
            {
                try {
                    OscMessage messageReceived = (OscMessage)listener.Receive();
                    if (messageReceived != null)
                    {
                        // /vm/type/channel/cmd
                        if (messageReceived.Address.StartsWith("/vm/"))
                        {
                            String[] d = messageReceived.Address.Split('/');
                            if (d[2] == "strip" || d[2] == "bus")
                            {
                                switch (d[4])
                                {
                                case "gain":
                                    remote.SetParameterFloat(d[2] + "[" + d[3] + "].Gain", (float)messageReceived.Arguments[0]);
                                    break;

                                case "mute":
                                    remote.SetParameterFloat(d[2] + "[" + d[3] + "].Mute", (float)messageReceived.Arguments[0]);
                                    break;
                                }
                            }
                        }
                        if (o.Verbose)
                        {
                            Console.WriteLine(messageReceived.Address + " = " + messageReceived.Arguments[0].ToString());
                        }
                    }
                }
                catch (Exception e) { Console.WriteLine("Unknown exception occured: " + e.Message); }

                if (vmType.ToString() == VoicemeeterType.VOICEMEETER.ToString())
                {
                }
                if (vmType.ToString() == VoicemeeterType.VOICEMEETER_BANANA.ToString())
                {
                }
                if (vmType.ToString() == VoicemeeterType.VOICEMEETER_POATATO.ToString())
                {
                }

                for (int i = 0; i < (vmType.PhysicalCount + vmType.VirtualCount); i++)
                {
                    remote.IsParametersDirty();
                    sender.Send(new SharpOSC.OscMessage("/vm/bus/" + i.ToString() + "/gain", remote.GetParameterFloat("Bus[" + i.ToString() + "].Gain")));
                    sender.Send(new SharpOSC.OscMessage("/vm/bus/" + i.ToString() + "/mute", remote.GetParameterFloat("Bus[" + i.ToString() + "].Mute")));
                    sender.Send(new SharpOSC.OscMessage("/vm/bus/" + i.ToString() + "/level", 1, remote.GetLevel(VoicemeeterLevelType.OUTPUT, (VoicemeeterChannels)(i * vmType.PhysicalOutputChannelCount))));
                    sender.Send(new SharpOSC.OscMessage("/vm/bus/" + i.ToString() + "/level", 2, remote.GetLevel(VoicemeeterLevelType.OUTPUT, (VoicemeeterChannels)(i * vmType.PhysicalOutputChannelCount + 1))));

                    remote.IsParametersDirty();
                    sender.Send(new SharpOSC.OscMessage("/vm/strip/" + i.ToString() + "/gain", remote.GetParameterFloat("Strip[" + i.ToString() + "].Gain")));
                    sender.Send(new SharpOSC.OscMessage("/vm/strip/" + i.ToString() + "/mute", remote.GetParameterFloat("Strip[" + i.ToString() + "].Mute")));
                    sender.Send(new SharpOSC.OscMessage("/vm/strip/" + i.ToString() + "/label", stringOR(remote.GetParameterStringUNICODE("Strip[" + i.ToString() + "].Label"), "A" + (i + 1).ToString())));
                    sender.Send(new SharpOSC.OscMessage("/vm/strip/" + i.ToString() + "/level", 1, remote.GetLevel(VoicemeeterLevelType.INPUT_POST_MUTE, (VoicemeeterChannels)(i < vmType.PhysicalCount ? (i * vmType.PhysicalInputChannelCount + 0) : (vmType.PhysicalCount * 2 + (i - vmType.PhysicalCount) * vmType.VirtualChannelCount + 0)))));
                    sender.Send(new SharpOSC.OscMessage("/vm/strip/" + i.ToString() + "/level", 2, remote.GetLevel(VoicemeeterLevelType.INPUT_POST_MUTE, (VoicemeeterChannels)(i < vmType.PhysicalCount ? (i * vmType.PhysicalInputChannelCount + 1) : (vmType.PhysicalCount * 2 + (i - vmType.PhysicalCount) * vmType.VirtualChannelCount + 1)))));
                }

                System.Threading.Thread.Sleep(10);
            }
        }