Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Ear training using midi.js (tonedear.com)
230 points by dncrane on Aug 25, 2015 | hide | past | web | favorite | 34 comments



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.


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).


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/

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


Do you need to generate an unlimited number of them ? Could you just listen to the radio for a few hours and write down some patterns?

I know next to nothing about music theory.


In the example he listed each note goes either up or down one note to the next chord.


If you don't mind saying, what do you tell your students? I'd like to get into it.


Sure. I'm always on the lookout for new things, because I'm unsatisfied with most solutions out there. The best way to learn/practice ear training is to find someone who's decent at piano and play through some progressions you'd find in a theory book.

(Diversion on theory textbooks...) Though I didn't pick it, at my school we use Steve Laitz's The Complete Musician (http://www.amazon.com/Complete-Musician-Integrated-Approach-...) and its associated workbooks. I wouldn't recommend it for self-study, because there are a lot of little errors in it a student likely wouldn't notice, and it's prone to confusing people. What might be better for learning on your own is Gary Karpinski's Manual for Ear Training and Sight Singing (http://www.amazon.com/Manual-Ear-Training-Sight-Singing/dp/0...) and the CD that goes along with it. Finding ear-training books is kind of difficult, since most are designed to be used in a class with a teacher. I have more opinions on textbooks but I'll save that rant for now.

Online, this site is pretty good for basic intervals and chords (as I said above), and http://www.musictheory.net/ also has some pretty basic exercises. It avoids a lot of the problems I mentioned above by simply not having those exercises for ear training. I think it's pretty good for people who don't know anything and want to learn, but I usually don't recommend it to my students because it tends to fuzz some specifics as it gets more advanced. I often recommend this software called Practica Musica (http://www.ars-nova.com/practica6.html), which we have installed in the lab at school.

(Background: I teach at a liberal-arts undergraduate institution, and the theory curriculum focuses on common-practice tonal music in the Western tradition. There are probably other more specific sources for particular genres, but knowing the basics of common-practice tonality is a good foundation for most other Western musics.)


This is great stuff. Thank you! I'm actually about to release an Ear Training app for iOS and I would love it if you'd take a look and tell me what you thought. if you would e-mail me at info@mockingbirdlessons.com I'll tell you more


Thank you.


Also for the chord progression quiz, I kept trying to pick the first chord in the "chord 2" section. Perhaps this mistake would be made less if you show the inputs for chord 1 but have the first option selected and the inputs disabled.


I will second this but I'd also say to please keep the random option as well!

Also, this is super cool and useful and I love it! You rock


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.


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.


This is a great point, I'll work on adding more guidance to the exercises.


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.


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.


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?


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


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.


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.


Thanks! Those are all good ideas.

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


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.


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.


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 (it was called Karajan back then, years ago).


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/ does: really easy to get started, and an optional user account where you can see your progress (see http://10fastfingers.com/user/442112/ for mine)


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.


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!


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


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


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!


Impossible to see something like this and not recommend this guy's work: https://soundcloud.com/thesignatureseries SIMPLY AMAZING!


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.


This is awesome. Good job.


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




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: