mirror of
https://github.com/eliasstepanik/VoicemeeterSliderControlJava.git
synced 2026-01-12 06:08:31 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b03ca29155 | ||
|
|
adc16da2b5 | ||
|
|
25a2a23aa9 |
74
README.md
Normal file
74
README.md
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# Slider Volume Controll Voicemeeter
|
||||||
|
|
||||||
|
This project is based on deej and the Voicemeeter API.
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1.Use the Arduino IDE to upload this code to the Arduino.
|
||||||
|
|
||||||
|
```C
|
||||||
|
const int NUM_SLIDERS = 8; //Edit based on the sliders you have.
|
||||||
|
const int analogInputs[NUM_SLIDERS] = {A0, A1, A2, A3, A4, A5, A6, A7}; //Edit based on the sliders you have.
|
||||||
|
|
||||||
|
int analogSliderValues[NUM_SLIDERS];
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
for (int i = 0; i < NUM_SLIDERS; i++) {
|
||||||
|
pinMode(analogInputs[i], INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.begin(9600);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
updateSliderValues();
|
||||||
|
sendSliderValues(); // Actually send data (all the time)
|
||||||
|
// printSliderValues(); // For debug
|
||||||
|
delay(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateSliderValues() {
|
||||||
|
for (int i = 0; i < NUM_SLIDERS; i++) {
|
||||||
|
analogSliderValues[i] = analogRead(analogInputs[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendSliderValues() {
|
||||||
|
String builtString = String("");
|
||||||
|
|
||||||
|
for (int i = 0; i < NUM_SLIDERS; i++) {
|
||||||
|
builtString += String((int)analogSliderValues[i]);
|
||||||
|
|
||||||
|
if (i < NUM_SLIDERS - 1) {
|
||||||
|
builtString += String("|");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.println(builtString);
|
||||||
|
}
|
||||||
|
|
||||||
|
void printSliderValues() {
|
||||||
|
for (int i = 0; i < NUM_SLIDERS; i++) {
|
||||||
|
String printedString = String("Slider #") + String(i + 1) + String(": ") + String(analogSliderValues[i]) + String(" mV");
|
||||||
|
Serial.write(printedString.c_str());
|
||||||
|
|
||||||
|
if (i < NUM_SLIDERS - 1) {
|
||||||
|
Serial.write(" | ");
|
||||||
|
} else {
|
||||||
|
Serial.write("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
2. Download Autohotkey if you want to run the Project hidden.
|
||||||
|
3. Put the release file in the startup folder. (Or other folders)
|
||||||
|
|
||||||
|
|
||||||
|
### Contributing
|
||||||
|
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
|
||||||
|
|
||||||
|
Please make sure to update tests as appropriate.
|
||||||
|
|
||||||
|
## License
|
||||||
|
[MIT](https://choosealicense.com/licenses/mit/)
|
||||||
@ -1,4 +1,12 @@
|
|||||||
config.esb
|
config.esb
|
||||||
{
|
{
|
||||||
|
String S8 = Strip[0].Gain
|
||||||
|
String S7 = Strip[6].Gain
|
||||||
|
String S6 = Strip[5].Gain
|
||||||
|
String S5 = Strip[3].Gain
|
||||||
|
String S4 = Strip[2].Gain
|
||||||
|
String S3 = Strip[1].Gain
|
||||||
|
String S2 = Bus[1].Gain
|
||||||
|
String S1 = Bus[0].Gain
|
||||||
String portName = COM3
|
String portName = COM3
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,10 +15,18 @@ import java.util.Scanner;
|
|||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
private Thread loop;
|
private Thread loop;
|
||||||
|
private static EasyBase config;
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
EasyBase config = new EasyBase("config");
|
config = new EasyBase("config");
|
||||||
config.createData("portName", new String("COM3"));
|
config.createData("portName", new String("COM3"));
|
||||||
|
config.createData("S1", new String("Bus[0].Gain"));
|
||||||
|
config.createData("S2", new String("Bus[1].Gain"));
|
||||||
|
config.createData("S3", new String("Strip[1].Gain"));
|
||||||
|
config.createData("S4", new String("Strip[2].Gain"));
|
||||||
|
config.createData("S5", new String("Strip[3].Gain"));
|
||||||
|
config.createData("S6", new String("Strip[5].Gain"));
|
||||||
|
config.createData("S7", new String("Strip[6].Gain"));
|
||||||
|
config.createData("S8", new String("Strip[0].Gain"));
|
||||||
|
|
||||||
String portName = (String) config.getData("portName");
|
String portName = (String) config.getData("portName");
|
||||||
SerialPort comPort = null;
|
SerialPort comPort = null;
|
||||||
@ -69,14 +77,74 @@ public class Main {
|
|||||||
sliderValuesIntVoicemeeter.add(map(value, 0, 1023, 12f, -60f));
|
sliderValuesIntVoicemeeter.add(map(value, 0, 1023, 12f, -60f));
|
||||||
}
|
}
|
||||||
|
|
||||||
Voicemeeter.setParameterFloat("Bus[0].Gain", sliderValuesIntVoicemeeter.get(0)); //Speaker
|
if(map(sliderValuesIntRaw.get(0), 0, 1023, -30f, 12f) <= -30){
|
||||||
Voicemeeter.setParameterFloat("Bus[1].Gain", sliderValuesIntVoicemeeter.get(1)); //Headphones
|
Voicemeeter.setParameterStringA("Bus[0].Mute", "true");
|
||||||
Voicemeeter.setParameterFloat("Strip[1].Gain", sliderValuesIntVoicemeeter.get(2)); //Spotify
|
}
|
||||||
Voicemeeter.setParameterFloat("Strip[2].Gain", sliderValuesIntVoicemeeter.get(3)); //Browser
|
else{
|
||||||
Voicemeeter.setParameterFloat("Strip[3].Gain", sliderValuesIntVoicemeeter.get(4)); //Game
|
Voicemeeter.setParameterStringA("Bus[0].Mute", "");
|
||||||
Voicemeeter.setParameterFloat("Strip[5].Gain", sliderValuesIntVoicemeeter.get(5)); //VAIO
|
Voicemeeter.setParameterFloat((String) config.getData("S1"), map(sliderValuesIntRaw.get(0), 0, 1023, -30f, 12f));//Speaker
|
||||||
Voicemeeter.setParameterFloat("Strip[6].Gain", sliderValuesIntVoicemeeter.get(6)); //AUX
|
}
|
||||||
Voicemeeter.setParameterFloat("Strip[0].Gain", sliderValuesIntVoicemeeter.get(7)); //Mic
|
|
||||||
|
if(map(sliderValuesIntRaw.get(1), 0, 1023, -30f, 12f) <= -30){
|
||||||
|
Voicemeeter.setParameterStringA("Bus[1].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Bus[1].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S2"), map(sliderValuesIntRaw.get(1), 0, 1023, -30f, 12f));//Headphones
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(map(sliderValuesIntRaw.get(2), 0, 1023, -25f, 12f) <= -25){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[1].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[1].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S3"), map(sliderValuesIntRaw.get(2), 0, 1023, -25f, 12f)); //Spotify
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sliderValuesIntVoicemeeter.get(3) <= -59){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[2].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[2].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S4"), sliderValuesIntVoicemeeter.get(3)); //Browser
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(sliderValuesIntVoicemeeter.get(4) <= -59){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[3].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[3].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S5"), sliderValuesIntVoicemeeter.get(4)); //Game
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sliderValuesIntVoicemeeter.get(5) <= -59){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[5].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[5].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S6"), sliderValuesIntVoicemeeter.get(5)); //VAIO
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sliderValuesIntVoicemeeter.get(6) <= -59){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[6].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[6].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S7"), sliderValuesIntVoicemeeter.get(6)); //AUX
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sliderValuesIntVoicemeeter.get(7) <= -59){
|
||||||
|
Voicemeeter.setParameterStringA("Strip[0].Mute", "true");
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
Voicemeeter.setParameterStringA("Strip[0].Mute", "");
|
||||||
|
Voicemeeter.setParameterFloat((String) config.getData("S8"), sliderValuesIntVoicemeeter.get(7)); //Mic
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Debug.log("Speaker: " + sliderValuesIntVoicemeeter.get(0) +
|
Debug.log("Speaker: " + sliderValuesIntVoicemeeter.get(0) +
|
||||||
" # " + "Headphones: " + sliderValuesIntVoicemeeter.get(1) +
|
" # " + "Headphones: " + sliderValuesIntVoicemeeter.get(1) +
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user