ShacharHarshuv / open-ear

102 stars 19 forks source link

iOS App Quirk #208

Open mr88cet opened 1 year ago

mr88cet commented 1 year ago

I’m enjoying the iOS (iPhone) app; thanks a bunch. However there’s a couple quirks about it that I’d like to report, along with a suggested enhancement.

First, even after reading the Help for it, I’m not clear how the “Notes with Chords” exercise works. It appears to be suggesting that I identify the emphasized pitch with solfège relative to the tonal center, and a number (1, 3 or 5) for which it is in the chord. In the first several such exercises, I’m given choices of Do1, Do3, and Do5, but the emphasized pitch clearly is not the tonic (Do), and it clearly changes when the tonic/key does not. (?)

Second, I’m finding the app hard to use if I place the iPhone on the table in front of me, rather than in my hands. I find that I have to hit a button several times before it registers. The problem appears to be that the answer buttons are defined as objects that can be dragged around the screen, rather than at fixed locations on the screen. If I tap the button with any even-extremely-slight movement in the plane of the screen, it misinterprets the gesture as an attempt to move the button around the screen rather than an attempt to tap that button.

My enhancement suggestion: Coming from an orchestral-instrument background, I’m finding that the piano timbre somewhat colors — arguably confuses — the sonorities of the harmonies in ways that, say, a solo-violin/viola/‘cello sound, or an oboe/bassoon sound, or even a French-horn sound would not. Would it be possible to to add options to use other timbres in the exercises?

Thanks again for the great ear-training tool!

ShacharHarshuv commented 1 year ago

I’m not clear how the “Notes with Chords”

Your description in correct. Do1 means the first scale degree as the "1st" of a chord (aka the I chord). Do3 means first scale degree as the "3rd" of a chord (aka the vi chord). For example, in C major you'll have:

the answer buttons are defined as objects that can be dragged around the screen, rather than at fixed locations on the screen.

This is actually on purpose, to enable you to drag answers to their correct "place". For example - if you do a 3 note dictation, you can identify the second note before identifying the first note. The sensitivity of touch in your phone seems to be making this harder than it should be. I'm not sure what is the right way to "improve" this from the perspective of the app development, since I'm developing for a web view (HTML) and it's the hardware, OS and/or web engine responsibility to invoke the events based on user input.

I’m finding that the piano timbre somewhat colors — arguably confuses — the sonorities of the harmonies in ways that, say, a solo-violin/viola/‘cello sound, or an oboe/bassoon sound, or even a French-horn sound would not. Would it be possible to to add options to use other timbres in the exercises?

I agree, and I feel like you raise a valid concern in ear training in general. Even though you can still learn to identify melody in many other instruments using just piano sounds, it makes it slightly harder. There is actually already an open request for that: https://github.com/ShacharHarshuv/open-ear/issues/196. However, you should know, that I'm not actively making constant improvements to the app, and usually only add features that are relevant to my own specific needs in my education at the moment. (Given that they are simple enough). The idea of making it open source is that other people with other needs will be able to add new features themselves. So as for the moment I cannot provide any timeline as to when this feature will be available if at all. However - if you possess some programming skills (or know of someone that does) you can program it yourself, and I'll gladly review your code changes.

mr88cet commented 1 year ago

Very-helpful clarification points, Clay!  Thanks.Just for whatever it’s worth, I have contributed to open-source projects before, while I was working for Arm.  I doubt I’d be able to scrape up the time to work on it now unfortunately, but … 3 years to retirement, so “who knows” after that!I took the usual Freshman and Sophomore Theory and Ear Training courses waaay back in the late-1980s, and I got to where I was fair at four-part dictation.  However I’ve been kinda swamped with other stuff since, both musical and otherwise (e.g., learning Chinese!).So, I’m trying to whip my ears back into shape, so that I can get back to composition when I retire!  That, partly inspired by picking up a Lumatone (https://youtu.be/cpYBnzaWZqU) — way-cool!Anyway, thanks again for the excellent Ear-Training tool!  Written by Gary's dancing thumbsOn Apr 9, 2023, at 9:27 PM, Clay Herzberg @.***> wrote:

I’m not clear how the “Notes with Chords”

Your description in correct. Do1 means the first scale degree as the "1st" of a chord (aka the I chord). Do3 means first scale degree as the "3rd" of a chord (aka the vi chord). For example, in C major you'll have:

Do1 - melody note C, on chord C Do3 - melody note C on chord Am Do5 - melody note C, on chord F If you practice with only Do1, Do3, and Do5 you'll notice the melody note (highest, emphasize note) is always the tonic. But the global feeling will not always be of total rest, because the harmonic context changes how much tension the note have. In the case of Do5 for example, you will feel more tension (usually, you'll feel as if the "Tonic" wants to go to the leading tone, to complete a IV-V-I progression)

the answer buttons are defined as objects that can be dragged around the screen, rather than at fixed locations on the screen.

This is actually on purpose, to enable you to drag answers to their correct "place". For example - if you do a 3 note dictation, you can identify the second note before identifying the first note. The sensitivity of touch in your phone seems to be making this harder than it should be. I'm not sure what is the right way to "improve" this from the perspective of the app development, since I'm developing for a web view (HTML) and it's the hardware, OS and/or web engine responsibility to invoke the events based on user input.

I’m finding that the piano timbre somewhat colors — arguably confuses — the sonorities of the harmonies in ways that, say, a solo-violin/viola/‘cello sound, or an oboe/bassoon sound, or even a French-horn sound would not. Would it be possible to to add options to use other timbres in the exercises?

I agree, and I feel like you raise a valid concern in ear training in general. Even though you can still learn to identify melody in many other instruments using just piano sounds, it makes it slightly harder. There is actually already an open request for that: #196. However, you should know, that I'm not actively making constant improvements to the app, and usually only adds features that are relevant to my own specific needs in my education at the moment. (Given that they are simple enough). The idea of making it open source is that other people with other needs will be able to add new features themselves. So as for the moment I cannot provide any timeline as to when this feature will be available if at all. However - if you possess some programming skills (or know of someone that does) you can program it yourself, and I'll gladly review your code changes.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

mr88cet commented 1 year ago

Getting back to the possibility of incorporating timbres other than piano into OpenEar, if you’re interested, I’d be willing to contribute some samples of various woodwinds (royalty-free, of course).Written by Gary's dancing thumbsOn Apr 10, 2023, at 5:10 PM, GARY MORRISON @.> wrote:Very-helpful clarification points, Clay!  Thanks.Just for whatever it’s worth, I have contributed to open-source projects before, while I was working for Arm.  I doubt I’d be able to scrape up the time to work on it now unfortunately, but … 3 years to retirement, so “who knows” after that!I took the usual Freshman and Sophomore Theory and Ear Training courses waaay back in the late-1980s, and I got to where I was fair at four-part dictation.  However I’ve been kinda swamped with other stuff since, both musical and otherwise (e.g., learning Chinese!).So, I’m trying to whip my ears back into shape, so that I can get back to composition when I retire!  That, partly inspired by picking up a Lumatone (https://youtu.be/cpYBnzaWZqU) — way-cool!Anyway, thanks again for the excellent Ear-Training tool!  Written by Gary's dancing thumbsOn Apr 9, 2023, at 9:27 PM, Clay Herzberg @.> wrote:

I’m not clear how the “Notes with Chords”

Your description in correct. Do1 means the first scale degree as the "1st" of a chord (aka the I chord). Do3 means first scale degree as the "3rd" of a chord (aka the vi chord). For example, in C major you'll have:

Do1 - melody note C, on chord C Do3 - melody note C on chord Am Do5 - melody note C, on chord F If you practice with only Do1, Do3, and Do5 you'll notice the melody note (highest, emphasize note) is always the tonic. But the global feeling will not always be of total rest, because the harmonic context changes how much tension the note have. In the case of Do5 for example, you will feel more tension (usually, you'll feel as if the "Tonic" wants to go to the leading tone, to complete a IV-V-I progression)

the answer buttons are defined as objects that can be dragged around the screen, rather than at fixed locations on the screen.

This is actually on purpose, to enable you to drag answers to their correct "place". For example - if you do a 3 note dictation, you can identify the second note before identifying the first note. The sensitivity of touch in your phone seems to be making this harder than it should be. I'm not sure what is the right way to "improve" this from the perspective of the app development, since I'm developing for a web view (HTML) and it's the hardware, OS and/or web engine responsibility to invoke the events based on user input.

I’m finding that the piano timbre somewhat colors — arguably confuses — the sonorities of the harmonies in ways that, say, a solo-violin/viola/‘cello sound, or an oboe/bassoon sound, or even a French-horn sound would not. Would it be possible to to add options to use other timbres in the exercises?

I agree, and I feel like you raise a valid concern in ear training in general. Even though you can still learn to identify melody in many other instruments using just piano sounds, it makes it slightly harder. There is actually already an open request for that: #196. However, you should know, that I'm not actively making constant improvements to the app, and usually only adds features that are relevant to my own specific needs in my education at the moment. (Given that they are simple enough). The idea of making it open source is that other people with other needs will be able to add new features themselves. So as for the moment I cannot provide any timeline as to when this feature will be available if at all. However - if you possess some programming skills (or know of someone that does) you can program it yourself, and I'll gladly review your code changes.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ShacharHarshuv commented 1 year ago

Hey, when doing research for this, I came across this library: https://nbrosowsky.github.io/tonejs-instruments/demo.html You can see the list of instrument they have. They have the main orchestral woodwinds. This library is open source so it can be used in the app. Even though it's not necessary going to sound like a real instrument, this has enough variety to make sure your mind is not exclusively trained on timbre alone

mr88cet commented 1 year ago

