
Show HN: Ear training using midi.js - dncrane
http://tonedear.com/
======
mmcclimon
I really like this, for the most part (and apropos, since the first day of
teaching ear-training for the semester is tomorrow!).

You're probably randomly generating these, but I would strongly suggest
incorporating some voice-leading and standard syntax into the examples. When
it plays I-IV-V-I to establish the key, for example, it plays 3 root-position
triads with parallel voice-leading:

    
    
        5 - 1 - 2 - 5
        3 - 6 - 7 - 3
        1 - 4 - 5 - 1
    

Usually when ear training, the idea is to be able to hear common tonal
progressions, where this kind of voice leading almost never shows up.
Something like this would be better (and better still with a bass voice
playing the roots in a different octave):

    
    
        5 - 6 - 5 - 5
        3 - 4 - 2 - 3
        1 - 1 - 7 - 1
    

I had trouble with the chord progression and melodic dictation exercises,
since they're not common tonal progressions. The melodic dictation I tried
first went ^6, up to ^5, down to ^1, and down again to ^3. While the minor
seventh is a really common tonal interval, it's really _uncommon_ to hear it
from scale degree 6 in a major key up to scale degree 5 (you'd only really
ever hear it as an applied chord of ii).

Likewise, the first chord progression I tried went I - ii7 - ii - IV7. This is
a progression you would not be likely to hear in tonal music (even in rock,
jazz, and other modern genres). Once a chord gets a seventh (ii7), it doesn't
usually lose it until its resolution (so ii7 to ii isn't a logical
progression), and the progression ii to IV7 is a retrogression (at least in
tonal classical music: this one you'd be slightly more likely to hear in rock
perhaps, but I imagine it's still pretty rare).

All this is to say that I really like the idea, but I'm hesitant to tell my
students about it because the random generation might lead them to things
which I would never play in an ear-training class (because they never show up
in common-practice tonal music). The way around this , and the way I've done
it before, is to generate a bunch of scale-degree patterns or chord
progression patterns and shuffle them randomly. If you're interested in
developing this further I'd be happy to help come up with some of these. For
intervals, scales, and individual chords, though, it's really great.

~~~
dncrane
Thanks, that's a really good point. I agree that the patterns generated could
be improved, but haven't come up with a good automated way to generate an
unlimited amount of better ones. Please email me any thoughts you have about
the best way to do this, I'm definitely interested in improving these (my
email is on my profile page).

~~~
knicholes
I've been listening to the Stanford NLP deep learning lectures, and while I
know hardly anything about it compared to most, "deep learning" is screaming
at me. If you could generate a "corpus" of musical progressions based off of
real music, you could very easily sample from a model to generate progressions
that are likely to "co-occur."

