documentation, cleanup
This commit is contained in:
28
main.py
28
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))
|
||||
|
||||
38
patch.py
Normal file
38
patch.py
Normal file
@@ -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)
|
||||
10
pymakr.conf
10
pymakr.conf
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"py_ignore": [
|
||||
".vscode",
|
||||
".gitignore",
|
||||
".git",
|
||||
"env",
|
||||
"venv"
|
||||
],
|
||||
"name": "picosynth"
|
||||
}
|
||||
Reference in New Issue
Block a user