ShacharHarshuv / open-ear

103 stars 19 forks source link

Percussion Identification #229

Open RustoMCSpit opened 1 year ago

RustoMCSpit commented 1 year ago

have a random midi drum beat occur and have the user input the stuff heard

e.g.

snare snare kick closed highhat

allow for harder modes where multiple things can happen at the same time like if each beat had a closed high hat on top.

ShacharHarshuv commented 1 year ago

So this is basically percussion instrument identification? Could it be a specific case of https://github.com/ShacharHarshuv/open-ear/issues/182?

RustoMCSpit commented 1 year ago

So this is basically percussion instrument identification? Could it be a specific case of #182?

no this is midi based, also it's not about identifying the instrument but identifying the drums notation. look at drum notation to get an idea

ShacharHarshuv commented 1 year ago

This app is focused on ear training, not music notation reading. Can you please clarify the intent of this suggestion? At this point it's not clear to me.

RustoMCSpit commented 1 year ago

This app is focused on ear training, not music notation reading. Can you please clarify the intent of this suggestion? At this point it's not clear to me.

youre not reading drum notation, youre inputting it from what you hear.

ShacharHarshuv commented 1 year ago

youre inputting it from what you hear.

So again, it's an instrument identification exercise (the instrument being kick, snare, HH etc)

RustoMCSpit commented 1 year ago

youre inputting it from what you hear.

So again, it's an instrument identification exercise (the instrument being kick, snare, HH etc)

well technically yes? it's an odd way of looking at it as drums are considered one 'instrument' but yeah youre inputting the drum pattern you hear

ShacharHarshuv commented 1 year ago

drums are considered one 'instrument'

Not really, drums are considered an "instrument set" so they are all played by the same player. I believe this feature can either be part of the instrument identification exercise, or a dedicated "percussion identification" exercise.

Btw, the app doesn't use MIDI at all, instead it generates the sounds directly from javascript using tone.js. Note sure why would MIDI be needed for this type of exercise, as it seems like you would play one sample.

RustoMCSpit commented 1 year ago

drums are considered one 'instrument'

Not really, drums are considered an "instrument set" so they are all played by the same player. I believe this feature can either be part of the instrument identification exercise, or a dedicated "percussion identification" exercise.

Btw, the app doesn't use MIDI at all, instead it generates the sounds directly from javascript using tone.js. Note sure why would MIDI be needed for this type of exercise, as it seems like you would play one sample.

by generate you mean 'not a real audio clip of an instrument' right? also midi would be my way of thinking as there are midi standards for drums and plenty of free drum packs to download already

ShacharHarshuv commented 1 year ago

not a real audio clip of an instrument

Sorry, I was not clear. There is a SAMPLER, so it does play real mp3 audio clips, it just doesn't use MIDI to do so (MIDI is a communication protocol, I'm not using VSTs, Synths or external keyboards so this is not needed.

also midi would be my way of thinking as there are midi standards for drums and plenty of free drum packs to download already

Maybe I misunderstood - we are talking about identifying individual drum sounds, right? Not complete grooves. What would you with complete grooves?

RustoMCSpit commented 1 year ago

Maybe I misunderstood - we are talking about identifying individual drum sounds, right? Not complete grooves. What would you with complete grooves?

no we're talking about grooves, youd input the instrument(s) you heard each beat so for four four thered be 8 boxes

1 and 2 and 3 and 4 and

and youd type in what you heard and see if you got it right

best if there is also a melody and chords on top to distract you in harder modes

RustoMCSpit commented 1 year ago

Sorry, I was not clear. There is a SAMPLER, so it does play real mp3 audio clips, it just doesn't use MIDI to do so (MIDI is a communication protocol, I'm not using VSTs, Synths or external keyboards so this is not needed.

there are foss drum kits that would make more sense for this application specifically

bokajsukriz commented 11 months ago

I like where this idea is going. I'm trying to train my ears to be able to pick up songs and play them on the piano. So this app is an immense help when it comes to training the recognition of chord progressions especially (for me) - even more since I changed to Android/GrapheneOS and am able to use the latest version allowing practicing with real songs <3<3<3

However, where I am still lacking and what would be nice would be a similar approach to get a feeling for rhythm. I think the exercise explained by rustomcspit might help me; but even other ideas could be explored. For example an exercise to identify whether and how much swing a groove/song has? Or even more basic (I am still having troubles here sometimes): tapping/guessing the BPM of a groove/song, Identifiying the 1, or clapping exercices (real songs and you have to hit the 2 & 4; the 2and + 4and...).

