[HN Gopher] Show HN: A piano chord reference tool
       ___________________________________________________________________
        
       Show HN: A piano chord reference tool
        
       Author : jnkkkk
       Score  : 86 points
       Date   : 2022-08-27 19:53 UTC (3 hours ago)
        
 (HTM) web link (pianochord.io)
 (TXT) w3m dump (pianochord.io)
        
       | boredemployee wrote:
       | Nice. Would love to see inversions as well. I struggle a lot with
       | rootless inversions :|
        
         | jnkkkk wrote:
         | Thanks! Yes, inversions will be there in the near future.
        
       | kampsduac wrote:
       | One of my first personal projects when learning how to program
       | was generating sheet music for scales. Maybe I'll try to adapt
       | some of the logic here to do that, someday.
       | 
       | I love the spirit of this. Simple reference tools for mobile
       | devices or tablets, maybe with the ability to print things, could
       | be leveraged more in the world.
       | 
       | Share any tools if you know of them!
        
         | jacquesm wrote:
         | Hah cool! That is how I more or less discovered 'structured
         | programming'. I had already made three tries at that and failed
         | miserably. Then 'functions' came along and suddenly I was able
         | to write code in the 1000's of lines and not get lost. (Before
         | then it was all GOSUB 3300 etc.)
         | 
         | The BBC Micro (the machine I was working on at the time) had a
         | version of Basic that allowed for procedures (something that
         | doesn't return a value) and functions to be defined with a name
         | attached. It's incredible if you think about it from a present
         | day perspective that in that sense the original BASIC was even
         | worse than assembler, which at least allowed you to attach a
         | label to an address.
        
       | S_A_P wrote:
       | Love it- was just digging out my old laminated chord chart to re-
       | learn them. This is way more convenient! Would love to see this
       | expand to scales and modes too!
        
         | jnkkkk wrote:
         | Thanks! Yeah, my next step would be adding scales and modes to
         | it.
        
       | randyrand wrote:
       | How are you rendering the pianos images? Can you show the code
       | for it?
        
         | jnkkkk wrote:
         | The code is open sourced on Github.
         | https://github.com/JNKKKK/pianochord.io
        
       | marvin wrote:
       | This is a great reference tool. Something like this must have
       | existed already, but I couldn't find it for the life of me.
       | 
       | Something as simple as wanting to play simple guitar pieces based
       | on chords, but struggling to figure out simple bar chord patterns
       | for each of the less common chord families, and being unable to
       | construct them on my own since I don't know enough of the theory
       | to do it from the ground up. Thanks!
        
         | mkl wrote:
         | Searching [guitar chords] brings up some like this, e.g.
         | https://www.all-guitar-chords.com/ which is quite similar but
         | shows fingerings too.
         | 
         | For piano, https://www.pianochord.org/ has been around a while
         | I think, but doesn't seem to play the chord so you can hear it.
        
         | jnkkkk wrote:
         | Totally agree. I sometime also feel struggling to construct
         | chords in my mind. Then I realize the importance of having such
         | tool.
        
       | Stenzel wrote:
       | OK for beginners, but there are lots of nice voicings missing,
       | also those where the root note is not played at all.
        
         | jacquesm wrote:
         | It looks like it is just out of the oven, and it's a pretty
         | good starting point to flesh it out, the hard work has been
         | done.
        
       | poisonarena wrote:
       | This is very cool but geting lots of clicking/artifacts on
       | firefox
        
         | jnkkkk wrote:
         | Thanks! It's just out of the oven so I didn't have chance to
         | test on all major browsers. Will improve on browser
         | compatibility in the future.
        
         | mkl wrote:
         | For me it sounds fine on Firefox on Android and Firefox on
         | Linux.
        
       | Apfel wrote:
       | Can't believe how useful this is. I've been working my way back
       | in to learning piano during the pandemic and have been learning
       | songs I like mostly through guitar chords websites and playing
       | the right hand by ear as my sight-reading is atrocious. This will
       | really help my progress with this method for the more complex
       | chords.
        
       | chaosprint wrote:
       | very nice.
       | 
       | pay attention to the chord that has 4 tones. it seems that you
       | simply add up the amplitude so we always get some distortion.
        
         | jnkkkk wrote:
         | Nice catch. Thanks for the advice! Really appreciate it.
        
       | jrm4 wrote:
       | Awesome. I'm trying to pick it back up and go further, and I
       | realized that sheet music bores me and I want to try just finding
       | chords of songs and banging them out.
       | 
       | Relatedly, I ended up making a very kludgey tool (in bash, ASCII
       | graphics) that would let me enter a few chords and would cycle
       | through them with on the same screen-piano-keyboard (e.g. to
       | better see the "transitions.")
       | 
       | I'm kind of surprised I've never seen anything like that out
       | there done more formally?
        
         | jnkkkk wrote:
         | Interesting! The idea to visualize the "transitions" sounds
         | very useful.
        
       | moosedev wrote:
       | Nice! Couple of minor (haha) issues:
       | 
       | * The label "Rising octave" on the octave-up button doesn't make
       | sense. Maybe you meant "Higher octave", assuming the "Lower" in
       | the "Lower octave" button is the adjective form of "lower". If
       | "Lower" is acting as a verb, however, then "Raise octave" would
       | be consistent, but I don't think it sounds very natural. "Octave
       | up" and "Octave down" might be more natural based on my
       | recollection of music software and hardware I've used.
       | 
       | * As another poster noted, the (FM?) synthesizer is clipping
       | badly when it plays chords. It's noticeable on basic 3-note
       | triads, but it's much worse on chords with many extension tones,
       | like a C13.
       | 
       | Thanks for sharing.
        
         | jnkkkk wrote:
         | Thanks for the advice! I totally agree with it. "Octave up" and
         | "Octave down" also sound more natural to me.
         | 
         | And nice catch! Yes, the synthesizer does have some issue in
         | browsers other than Chrome. I'm working on that.
         | 
         | Thanks again! I really appreciate it!
        
           | moosedev wrote:
           | Sure thing! BTW I am using Chrome on Windows 10.
        
           | moefh wrote:
           | Really good stuff!
           | 
           | If I can give another suggestion: I think it would be much
           | more useful for beginners to see the common alias of the
           | chord in the main table (maybe below the name that already
           | exists?).
           | 
           | (This is wrong, see the reply below:) For example, a beginner
           | may see "G7" in the wild and not know it's a G minor 7 (and
           | not a G major 7). They'd have to click the chords and search
           | the alias list. If "G7" was written below "G minor 7", it
           | would make things much easier.
           | 
           | Also, I think it would look better if the names in the main
           | table were a bit more consistent. For exmaple, you have "G
           | major ninth" but "Gmaj13". I think it would be better to have
           | them as "Gmaj9"/"Gmaj13" or "G major ninth"/"G major
           | thirteenth".
        
             | moosedev wrote:
             | Nit: G7 denotes a G dominant 7 (i.e. natural 3rd, flat
             | 7th), not a G minor 7. G minor 7 (flat 3rd, flat 7th) is
             | abbreviated Gm7 or G-7. (In my experience, the "Gm7" form
             | is common in "official" printed guitar & piano songbooks,
             | while G-7 is common in jazz lead sheets and fakebooks.)
        
               | moefh wrote:
               | Right, total brain fart on my part! (And I actually had
               | never seen the "G-7" notation)
               | 
               | Still, I think it would be much more useful to
               | consistently have the chord abbreviations in the main
               | table.
        
               | moosedev wrote:
               | I still stumble over the "-7" version sometimes. I grew
               | up on "Gm7" :)
               | 
               | Example from Google image search:
               | https://www.musikalessons.com/blog/wp-
               | content/uploads/2017/0... . At least this one uses maj7
               | for major 7, rather than M7 or ^7 :)
        
       | josephcsible wrote:
       | Sometimes when I hit the play button for a chord, the notes don't
       | all start at the same time. I can't figure out a pattern for when
       | this works and when it doesn't.
        
       | kzrdude wrote:
       | My favourite way of "chunking" chords (i.e how to think of them
       | to remember them) is to "decompose" them to think about them in a
       | different way.
       | 
       | For example: Think of Bbmaj7 as just Dm with Bb as the bass. Bb +
       | Dm. It turns out that this pattern always works for the maj7
       | chords.
       | 
       | Another example: Cmaj7 "is" Em with C as the bass. Think of Cm7
       | as Eb with C as the bass. C7 is Edim with C as the bass.
       | 
       | These decompositions are just a different way to see the same
       | chords, maybe it helps some people to form
       | associations/connections about these shapes in some way. Of
       | course, once played enough, a chord is simply remembered as it
       | is, its own thing.
        
       | behnamoh wrote:
       | Every time such apps are shown on HN, I notice a lot of attention
       | by the community. It seems a lot of hackers also play music!
        
       | issa wrote:
       | I wish I had a better ear and could tell you what sounds funny to
       | me about the piano at the top. Can anyone explain why it sounds
       | off to me?
        
         | InCityDreams wrote:
         | Mixing sharps and flats? I chose c as root and db (d flat) is
         | in the image...but so is f# (f sharp).
         | 
         | I have no problems explaining ie fb (f flat) or e# (e sharp)
         | etc, in certain circumstances, but I'm a great believer in:
         | don't mix the two (sharps and flats).
        
         | moosedev wrote:
         | Taking a guess at what you're noticing but might not have a
         | framework/vocabulary for...
         | 
         | It sounds like FM synthesis[0] to me (so either an embedded FM
         | software synthesizer or simply replaying samples of FM
         | synthesis), so the timbre is quite unlike a "real" piano or PCM
         | samples of a real piano. Timbre is a kind of "color" of
         | "quality" of a sound - in my head it's similar to how different
         | materials feel different to the touch. A violin and a trumpet
         | can play the same "note" but their sounds have very different
         | timbres. An apple and a ball might both appear red but have
         | different surface textures.
         | 
         | The "piano" in the app sounds like the piano patches (presets)
         | on FM-based synthesizers from the 1980s[1], where the designers
         | tried to approximate the timbre of a piano using the limited
         | (but fun!) possibilities of FM, while the transients and
         | harmonics produced by a real acoustic piano are more complex.
         | 
         | The pitches and temperament sound OK to me, so I think what you
         | are are hearing is the timbre. That is, the app is playing the
         | "right" notes, but it's as if you're hearing a "different
         | instrument", albeit one that is an early digital approximation
         | of a piano sound.
         | 
         | [0]
         | https://en.wikipedia.org/wiki/Frequency_modulation_synthesis
         | 
         | [1] e.g. the Yamaha DX7; here's one of its "piano" sounds for
         | comparison: https://www.youtube.com/watch?v=F3rrjQtQe5A&t=214s
        
       | jacquesm wrote:
       | Very nice! Request permission to link to it from pianojacq.com in
       | the manual.
        
         | jnkkkk wrote:
         | Sure! I'm happy to hear that.
        
           | jacquesm wrote:
           | Ok, done! Let's hope I didn't break anything because I'm in
           | the middle of a huge refactoring job :) I really hope you
           | will be successful with this, I love browser based music
           | tools.
        
             | jnkkkk wrote:
             | Thanks! I like the idea of pianojacq.com. Good luck on your
             | refactoring job!
        
       | mkl wrote:
       | This is great! It would be really useful to be able to select and
       | deselect notes on the top piano to construct new chords based on
       | these ones (and it could detect when you've constructed one it
       | knows).
       | 
       | Showing the sheet music of the chord in the top info box would
       | also be very helpful.
       | 
       | A list of similar chords links in the chord info box would be
       | neat.
       | 
       | An "automatically play chord" option would make it super easy to
       | find a chord you want by sound.
       | 
       | Possibly out of scope, but it would great to be able to put in a
       | sequence of chords and see things about the transitions, e.g.
       | notes in common.
        
       | leetrout wrote:
       | On ios safari hitting play just causes a clicking noise.
        
         | NonNefarious wrote:
         | Playback doesn't work on desktop Safari either.
         | 
         | <unhappy emoji>
        
         | jnkkkk wrote:
         | Thanks! Nice catach. It's just out of the oven so I didn't have
         | chance to test on all major browsers. Will improve on browser
         | compatibility in the future.
        
           | leetrout wrote:
           | Awesome. Thanks!
        
       | someweirdperson wrote:
       | Aliases seem to be incomplete in a certain sense. E.g., Gm#5 uses
       | the same notes as Eb major.
        
       ___________________________________________________________________
       (page generated 2022-08-27 23:00 UTC)