GithubHelp home page GithubHelp logo

gnuartemis / music-chord-identifier Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 2.0 5.23 MB

Our goal with this project is to create a simple, accessible tool that can be used for learning basic music theory at the fifth-grade level. By way of a virtual keyboard, users can designate note combinations, and upon submission, an analysis of the chord (root and quality, or interval type if less than 3 unique notes) is shown.

Home Page: https://gnuartemis.github.io/Music-Chord-Identifier/index.html

License: MIT License

HTML 20.16% JavaScript 74.17% CSS 5.67%
analysis music-theory keyboard chord

music-chord-identifier's Introduction

Music-Chord-Identifier

Deployed Link

https://gnuartemis.github.io/Music-Chord-Identifier/index.html

Description

Our goal with this project is to create a simple, accessible tool that can be used for learning basic music theory at an approximately 5th-grade level. By way of a virtual keyboard, users can designate note combinations, and upon submission, an analysis of the chord (root and quality, or interval type if less than 3 unique notes) will be displayed. The program displays an exact match if one can be found, and the most likely result with side list of less likely results if no exact match exists. Upon recieving a chordal input, users can also seek out further information about each chord, with a piano representation, a sound byte example, and in certain situations a definition.

Compared to existing tools, we are prioritizing accessibility: users primarily recieve the simplest, most likely result, displayed as a section on the current page. Users DO NOT need an prior music theory knowledge in order to determine what the result is.

We are using materialize and an open-source Javascript keyboard to display the page, in addition to server side APIs for recieving data.

Technologies Used

API/Reverse Chord Identifier

API/Chord Sound, Piano Display, and Progression

Materialize

Audiosynth.js and playKeyboard.js

User Story

AS A music student I WANT a tool to help me learn to analyze chords GIVEN THAT I press notes on a keyboard THEN I recieve the name of that chord GIVEN THAT I type in an interval THEN I recieve the name of that interval, including the case of unison GIVEN THAT I have recieved a chord analysis THEN I can see a visual respresentation and hear an example

Further information and Deployed Site

Website

GitHub

Visuals

image

Plugging in a chord with an exact match

image

Plugging in a chord WITHOUT an exact match

image

Mobile view--Portrait

image

Mobile view-Landscape

image

About us page

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

Auhors and Acknowledgement

For further information, feel free to contact at [email protected].

Ann Guinee

Caitlin Bouroncle

Matt Weber

Scott Dancer

Petar Zivkovic

License

[MIT]Copyright (c) [2020] [Ann Guinee, Caitlin Bouroncle, Matt Weber, Scott Dancer, Petar Zivkovic]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

music-chord-identifier's People

Contributors

caitlinbou avatar gnuartemis avatar petar85 avatar scottdancer avatar webermg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

music-chord-identifier's Issues

REFRESH for next input

Will this be a refresh button? Do we want the keys to remain colored even upon viewing the response?

Special case: only two notes chosen

The tofret API only gives results with 3 or more notes.
[]If 2 or more notes are chosen, display the appropriate interval. EG: Minor second, major 3rd, perfect 5
[] Can be done via algorithm: if notes are next to each other, minor second. if 1 key in between, major 2nd. if 2 keys in between, minor 3rd, etc

If no exact match, display likely results

[] If there is NO exact match, display the possible results instead. DONE
[] Sort all possible "chords missing a note" by order of Likelihood. DONE
[]If there are NO possible chords, indicate as such. DONE

Add header

[ ] Jumbotron and/or Nav-bar to musical learning resources.
There is a great online piano resource on YouTube, we could consider linking user to him and/or other musical theory resources.

wireframe

briefly discussed layout ideas 9/21, looking for MVP version for initial presentation

READ ME

[ ] links to gitHub
[ ] links to deployed site
[ ] screenshots showing various aspects
[ ] mention external links, what they are and why
[ ] API front end used, with link (materialize and other credits for piano?)
[ ] 2 API's back end with links and description of function
[ ] user story

Prepare for manatee tank

[ ] Ann prepared to verbalize the "why"
[ ] Entire team understand the project objective and basic roles
[ ] Team to independently research viable API options
[ ] Team to independently research viable graphical interface options/bootstrap alternatives
[ ] wireframe shared with team
[ ] PM role assigned (Caitlin)
[ ] Gitmaster role assigned (Ann)
[ ] general overview of front end team/back end team assigned

Add an "about us" page to the site

[ ] discuss content and layout with team
[ ] assign person responsible for build
[ ] retain navBar and add a link to toggle between home/about us

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.