Coder Social home page Coder Social logo

sunyatasattva / overtones Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 1.0 1.09 MB

A visualization of overtones for music theory and polyphonic overtone singing composers

Home Page: http://suonoterapia.org/overtones

License: Other

HTML 21.48% JavaScript 54.82% SCSS 23.70%
music-theory visualization overtone

overtones's People

Contributors

sunyatasattva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

overtones's Issues

Pitch detection

Better accidentals

Skye writes:

Sharps and flats - where are the flats?
This is actually an important issue - and I am sorry that I didn't realize before - that you omitted the flats and use only sharps. That is not uncommon and the problem is of course that the regularities of the harmonic series are not really compatible with the tonal thinking on which naming of the notes is based.
If I were to give the keys of the piano names (without considering which key but considering c as a starting point) I would say
c-db-d-eb-e-f-f#-g-ab-a-bb-b-c'
Reason:
db is four fifths down from c, whereas c# would be seven fifths up (furthermore I have problems with the notion of a sharpened tonic)
eb is three fifths down from c, whereas d# would be nine fifths up.
f# or gb is six steps either up or down. I can explain later why I would pick f#
ab is five fifths down from c, whereas g# would be seven fifths up
bb is two fifths down from, whereas a# would be ten fifths up

12782001_980645788638821_589001784_n

A concrete example of 'disturbance':
Use 175 Hz as your starting point, close to a 12-tet F.
The 12th partial will be a C, which is fine, but the partial 13 is indicated as C#, and anyone with a little training in music theory will understand that it is not optimal to consider that partial an augmented fifth.
Another problem is when the fundamental is a '#-tone', in many cases the 11th partial will be indicated as a variant of a perfect fourth. Example: Fundamental 415 Hz, G#. Partial 11 will be indicated as C#. That is really not optimal.
One of my reasons to use f# instead of gb is based on modal structures, partly inspired from Indian music. I consider the fifth 'invariable' in a lattice in which each step (second, third, fourth, sixth and seventh) has a high and low version.

12781966_981079425262124_1197682838_n

Find Intervals

Given a frequency, play an interval of that frequency based on a tuning:

note.interval('G', '12-TET')

returns a note object for the fifth in 12 Equal Temperament.

Can implement Danielou's list as something like:

note.interval('CL+', 'Danielou') // => 16/15

Overtones from the human voice

Allow to hear overtone produced from the human voice and to see how to produce them in the mouth. Perhaps adding vowel diagrams or better mouth position svg.

Find notes in a scale

Given a tuning system and a reference note, find another note.

playNote('G4', '12-TET', 440) // => 392Hz

Probably 12-TET should be default and surely 440 should.

Sequence recording

Allow the user to set sequences of intervals in order to create his own exercises and practice on the "intervals jumps" he prefers.

Also: a sort of "record" button for a sequence (maybe avoiding giving the chance to set the tempo for each note to keep it simple, and "excercise-oriented"). I'm liking this! Connected to it, maybe it would be cool to have an "ear training" feature where you can test if you guess the intervals smile emoticon

Better interval names

One suggestion:

2/1 perfect octave
3/2 perfect fifth
4/3 perfect fourth
5/4 small major third
6/5 large minor third
7/6 sub minor third
8/7 super major second
9/8 major second
10/9 small major second
11/10 sub major second or large middle second/large neutral second
12/11 middle second or neutral second
13/12 small middle second or small neutral second
14/13 supra minor second or smaller middle second
15/14 larger minor second
16/15 large minor second
11/8 super fourth
13/8 small middle sixth/small neutral sixth
7/4 sub minor seventh
15/8 small major seventh

Revisions of symbols

When we get into composite numbers, I think it would be clearer to have them split the "other" way, e.g. to have 6 split into 3 and then 2 on the outside, showing that it's the same "shape" as the 3 identity, but that it's an octave higher, so each piece is just split up into two. Ditto 10=5 x 2, 12=3 x 2 x 2, 14=7 x 2. This means they'd keep the same shape going all the way down the gold axes, so one could easily recognise they were like "copies of the same thing"
When we get to composite numbers not involving two, then I guess you have the biggest factor on the inside, and the smallest on the outside. So 9 is fine how it is, but 15 might be better as 5 and then 3.

Keyboard support

Add support for playing overtones through keyboard.

Could be interesting to consider also playing fundamentals through keyboard, but it is maybe outside of the scope of this project.

Would love to be able to play a sequence of overtone!

Hi, I really enjoy the tool you've made here!

I have a humble request to make and that is to be able to play a sequence of overtone, like if you added numbers to each overtone you would be able to play them back by something like: writing in a box "1 2 3 2 1" and those overtone would be played.

That would be a great great way to figuring out melodies to sing with overtones or just to listen to.

Example: This around 220 hz

1 2 4 8 16 8 4 2 1 7 13 7 1 7 13 7 1 3 6 3 1 2 1

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.