Ah, cool!Written by Gary's dancing thumbsOn Apr 22, 2023, at 8:14 PM, Clay Herzberg @.***> wrote: Hey, when doing research for this, I came across this library: https://nbrosowsky.github.io/tonejs-instruments/demo.html You can see the list of instrument they have. They have the main orchestral woodwinds. This library is open source so it can be used in the app. Even though it's not necessary going to sound like a real instrument, this has enough variety to make sure your mind is not exclusively trained on timbre alone

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

mr88cet commented 1 year ago

So then, it’s “just” a matter of incorporating some subset of these into the code, looping them (where needed), and adding controls (pop-up menu, probably) to choose a timbre, testing the result, and adding to regression-test suite.A non-trivial task certainly, but conceptually doable, if somebody has the time to work on it.Anyway, thanks again for the fantastic Ear-Training program!Written by Gary's dancing thumbsOn Apr 22, 2023, at 8:14 PM, Clay Herzberg @.***> wrote: Hey, when doing research for this, I came across this library: https://nbrosowsky.github.io/tonejs-instruments/demo.html You can see the list of instrument they have. They have the main orchestral woodwinds. This library is open source so it can be used in the app. Even though it's not necessary going to sound like a real instrument, this has enough variety to make sure your mind is not exclusively trained on timbre alone

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ShacharHarshuv commented 1 year ago

It's a bit infrastructural since we need to support multiple instruments in the PlayerService level (which is a wrapper on tonejs I created), and then we need to add logic in the exercises-logic level that adds the option to select an instrument.

I'm actually working on it right now, as I had some free time today. I already integrated with the new samples (so I can switch the sounds hard coded in code), and I'm now working on integrating instrument selection in the PlayerService level (which is trickier than I thought). Hopefully the next step of implementing the UI to select instrument is going to be easier.

mr88cet commented 1 year ago

Waaaay awesome!  Looking forward to it!  That’ll be at least one way in which OpenEar will be more complete than Complete Ear Trainer!One timbre that would be either super-important to exclude, or super-important to include, would be clarinet/bass clarinet.  That, since it has such weak even-numbered harmonics.  It’s either important to exclude because it’s so atypical, or important to include so that we can practice with that tone quality!Anyway, just FWIW…Written by Gary's dancing thumbsOn Apr 23, 2023, at 10:44 AM, Clay Herzberg @.***> wrote: It's a bit infrastructural since we need to support multiple instruments in the PlayerService level (which is a wrapper on tonejs I created), and then we need to add logic in the exercises-logic level that adds the option to select an instrument. I'm actually working on it right now, as I had some free time today. I already integrated with the new samples (so I can switch the sounds hard coded in code), and I'm now working on integrating instrument selection in the PlayerService level (which is trickier than I thought). Hopefully the next step of implementing the UI to select instrument is going to be easier.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ShacharHarshuv commented 1 year ago

The library I'm using has a clarinet but not a bass clarinet. Anyway, once I set it up, it will be easy to add more samples.

mr88cet commented 1 year ago

Superultraexcellent!Written by Gary's dancing thumbsOn Apr 23, 2023, at 11:16 AM, Clay Herzberg @.***> wrote: The library I'm using has a clarinet but not a bass clarinet. Anyway, once I set it up, it will be easy to add more samples.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ShacharHarshuv commented 1 year ago

Hey, just so you know I've encountered some difficulties with deploying the app because of the bundle size. Apparently there is some limitation. That means supporting this feature is going to be more complicated than I thought.

However, if you know how - you can build a version locally from the code and use it now. (I merged this PR - https://github.com/nbrosowsky/tonejs-instruments)

mr88cet commented 1 year ago

Oh, that’s curious, and unfortunate (the size limit)…If you were to just include “a few” other instruments, would that help?Written by Gary's dancing thumbsOn Apr 23, 2023, at 3:10 PM, Clay Herzberg @.***> wrote: Hey, just so you know I've encountered some difficulties with deploying the app because of the bundle size. Apparently there is some limitation. That means supporting this feature is going to be more complicated than I thought. However, if you know how - you can build a version locally from the code and use it now. (I merged this PR - https://github.com/nbrosowsky/tonejs-instruments)

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

ShacharHarshuv commented 1 year ago

I'm not sure, but I can look into it. Anyway, it will only be a temporary fix and not a long term solution.

ShacharHarshuv commented 1 year ago

Hey, good news, I was able to compress the samples and go under the size limit! The build is already in review for google play. It might take a while until I can create a build for iOS, as I rely on a friend to make the builds on his mac machine.

mr88cet commented 1 year ago

Aha!  Fantasmical!  😜I’ll be looking forward to it coming out for iOS (no super-rush, of course).Again, thanks for your great work on it!Written by Gary's dancing thumbsOn Apr 23, 2023, at 9:47 PM, Clay Herzberg @.***> wrote: Hey, good news, I was able to compress the samples and go under the size limit! The build is already in review for google play. It might take a while until I can create a build for iOS, as I rely on a friend to make the builds on his mac machine.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>