However, I'm at the beginning of my learning experience - so its hard for me to figure out what could really help :D

ShacharHarshuv commented 11 months ago

no we're talking about grooves, youd input the instrument(s) you heard each beat so for four four thered be 8 boxes

@RustoMCSpit There are a few issues with this suggestion:

  1. Grooves can have hits on any point. Not only on eight-notes.
  2. The app infrastructure doesn't have anyway to deal with displaying time visually. The only exercise with some sort of timing is the "chords in real songs" exercise and the timing is not represented visually. This is not something I plan to change since it's a major effect and a mind-set change for the app design.
  3. Different hints could be in the same time, which could make it difficult to input and create a reusable UI.

I'm afraid that if you want to learn how to transcribe grooves, it would be easier to just listen and play. Especially if you already have a set of MIDI grooves that you can less to and check your answer.

ShacharHarshuv commented 11 months ago

@bokajsukriz You raise an interesting point here about the goal of rhythm in ear training. The goal of the app is to teach you skills that will help you play what you hear. Knowing the notes, or chords, usually makes it much easier for to people to play compared to just listening. (The opposite is true for singers - listening is usually easier than reading). That's why the app asks you to pick numbers based on what you listen to, assuming that a knowledge about your instruments + these numbers, will make it easy to play.

This is not true with rhythm however. Repeating rhythm from listening is usually far easier than reading it. Which makes you wonder about the point of ear training for rhythm.

It seems to me like the "ear training" for rhythm (if you can call it that) is purely for purposes of writing and reading rhythm. Since this app is not concerned with teaching reading or writing music, it probably wouldn't make sense here.

Hope this makes sense.

bokajsukriz commented 11 months ago

Hej, thanks for the quick answer. I totally get your point and it might be true. For me personally however, it is way easier to replicate melodies and chords by ear, either singing or on the piano, than rhytm. I am not too bad at imitating, reading or transcibing rhytms in other apps - but it does not translate at all to hearing real music. I just don't feel it and so far no other app has helped me there. So at the moment I am trying to learn piano accompainment rhytms and hope that eventually I will be able to transfer that knowledge to hearing music and identifying rhythms. But a streamlined approach to train this with an app would be a nice extra - however, as i said before, I have no idea if and how such a thing could be realised and I totally understand that this falls out of the scope of the app and would most probably require a lot of (re)programming!

entomologe commented 8 months ago

I really like the idea of a rhythm practice as hearing the note value is a basic of ear training.

1. Grooves can have hits on any point. Not only on eight-notes.

Some atomic note value (let's say 1/32) would be sufficient for many exercises. Only tuple would not be included with this.

2. The app infrastructure doesn't have anyway to deal with displaying time visually. The only exercise with some sort of timing is the "chords in real songs" exercise and the timing is not represented visually. This is not something I plan to change since it's a major effect and a mind-set change for the app design.

One might have buttons for note values (i.e. 1, 1/2', ..., 1/k^2 for exact notes, 1+1/2, 1/2+1/4, ... for dotted notes and k1, k1/2, ..., k*1/2^k for tuple). Can tone.js generate timed melodies (e.g. c4. d8 e8 f8 g8)?

3. Different hints could be in the same time, which could make it difficult to input and create a reusable UI.

May you elaborate on that?

ShacharHarshuv commented 8 months ago

I really like the idea of a rhythm practice as hearing the note value is a basic of ear training.

I disagree with the concept of "hearing the note value". A "quarter" doesn't "sound" different than an "eight". Especially in percussion when notes don't have lengths - the idea of rhythmic values is just a way to communicate to a performer the timing these notes should be played. If anything - the "feel" of a "hit" depends more on the strength of the beat its on (down beat, up beat, off beat), not it's "rhythmic value"

This app does not concern itself with timings because it's either intuitive to imitate rhythm from listening (kindergarteners can do it with relatively complex rhythms) or it has to do with music notation (which is usually the main reason why rhythm is difficult), which is also not the focus of the app.

May you elaborate on that?

I meant "different hits", sorry.

I'll answer the rest of your questions in one sentence - if I were to develop an app that trains people to transcribe / copy / hear drum grooves, I would probably take a completely different approach to the whole UI. (something like a grid that you can mark hits with by clicking on them). It's a cool idea but a big departure from what this app is doing, so it might be better to create a completely new app.