Run trunk serve --open
Topic Ideas: midi, synths/ MPE, UI, web dev
- Physical synthesizers are heavy and take up a lot of space
- Virtual synthesizers are more portable (digitally) and can be more cost effective
- Browser based applications are more easily accessible
- Synths user interfaces can sometime be cluttered and intimidating for novice users. By simplifying the UI, our synthesizer can be more welcoming and understandable.
- Web application of a synthesizer for delivery to users interested in music tech software
- The only user entry requirement would be familiarity with their computer setup
-
Users will have the ability to use oscillators and different filters and EQs to generate sounds of users’ own design in their web browser
-
Users will also be able to use computer keyboard keys mapped to MIDI notes to change pitches of the oscillator output to compose and jam
-
Since the user interface is in the web browser and not in a DAW, our platform is novice friendly and easy to set up
Plans for implementation: flow chart, processing blocks, needed components, potential need for 3rd party libs
- MIDI I/O
- Touchpad Interface
-
Document all the required features of a synthesizer
-
Plan the implementation of major functions:
a. Audio Ring Buffer
b. MIDI Map Keyboard (MIDI using QWERTY keyboard)
c. Oscillators
d. Filters
e. LFO
f. Envelopes
g. XY Map for effects -
Create abstract classes and abstract functions
-
Write unit tests for each functions’ utility
-
Write integration tests
-
Perform manual verification and testing to check performance
- Touchpad Position Effect
- Multi-Touch for Separate Effects
-
Oscillators
a. Sine
b. Square
c. Triangle
d. White noise -
Filter Algorithms
a. Band Pass
b. Low Pass
c. High Pass -
LFO Algorithms
a. Sine LFO
b. Square LFO
c. Bidirectional Square LFO
d. Triangle LFO -
Envelope Algorithms
a. ADSR
b. AHDSR (If there is time)
Linking LFOs and Envelopes to Oscillators and Filters
- Needs background research?
- Roli as reference for XY effects mapping controller
-
Keyboard IO and mapping backend (Yiwei)
- Input reading
- Mapping (TeAiris)
-
Audio synth backend (Venkat + support)
- Refer to “Four main components” section
- Algorithm implementation (Efficient)
- Integration of individual components
-
Web and UI interface/frontend (Nicolette + Aleksandra – web dev)
- UI design (If there is time) (TeAiris)
- Web implementation (Yew)
-
Testing
- Unit tests (Everyone)
- Integration tests
- E.g. envelopes and filters
-
Documentation
- Document all the required features of a synthesizer
- Requirements to satisfy for future testing
- Within Rust – Documenting the code using
cargo doc
- Document all the required features of a synthesizer
Topic Ideas: midi, synths/ MPE, UI, web dev
- Physical synthesizers are heavy and take up a lot of space
- Virtual synthesizers are more portable (digitally) and can be more cost effective
- Browser based applications are more easily accessible
- Synths user interfaces can sometime be cluttered and intimidating for novice users. By simplifying the UI, our synthesizer can be more welcoming and understandable.
- Web application of a synthesizer for delivery to users interested in music tech software
- The only user entry requirement would be familiarity with their computer setup
-
Users will have the ability to use oscillators and different filters and EQs to generate sounds of users’ own design in their web browser
-
Users will also be able to use computer keyboard keys mapped to MIDI notes to change pitches of the oscillator output to compose and jam
-
Since the user interface is in the web browser and not in a DAW, our platform is novice friendly and easy to set up
Plans for implementation: flow chart, processing blocks, needed components, potential need for 3rd party libs
- MIDI I/O
- Touchpad Interface
-
Document all the required features of a synthesizer
-
Plan the implementation of major functions:
a. Audio Ring Buffer
b. MIDI Map Keyboard (MIDI using QWERTY keyboard)
c. Oscillators
d. Filters
e. LFO
f. Envelopes
g. XY Map for effects -
Create abstract classes and abstract functions
-
Write unit tests for each functions’ utility
-
Write integration tests
-
Perform manual verification and testing to check performance
- Touchpad Position Effect
- Multi-Touch for Separate Effects
-
Oscillators
a. Sine
b. Square
c. Triangle
d. White noise -
Filter Algorithms
a. Band Pass
b. Low Pass
c. High Pass -
LFO Algorithms
a. Sine LFO
b. Square LFO
c. Bidirectional Square LFO
d. Triangle LFO -
Envelope Algorithms
a. ADSR
b. AHDSR (If there is time)
Linking LFOs and Envelopes to Oscillators and Filters
- Needs background research?
- Roli as reference for XY effects mapping controller
-
Keyboard IO and mapping backend (Yiwei)
- Input reading
- Mapping (TeAiris)
-
Audio synth backend (Venkat + support)
- Refer to “Four main components” section
- Algorithm implementation (Efficient)
- Integration of individual components
-
Web and UI interface/frontend (Nicolette + Aleksandra – web dev)
- UI design (If there is time) (TeAiris)
- Web implementation (Yew)
-
Testing
- Unit tests (Everyone)
- Integration tests
- E.g. envelopes and filters
-
Documentation
- Document all the required features of a synthesizer
- Requirements to satisfy for future testing
- Within Rust – Documenting the code using
cargo doc
- Document all the required features of a synthesizer