forked from ducklin5/MusicBoard
-
Notifications
You must be signed in to change notification settings - Fork 0
Interactive synth interface and engine in Python: control and manipulate sounds using Arduino inputs. Features customizable oscillators, filters, ADSR envelopes, and LFOs for rich sound synthesis. Ideal for enthusiasts in digital music and sound design.
mjbraun95/MusicBoard
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Name: Azeez Abass ID: 1542780 Name: Matthew Braun ID: 1497171 CMPUT 274 EA1, Fall 2018 Project: ZMat 2000 Included Files: * interface.py * synthEngine.py * serialReader.py * serialWritter.cpp * schematics.jpg * Makefile Interface.py program contains 7 functions and 1 class: >>>> Functions * selectMode * selectGraphMode * editSourceMode * editFilterMode * editLFOMode * editADSRMode * run >>>> Classes * SynthUI synthEngine.py module contains 5 functions and 6 classes: >>>> Functions * plt2Img * midi * Array2PySound * playArray * noise >>>>> Classes * SoundController * Oscillator * Synth * Filter * Envelope * LFO serialReader.py and serialWritter.cpp are helper files to get input from the Arduino -- Program Usgae -- >> Arduino For first time usage, you must configure your Arduino in the configuration shown in the image file: schematics.jpg. Ensure you have all 14 push buttons and resistors, a joystick and a 3 pin potentiometer Then run ``make && make upload`` with the arduino plugged in. Once its completed, the prgram can now be run. The frontend program for our project is the interface.py program. In order to use the interface/synthEngine all required modules must be installed: * pygame * pySerial * numpy * scipy * matplotlib These can be installed using ``sudo pip install pygame pySerial numpy scipy matplotlib`` usage: run ``python3 interface.py`` in the terminal. A GUI will appear showing all the Synths than can be edited. The joy stick on the arduino is used for navigation to move bewteen modes and synths. Use the Joystick select/switch to select the options you which to change. The push buttpns to the right of the board are the keyboard buttons and the 2 push buttons on the left are the "more/less or octave up/down" buttons. The potentiometer controls the synth volume -- Notes -- We were unable to complete interface.py prior to the demo date, So there have been significant changes to it since then.
About
Interactive synth interface and engine in Python: control and manipulate sounds using Arduino inputs. Features customizable oscillators, filters, ADSR envelopes, and LFOs for rich sound synthesis. Ideal for enthusiasts in digital music and sound design.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 91.9%
- Makefile 4.5%
- C++ 3.6%