Hello, Juce is excellent so far, wanted to alert you to a dicrepancy in the AudioSynthesiser demo

Hello, this is my first post. I want to start by saying my initial tests playing around with creating projects has been very positive, Juce has a lot of thought behind it. It works very well.

Because this is my first post I don’t know my way around, so please don’t be too harsh if I’m putting this post in the wrong place, it’s the neatest thing to right I can see from where I am.

I wanted to make a quick point: There a programmer error in the audio synthesis demo. The octaves on the piano key legends are wrong. They are all written as an octave lower than they really are. So C4 should read C5. A4 is 440Hz.

Not a bit problem of course but if you’re actually testing pitch accuracy or syncing with other instruments using that app, it’s out and you might spend a moment wondering what piece of equipment is wrong and in which direction.


AFAIK there is no universally recognized MIDI octave naming convention.

See also this old forum thread on the topic.

Short story is that back in the day, Roland and Yamaha disagreed on C3 vs C4 and there’s been no consensus since.

The main point to take from that wikipedia entry is:

I disagree.

The main point is standardisation.

The remark it isn’t universally accepted is vacuous: There is absolutely no universally accepted standard for music or instrumentation. So it means little.

Equal temperament isn’t universally accepted. Good luck tuning your instruments to a different system before you start to play.

How do you think concerts tune up?

That’s an outrageous comment. It’s certainly very well accepted in most of the western world.

1 Like

Here I better stop this now, it would be too easy to wind you up. When I quoted “not universally accepted” I was using the quote to refer to the naming of the octaves, especially for MIDI manufacturer. Not so clear maybe, my bad… let’s leave it at that…

Yes, as is the tuning of middle C.

@Vascillious pro-tip: no one cares what you want to call A440 in your program.

You’ll never convince the JUCE team to change their naming convention either, so just code it how you want it called in your app, and deal with the fallout yourself when your customers say “hey, this C3 is actually C4 on my midi keyboard” and “hey, this C4 is actually C3 on my midi keyboard”.
Pick battles you can actually win.

1 Like

Thanks for pointing that out. Like others said before, it is easy enough to use a naming, that works for your users expectations.
Even if we agreed, that this naming is against a standard, it would need a strong technical reason to change it now, since all software, that rely on current behaviour would suddenly behave differently and appear broken.
If this was something, that stops you from achieving something reasonable, we would for sure change that while trying to limit the impact to existing software. But since there is an easy workaround, we can’t justify breaking existing projects.
It is way less personal and definitely not to argue that we are right. It is about making JUCE as useful as possible for all users.

Also on a positive note: you can model a Bösendorfer Imperial without needing negative octaves :wink: . ah no, the other way round…

Edit: just adding the reference to the docs, how to change the displayed text: MidiKeyboardComponent::setOctaveForMiddleC()

“It would need a strong technical reason to change it”.

It’s frankly hard to imagine how much of a stronger argument you could possibly expect:

“The current international pitch standard, using A4 as exactly 440 Hz, had been informally adopted by the music industry as far back as 1926, and A440 became the official international pitch standard in 1955”

Concert pitch has A4 at 440Hz.

Tuning A4 to 440 is the ISO-16 internationally recognised pitch standard.

A4 = 440Hz is standard practice. Settled by the international standards organisation. It’s pretty hard to imagine what higher authority you could reasonably hope for.

It’s standard concert pitch.

Pitch reference:

You are just quoting a Wikipedia article where the author has decided to use some octave naming convention.

The actual ISO standard doesn’t give the note a name like that, at least in the short introduction text (I could not read the whole document because that would need to be paid for) :

Specifies the frequency for the note A in the treble stave and shall be 440 Hz.

Maybe you want to buy the standard document and see what it says : https://www.iso.org/standard/3601.html

Most software simply adds an Octave Offset preference which the user can set…


1 Like

It’s a fact established by common convention that Concert Pitch=A4=440Hz.

Sure, don’t bother to change your app to the globally accepted standard, have an argument about it instead.

If you read the other replies, you would understand that it is NOT universally accepted. Hence you can change how it is displayed with the function mentioned earlier in this thread. Instead of arguing, work towards solutions that bring your product to market quicker.

You smuggled something in. The standard of the concert pitch back in the days was
A = 440:

The A above middle C is often set at 440 Hz. Historically, this A has been tuned to a variety of higher and lower pitches.[1]

The A4 is your attribution, so not valid as argument.

The 440 Hz is not contested by any one, even though current practice is to agree for each performance, and 442 Hz is also often picked. But that is a different discussion.

But it is really a futile discussion, everybody found their own way to deal with the ambiguity, and leaving the option to the user seems like the best bet.

1 Like

“NOT universally accepted”

Talk about false standards. Name something “universally accepted”.

No, it’s obvious from this argument there are people who don’t accept it, which is a shame, because it would be better for everybody if they did so this kind of argument didn’t emerge.

As it happens, it isn’t rejected by anybody whose opinion on the matter is important.

The was no crucial disagreement I could find. There is a technical anomaly in the fact the midi standard is an octave down. That’s by the by. A4 is note 69 in midi code, as I’ve since learned, not being a gadget lover but being a musician used to performing with other people who are also musicians. If you’re so determined to stand by your argument you’re prepared to show up to a concert with your instrument tuned an octave down, only to have argue about it with the other musicians that “it isn’t universally accepted” so you don’t have to change, that’s up to you. I don’t recommend it. What I recommend is to have note 69 in midi software reported as A4 so they can catch up with hundreds of years of musical development.

The midi standard is already archaic, having been developed only a few decades ago. It was developed when technology was far more primitive and the control codes were mapped, probably, to try best to fit human hearing within its 128 note span. I don’t expect what would have been an expedient decision made in the 1980s for the creation of an inexpensive and easily implemented digital instrument interface will ever have an overriding influence on concert performance. The A4, the A above middle C, is 440Hz. Enough important and influential people and institutions agree on the fact for it to really be not very important what you think of it.

@Vascillious you are the only one here complaining about this. You are the only one not accepting the universally accepted solution of “let the user pick the naming convention”. As @bgporter said, there has been no consensus since the 80s when the two keyboard giants of the time released their boards that adopted the midi spec. Bgporter is on the midi 2.0 design spec team, so he would know! As was said previously: let your customers pick how they want 440hz named in your project and move on.

1 Like

“universally accepted solution”

LOL. After you accused me of failing to find a “Universally accepted” I challenged you to find one, “let the user pick the naming convention” Definitely isn’t one.

I don’t care what the midi standard says, and nor do most people in concert performance and I don’t care what bgporter has done in the past.

Ironic then, isn’t it, that the software I’m complaining about Doesn’t allow the user to pick how they want it named. It forces them to accept A4=220. An octave out, for anybody who works in concert performance, and not the introverted world of digital gadgetry.

Not only is it not accepted by me, it also isn’t accepted. A4=220 is also not accepted by the International Standards Organisation (ISO 16), which defined A4=440 in the 1950s. If you go to a grand piano and you hit the A above middle C, it’s 440Hz. You don’t get to decide for yourself, unless you want to pay a piano tuner to come over and tune your entire instrument an octave too low.

Whatever note 440Hz is on the midi standard, or even if it appears at all, is of no consequence. It’s a standard still widely enough accepted by professional musicians for the midi standard to have had no impact at all outside of electronic gadgetry.

“Universal standard”? You want to speak to a musician abotu that.

There is no contestion that the A above the middle-C is 440Hz.
There is no contestion, that 440 Hz is midi note number 69.
What is seemingly not defined is, which octave number starts at the “middle-C”.

See also on the midi.org forum:

For MIDI, middle C is always note number 60 even though it may be another pitch or described by a different octave designation - C3, C4 or C5.