Here my version of the pysical volume mixer made with deej.
More information here: https://github.com/omriharel/deej
I present you my version of the Deej - volume mixer.
Coming to github soon.
For this project this fork was used: https://github.com/Miodec/deej
This fork adds remappable button support.
What is deej?
Have a look here: https://github.com/omriharel/deej
It connects to your PC and let you control your windows sound mixer by input.
Features:
Parts (BOM):
Printing / Settings:
Building pics:
How do the buttons work?
The RGB LED is placed inside of the button, the screw inside of the button can be adjusted. The button should be pressed by the screw. (use the M3x6-8mm here)
Use the “Deej_SpannerLED_5x.stl" between the LED and the top of the button to hold it down and to prevent that the screw touch the contacts.
If some places does not have a button screw in some M3x10 and adjust them so the buttons are pressed against the top of the cover, when closed.
Wiring:
If you do not know how to solder potentiometers have a look here:
https://www.wikihow.com/Wire-a-Potentiometer
I made the mistake that i used the holes for soldering, which destroyed my potentiometers. Use the pins and everything works perfect.
Used Arduino nano pins:
Attachments/Used Tools:
;; Get the handle
getSpotifyHwnd() {
spotifyHwnd := WinGetID("ahk_exe Spotify.exe")
Return spotifyHwnd
}
; Send a key, generic
spotifyKey(key) {
spotifyHwnd := getSpotifyHwnd()
; Chromium ignores keys when it isn't focused.
; Focus the document window without bringing the app to the foreground.
ControlFocus "Chrome_RenderWidgetHostHWND1", "ahk_id " . spotifyHwnd
ControlSend key, , "ahk_id " . spotifyHwnd
Return
}
; My combination, feel free to change to suit your tastes.
F13::{
spotifyKey("{Space}")
Return
}
F14::{
spotifyKey("^{Left}")
Return
}
F15::{
spotifyKey("^{Right}")
Return
}
# process names are case-insensitive
# you can use 'master' to indicate the master channel, or a list of process names to create a group
# you can use 'mic' to control your mic input level (uses the default recording device)
# you can use 'deej.unmapped' to control all apps that aren't bound to any slider (this ignores master, system, mic and device-targeting sessions)
# windows only - you can use 'deej.current' to control the currently active app (whether full-screen or not)
# windows only - you can use a device's full name, i.e. "Speakers (Realtek High Definition Audio)", to bind it. this works for both output and input devices
# windows only - you can use 'system' to control the "system sounds" volume
# important: slider indexes start at 0, regardless of which analog pins you're using!
slider_mapping:
0: master
1: spotify.exe
2: chrome.exe
3: discord.exe
4: deej.unmapped
# supported button list https://github.com/micmonay/keybd_event/blob/master/keybd_windows.go (scroll down)
# be sure to convert hex values to decimal (hex values start with 0x)
# for example: to get F13 (0x7C + 0xFFF)
# 0x7C = 124
# 0xFFF = 4095
# 124 + 4095
# F13 = 4219
button_mapping:
0: 4219
1: 4220
2: 4221
3: 4271
4: 4229
5: 4230
# set this to true if you want the controls inverted (i.e. top is 0%, bottom is 100%)
invert_sliders: false
# settings for connecting to the arduino board
com_port: COM6
baud_rate: 9600
# adjust the amount of signal noise reduction depending on your hardware quality
# supported values are "low" (excellent hardware), "default" (regular hardware) or "high" (bad, noisy hardware)
noise_reduction: low
Feel free to contact me or write an comment here if you have questions regarding data, code or anything else.
Happy making.
The author marked this model as their own original creation.