Skip to content

Commit bdc80aa

Browse files
authored
Merge pull request #1500 from jedgarpark/pi400-knobs
first commit
2 parents 0d50275 + 58ce848 commit bdc80aa

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

Pi400_Knobs/pi400_knobs_osc.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# SPDX-FileCopyrightText: 2021 John Park for Adafruit Industries
2+
# SPDX-License-Identifier: MIT
3+
4+
#!/usr/bin/env python
5+
6+
import time
7+
import board
8+
from adafruit_simplemath import map_range
9+
import adafruit_pcf8591.pcf8591 as PCF
10+
from adafruit_pcf8591.analog_in import AnalogIn
11+
from pythonosc import udp_client
12+
13+
14+
sender = udp_client.SimpleUDPClient("127.0.0.1", 4560)
15+
sender.send_message("/trigger/prophet", [43, 110, 1, 0.7])
16+
17+
i2c = board.I2C()
18+
pcf = PCF.PCF8591(i2c)
19+
20+
pcf_in_0 = AnalogIn(pcf, PCF.A0)
21+
pcf_in_1 = AnalogIn(pcf, PCF.A1)
22+
pcf_in_2 = AnalogIn(pcf, PCF.A2)
23+
pcf_in_3 = AnalogIn(pcf, PCF.A3)
24+
25+
try:
26+
while True:
27+
osc_0_val = int(255 - (pcf_in_0.value / 256)) # convert values to useful ranges
28+
osc_1_val = int(255 - (pcf_in_1.value / 256))
29+
osc_2_val = int(255 - (pcf_in_2.value / 256))
30+
osc_3_val = int(255 - (pcf_in_3.value / 256))
31+
32+
osc_note_val = int(
33+
map_range(osc_0_val, 0, 255, 43, 58)
34+
) # map values to relevant ranges
35+
osc_cutoff_val = int(map_range(osc_1_val, 0, 255, 30, 110))
36+
osc_sustain_val = map_range(osc_2_val, 0, 255, 0.2, 2)
37+
osc_gain_val = map_range(osc_3_val, 0, 255, 0, 1.0)
38+
39+
# print((osc_note_val, osc_cutoff_val, osc_sustain_val, osc_gain_val)) # for plotter
40+
sender.send_message(
41+
"/trigger/prophet",
42+
[osc_note_val, osc_cutoff_val, osc_sustain_val, osc_gain_val],
43+
)
44+
45+
time.sleep(0.001)
46+
47+
except KeyboardInterrupt:
48+
print("done")

0 commit comments

Comments
 (0)