forked from ducklin5/MusicBoard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
70 lines (55 loc) · 2.05 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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.