2323// SOFTWARE.
2424//
2525// ---------------------------------------------------------------------------------------
26+ #include < array>
2627#include < iostream>
2728#include < iomanip>
2829#include < cmath>
@@ -54,7 +55,7 @@ std::pair<std::string, float> closestNoteX(float freq) {
5455
5556 // Note names (use sharps)
5657 static constexpr std::array<const char *, 12 > names{
57- " C- " ," C#" ," D- " ," D#" ," E- " ," F- " ," F#" ," G- " ," G#" ," A- " ," A#" ," B- "
58+ " C" ," C#" ," D" ," D#" ," E" ," F" ," F#" ," G" ," G#" ," A" ," A#" ," B"
5859 };
5960
6061 // Index within octave [0..11], handle negatives safely
@@ -85,4 +86,25 @@ int main()
8586 std::cout << std::setprecision (4 ) << (freq * 128 ) << " " << (freq / 44100.0 ) << " " << (freq / 48000.0 ) << std::endl;
8687 // std::cout << i << " : " << freq << " Hz - (" << closestNote(freq) << "Hz, " << closestNote(freq*2) << "Hz, " << closestNote(freq*4) << "Hz)" << std::endl;
8788 }
89+ for (int i = 0 ; i < 256 ; ++i) {
90+ auto freq = 4000 * std::pow (2 .0f , (i - 64 ) / 48 .0f ) / 128 ;
91+ std::cout << " | " << std::setw (3 ) << i << std::fixed << std::setprecision (2 );
92+ auto [note, frac] = closestNoteX (freq);
93+ if (std::fabs (frac) < 0 .1f )
94+ std::cout << " | " << freq << " Hz ~" << note;
95+ else
96+ std::cout << " | " << freq << " Hz" ;
97+ auto [note2, frac2] = closestNoteX (freq * 2 );
98+ if (std::fabs (frac2) < 0 .1f )
99+ std::cout << " | " << freq*2 << " Hz ~" << note2;
100+ else
101+ std::cout << " | " << freq*2 << " Hz" ;
102+ auto [note3, frac3] = closestNoteX (freq * 4 );
103+ if (std::fabs (frac3) < 0 .1f )
104+ std::cout << " | " << freq*4 << " Hz ~" << note3;
105+ else
106+ std::cout << " | " << freq*4 << " Hz" ;
107+ std::cout << " | " << (freq * 128 ) << " | " << std::setprecision (6 ) << (freq / 44100.0 ) << " | " << (freq / 48000.0 ) << " |" << std::endl;
108+ // std::cout << i << " : " << freq << " Hz - (" << closestNote(freq) << "Hz, " << closestNote(freq*2) << "Hz, " << closestNote(freq*4) << "Hz)" << std::endl;
109+ }
88110}
0 commit comments