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
|
||||
{
|
||||
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
|
||||
}
|
||||
|
||||
@ -15,10 +15,18 @@ import java.util.Scanner;
|
||||
public class Main {
|
||||
|
||||
private Thread loop;
|
||||
|
||||
private static EasyBase config;
|
||||
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("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");
|
||||
SerialPort comPort = null;
|
||||
@ -69,14 +77,74 @@ public class Main {
|
||||
sliderValuesIntVoicemeeter.add(map(value, 0, 1023, 12f, -60f));
|
||||
}
|
||||
|
||||
Voicemeeter.setParameterFloat("Bus[0].Gain", sliderValuesIntVoicemeeter.get(0)); //Speaker
|
||||
Voicemeeter.setParameterFloat("Bus[1].Gain", sliderValuesIntVoicemeeter.get(1)); //Headphones
|
||||
Voicemeeter.setParameterFloat("Strip[1].Gain", sliderValuesIntVoicemeeter.get(2)); //Spotify
|
||||
Voicemeeter.setParameterFloat("Strip[2].Gain", sliderValuesIntVoicemeeter.get(3)); //Browser
|
||||
Voicemeeter.setParameterFloat("Strip[3].Gain", sliderValuesIntVoicemeeter.get(4)); //Game
|
||||
Voicemeeter.setParameterFloat("Strip[5].Gain", sliderValuesIntVoicemeeter.get(5)); //VAIO
|
||||
Voicemeeter.setParameterFloat("Strip[6].Gain", sliderValuesIntVoicemeeter.get(6)); //AUX
|
||||
Voicemeeter.setParameterFloat("Strip[0].Gain", sliderValuesIntVoicemeeter.get(7)); //Mic
|
||||
if(map(sliderValuesIntRaw.get(0), 0, 1023, -30f, 12f) <= -30){
|
||||
Voicemeeter.setParameterStringA("Bus[0].Mute", "true");
|
||||
}
|
||||
else{
|
||||
Voicemeeter.setParameterStringA("Bus[0].Mute", "");
|
||||
Voicemeeter.setParameterFloat((String) config.getData("S1"), map(sliderValuesIntRaw.get(0), 0, 1023, -30f, 12f));//Speaker
|
||||
}
|
||||
|
||||
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) +
|
||||
" # " + "Headphones: " + sliderValuesIntVoicemeeter.get(1) +
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user