_____
| | \
| | \
| | \___
| | \
| | \
0 _|_|___________|
/\/ /____|____________)
. / \_|__________________|
|/__ | )( )(
| |\\ :| )( )(
You already know what time it is.
Nothing but Node.js, blood, sweat, tears, & coffee.
This was meant to be an application that detects microphone input and helps you write sheet music in order to better learn how to improvise.
I have since realized that the HTML5 web audio API is difficult, and rendering svg versions of sheet music is even more so. So, unfortunately, I've only delivered on around half of my original user goals.
However, not all is lost!
Users can still enjoy their favorite videos within a beautiful interface and simultaneously sing, hum, and/or whistle over them with assisted pitch detection. Hopefully making them at least more comfortable with understandings of key, pitch class and ear training.
I also tried to get this to work without a server but ran into a lot of security issues within Chrome when attempting to serve the local database and the audio api -- so my apologies in that regard.
Without further ado, let's jump in. HEADPHONES recommended!
- app/ -
meat & potatoes
- controllers/ -
one lousy api endpoint and one lousy view
- models/ -
video data modeling
- public/ -
the backbone of this project filled with static goodies
- images/ -
thumbnails of videos and icons
- scripts/ -
sheesh - peek in here if you dare
- styles/ -
compiled css
- videos/ -
my precioussssss....
- images/ -
- sass/ -
pre-compiled styling
- utils/ -
youtube video downloading script
- views/ -
'view' might have been more appropriate
- layouts/ -
lego base
- partials/ -
lego blocks
- index.hbs -
handle it
- layouts/ -
- db.json -
dripping in finesse
- controllers/ -
- resources/ -
all write-ups and project milestone info are here
- app.js -
entrypoint
- config.js -
app config variables
- package.json -
just node tings
Feel free to run it yourself. But make sure you have Node.js installed!
-
You must clone the repo. Unless you've already done so, of course.
git clone
-
You must nurture the repo.
npm install
-
You must love the repo.
npm start
-
You should be good to go! If you might want to download your own videos, wipe the current ones and get some new ones with the following commands!
npm run clean
&&npm run dl [link1 link2 ...]
Here are a few that could be great to start with if you don't like mine!