danwoda / synth

Synthesizer based on the book *JavaScript for Sound Artists* by William Turner.
MIT License
1 stars 0 forks source link

Project To Do List #1

Open danwoda opened 9 months ago

danwoda commented 9 months ago

MVP

Nice To Have

danwoda commented 9 months ago

Meeting notes for Oct 19th

Plan on starting with everything in the client, including a JSON of the different sounds. We can move this into an API in the future and protect with JWTs if we have time.

Goal for next meeting: implement a "white key" in frequency of C1 (32.7Hz). We'll each implement it separately and and compare branches.

danwoda commented 8 months ago

Meeting notes for Oct 26th

Presented single key demos.

Goal for next meeting: create a full 12 key keyboard. Controlling the oscillator in a parent component with a single function for all the keys.

marbary commented 8 months ago

Meeting notes for Oct 26th

Presented single key demos.

Goal for next meeting: create a full 12 key keyboard. Controlling the oscillator in a parent component with a single function for all the keys.

Short observation - So far I failed to find a way to parametrize an event handler function of a child component (specifically the base frequency parameter) within a parent component in React (so that we can only create two child components like 'White_key' and 'Black_key' and return them in a parent 'Keyboard' component n times (n - no. of keys in keyboard) by specifying the base frequency for each of them. Something like in the code below:

 export default function Keyboard() {
    return (

        <ul>

            <White_key id='c1' frequency={frequencies.id} /> 
            <White_key id='c2' frequency={frequencies.id} />

        </ul>   
    ); 

Conclusion - React may be not the best solution for building a keyboard and we may end up creating n separate components (n - no. of keys in keyboard) to be returned in a parent 'Keyboard' component unless we find a solution at some point.

danwoda commented 8 months ago

I added a new branch trying to get this working: https://github.com/danwoda/synth/tree/dan-keyboard

I am running into some issues with playing multiple keys at the same time, but I think I found a resource to address it, here: https://russellgood.com/js-synthesizer-part-5-gain-staging-dynamics-processing/

Does this look like what you're thinking? We can discuss tomorrow.

marbary commented 8 months ago

We can fine-tune the sound of playing multiple keys in the following days. In the meantime, I have pushed a branch built on this one with a working Waveform component added to this keyboard (So the Keyboard component is updated with osc.type each time we change the waveform type selector). https://github.com/danwoda/synth/tree/Waveform_component_added_to_Dan's_keyboard

danwoda commented 8 months ago

Meeting notes for November 16th

We discussed the two recent branches (keyboard and waveform selector), Dan to merge these branches.

Goals for next meeting

danwoda commented 7 months ago

Meeting notes for Dec 5th

We discussed the two PRs #5 & #6 and merged.

Next meeting will be our final wrap up. Goals: