Compare commits

..

3 Commits
0.1 ... master

Author SHA1 Message Date
saile2204
b03ca29155 Merge remote-tracking branch 'origin/master' 2021-05-31 10:56:56 +02:00
saile2204
adc16da2b5 Changes 2021-05-31 10:56:49 +02:00
Elias Stepanik
25a2a23aa9
Create README.md 2021-05-30 20:05:28 +02:00
3 changed files with 160 additions and 10 deletions

74
README.md Normal file
View 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/)

View File

@ -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
} }

View File

@ -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) +