This was posted three months ago on HN, but one person used it to generate
music. [http://karpathy.github.io/2015/05/21/rnn-
effectiveness/](http://karpathy.github.io/2015/05/21/rnn-effectiveness/)

The folk music generation is located at
[https://soundcloud.com/seaandsailor/sets/char-rnn-
composes-i...](https://soundcloud.com/seaandsailor/sets/char-rnn-composes-
irish-folk-music). I could imagine you could do something similar.

------
dpcan
This would be SO COOL if it had some kind of baseline, or study guide.

Simply meaning, I should be able to listen to C D E for a while to get to know
the difference. I need examples of Major, Minor, Augmented chords, and what
I'm even supposed to be listening for.

I can practice seeing if I hear a C all day, but I don't think this will help
me because I don't know what how I'm supposed to differentiate a C from a D,
etc.

Another way that might make learning easier would be some True/False questions
for Pitch especially.

Is this a C? Yes/No

Or something like that. If not, what is it? Then let me play the two a couple
times. And after you tell me what the other note is, maybe something I'm
supposed to be listening for - if anything?

Anyway, this interests me because I've always wanted to be able to identify
chords, notes, etc, but it seems so darn impossible. This is probably the
first tool I've seen that I really want to use - so hopefully these thoughts
don't come across as degrading but just some friendly feedback because I
already love what is available to me through this site as-is.

~~~
tjr
Good points. This sort of program has traditionally been paired with taking a
class on the subject, with the program used as a means of practicing the
material, rather than as a means of learning it in the first place.

------
ArekDymalski
Quick suggestion after slight confusion during the Intervals exercise: switch
the location of "Hear next" and "Hear again" buttons - it seems to be more
intuitive to have "Hear next" on the right side.

~~~
evolve2k
I came here to say the same thing, kept pressing the wrong button when I did
it fast. Yes please swap them so the next button is to the right.

Consider adding a little arrow icon or '>' on the next button just to help
remind us. The music button could also have a little music note icon.

------
aklemm
As someone who wants to do a basic self-study of music, this seems pretty
awesome. Unfortnately, I don't know what I don't know. Can anyone link to
readings or a course that would teach me the stuff this is quizzing?

~~~
jtheory
musictheory.net has some nice interactive tutorials (plus its own exercises).

------
noxToken
I played the saxophone for many years. Music has always been an interest of
mine, but I have no application for it. Thus, my ear for progressions,
pitches, intervals, etc. has waned. In spite of there being no clear end-game
other than education (as in you can't "beat" it), this is the type of thing
that I could do for hours on end.

I don't know the challenges involved (haven't seen the codebase), but you
should package this into a Cordova or some other JS phone app. I'd download it
in a heartbeat. I'd also be willing to assist if you needed extra hands.

------
jasode
Nice work. I tried the chord exercises. As a feature request, it would be nice
if everything could be driven by the (computer) keyboard shortcuts because
moving the mouse and clicking on various buttons got tiresome.

Something like pressing "N" for next chord, and press "1", "2", "3", "4" to
quickly pick one of the four possible answers. You can also add a stopwatch
display showing user's "think" time.

Quick keyboard reaction with pressure of beating previous times would really
get those Jeopardy quiz muscles working.

Also, if the chord exercise could also reveal the actual _note names_ in
addition to the scale degree, that would be very helpful. (e.g. show "G# Major
- 1 3 5" instead of just "1 3 5")

Lastly, as an really ambitious feature, it would be very cool if the website
could cross-reference the chord with popular songs that happen to use it. For
example, the test generates a random chord C Major 1 3 5 and one of the
buttons is "hear Example Song" and it plays the first fragment of Bill Withers
"Lean on Me" because that songs starts on a C Major. The source of Bill
Withers song could come from a "deep link" into youtube. The database of
cross-references would have to be "crowdsourced" so that users could submit
thousands of examples. It would definitely be a lot of work but I'm just
typing a wish list.

~~~
dncrane
Thanks! Those are all good ideas.

One of them is already implemented: Keyboard shortcuts are available in the
advanced options for most exercises.

------
sanqui
I've tried the first exercise. What I think would help me is when I get an
answer wrong and get, e.g., Nope, "Major 3rd" is not correct, provide a button
to play what the Major 3rd would actually sound like so I can compare it with
the question and memorize.

This looks like exactly what I've been looking for, though, I think I'll try
getting into learning with it.

~~~
dncrane
Good idea! There's an advanced option that puts a "listen" button next to each
interval on the sidebar in the intervals exercise, but this would be a good
more general feature to include for whenever someone answers incorrectly in
any exercise.

------
manmal
If you are interested in more tools like this, I practiced a lot with this:
[https://itunes.apple.com/at/app/better-
ears/id284444548?mt=8](https://itunes.apple.com/at/app/better-
ears/id284444548?mt=8) (it was called Karajan back then, years ago).

------
cocoflunchy
This is great, but would be even better if there was some way of logging in to
save your progress! You're probably already working on it given what you write
in your 'How to practice' page ;) but I'd love to have it track my progress
and show a few basic charts. You could also gamify it a little bit (without
doing too much) by adding a few achievements to unlock.

Edit: I like what [http://10fastfingers.com/](http://10fastfingers.com/) does:
really easy to get started, and an optional user account where you can see
your progress (see
[http://10fastfingers.com/user/442112/](http://10fastfingers.com/user/442112/)
for mine)

------
paublyrne
I bought the David Lucas Burge Perfect Pitch Ear Training course many years
ago. It was a 12 or something CD package where he talks through the process of
listening more and more deeply to notes with the ultimate goal of hearing the
difference between a B and an F#.

I ultimately didn't make it. Sometimes I would think I heard the difference,
others not. Not sure there is huge value to having perfect pitch, although it
appears to exist as a real thing. Relative pitch skills, on the other hand,
are very practical.

------
iaw
A friend of mine had been asking for me to build something like this for a
while so I pointed him to it. It looks great, the one additional feature that
my friend was interested in (and really is an edge use case) is to do perfect
pitch training with multiple arbitrary notes. He does a lot of jazz
improvisation and so being able to identify multiple arbitrary notes in unison
is pretty important for him.

Great work!

------
BHSPitMonkey
If you're looking for something similar you can install via your package
manager, check out GNU Solfege.

------
muglug
Great! Quick thing – augmented/diminished chords don't have a position (root
or otherwise).

------
rifung
Great! This is exactly what I needed as someone who is learning piano but
wanted to expand my musical skills beyond just playing.

Does anyone have any recommendation on how I should practice these? Like is
there a certain order I should do them in or anything like that?

Thanks!

------
ribeirojr
Impossible to see something like this and not recommend this guy's work:
[https://soundcloud.com/thesignatureseries](https://soundcloud.com/thesignatureseries)
SIMPLY AMAZING!

------
arvinsim
Nice! Right when I just decided to start ear training :)

Can someone suggest similar tools for the Android ecosystem? I don't always
have an internet connection so having an offline app would be nice.

------
jmannon
This is awesome. Good job.

------
justifier
love it

feature request: allow me to set the period length, or an on off button

sometimes i wanted to really bathe in the sounds

