diff --git a/main.py b/main.py index 083966f..7735e48 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,21 @@ +# PICOSYNTH +# open source semi-modular synthesizer model +# developer: Mikayla Dobson +# github: github.com/innocuous-symmetry + +""" " " " " " " " " " " " " " " " " " " " " " " +IMPORTS +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ + from machine import Pin, ADC, PWM from random import randint from math import floor, ceil from time import sleep +""" " " " " " " " " " " " " " " " " " " " " " " +CONSTANTS +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ + __SYSTEM_PWM_FREQUENCY__ = 1000 HIGH = 65535 @@ -80,6 +93,9 @@ SYNTH_CONFIG = { } } +""" " " " " " " " " " " " " " " " " " " " " " " +INDEPENDENT FUNCTIONS FOR TESTING, COMMON USE CASES +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ def blink(controller: type[ADC], target=Pin(25, Pin.OUT), sleep_duration = 1000): if not controller: pass @@ -98,7 +114,7 @@ def blink(controller: type[ADC], target=Pin(25, Pin.OUT), sleep_duration = 1000) """ " " " " " " " " " " " " " " " " " " " " " " -" BEGIN CLASS DEFINITIONS FOR BASIC HARDWARE BEHAVIORS +" CLASS DEFINITIONS FOR BASIC HARDWARE BEHAVIORS _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ # for representing and interacting with waveform data @@ -227,9 +243,19 @@ class Synthesizer: def __init__(self, config): self.config = config + +""" " " " " " " " " " " " " " " " " " " " " " " +SYNTHESIZER DEFINITION AND PIN/COMPONENT ASSIGNMENTS +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ + gate_out = PWMOutput(15, 0) voct_out = PWMOutput(16, 0) + +""" " " " " " " " " " " " " " " " " " " " " " " +START +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ """ + while True: random_value = VOCT_PITCH_VALUES[randint(0, len(VOCT_PITCH_VALUES) - 1)] * 65535 print(int(random_value)) diff --git a/patch.py b/patch.py new file mode 100644 index 0000000..7a4a8af --- /dev/null +++ b/patch.py @@ -0,0 +1,38 @@ +class Patch: + def __init__(self, config): + self.config = config + +A_FORMAT_HARDWARE = { + "CV_IN": 4, + "CV_OUT": 4, + "ROTARY_ENCODER": True, + "POTENTIOMETER": 4, + "OLED": 1 +} + +B_FORMAT_HARDWARE = { + "CV_IN": 3, + "CV_OUT": 3, + "ROTARY_ENCODER": False, + "POTENTIOMETER": 3, + "OLED": 0.5 +} + +class AFormatPatch(Patch): + # expects to have hardware: + # 3x CV in + # 3x CV out + # 3x potentiometer + # half of OLED screen + + def __init__(self): + super().__init__(self) + +class BFormatPatch(Patch): + # expects to have hardware: + # 3x CV in + # 3x CV out + # 3x potentiometer + # half of OLED screen + def __init__(self): + super().__init__(self) \ No newline at end of file diff --git a/pymakr.conf b/pymakr.conf deleted file mode 100644 index c001d33..0000000 --- a/pymakr.conf +++ /dev/null @@ -1,10 +0,0 @@ -{ - "py_ignore": [ - ".vscode", - ".gitignore", - ".git", - "env", - "venv" - ], - "name": "picosynth" -} \ No newline at end of file