Open danwoda opened 9 months ago
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.
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.
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.
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.
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
We discussed the two recent branches (keyboard and waveform selector), Dan to merge these branches.
Goals for next meeting
We discussed the two PRs #5 & #6 and merged.
Next meeting will be our final wrap up. Goals:
MVP
Nice To Have