From 301ea76156f06a23b4c710fa180e0254f6063c9f Mon Sep 17 00:00:00 2001 From: Neill Bogie Date: Sat, 23 May 2020 05:50:19 +0100 Subject: [PATCH 1/2] music keyboard - use the nicer screenshot --- challenge-music-keyboard/README.md | 9 ++------- .../example-screenshots/example2.png | Bin 0 -> 22004 bytes 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/challenge-music-keyboard/README.md b/challenge-music-keyboard/README.md index 8ae2150e6..01d9c0158 100644 --- a/challenge-music-keyboard/README.md +++ b/challenge-music-keyboard/README.md @@ -10,7 +10,7 @@ You must make a React app which presents a very simple musical keyboard made of ### Example Screenshot -![Example Screenshot](./example-screenshots/example1.png) +![Example Screenshot](./example-screenshots/example2.png) ## What you need to know before starting: @@ -22,18 +22,13 @@ You _will_ need to know... - how to create a component in React - how to pass props - how to populate components from an array +- how to handle events (button clicks) In addition, you'll learn... - How to install a library (in this case, tones.js) - How to make synthesised sound with the tones.js library. This is one of many ways to make sound in a web app. -You DO NOT need to know about: - -- state -- fetching JSON from an API -- promises - # Task: Install the "tones.js" library - If you haven't created your app yet, use `create-react-app` to create the skeleton of the app. diff --git a/challenge-music-keyboard/example-screenshots/example2.png b/challenge-music-keyboard/example-screenshots/example2.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8cb98c11a5f05930e66d3237be91f98f103e3ae2 100644 GIT binary patch literal 22004 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 literal 0 HcmV?d00001 From 67d94d04add0012ca6d53ac581c168bb9e9a3af1 Mon Sep 17 00:00:00 2001 From: Neill Bogie Date: Sat, 23 May 2020 05:56:29 +0100 Subject: [PATCH 2/2] music keyboard: add netlify and github names --- challenge-music-keyboard/README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/challenge-music-keyboard/README.md b/challenge-music-keyboard/README.md index 01d9c0158..5b8a126dc 100644 --- a/challenge-music-keyboard/README.md +++ b/challenge-music-keyboard/README.md @@ -94,9 +94,10 @@ If you need a hint, [use the first example in the docs, here.](https://tonejs.gi Host your app and prove it works by viewing it on your phone! -We recommend you use Netlify. [Instructions are here](https://gist.github.com/nbogie/bf58a391fab6884f77a6adec66047181). +We recommend you use Netlify: -(You can instead use Heroku to host, or github pages, or codesandbox.io, or glitch.com...) +Site name: `cyf-GITHUBUSERNAME-tones` +Repo name: `tones-react` ## End of basic challenge! @@ -118,6 +119,10 @@ Here's the names of the notes in a C pentatonic scale, for example: `C4 D4 E4 G4 - Add to the interface so that the user can choose what scale they want. +## Advanced Challenge: add controls to change the sound + +- Add to the interface so that the user can modify the sound synthesis parameters. + ## Advanced Challenge: make it look good - Now is a good time to make it look good with CSS, colour, typography, images, and creativity. Or maybe you could ask someone to collaborate with you and do those aspects.