Measuring the VIC chip sound output

Modding and Technical Issues

Moderator: Moderators

Post Reply
Commander#1
Vic 20 Drifter
Posts: 38
Joined: Wed Feb 25, 2009 1:48 am

Re: any music programs?

Post by Commander#1 »

hasselhoffindustries wrote:is there any music programs dor the vic 20? have any of you written a music program for the vic 20?
Hi guys (and maybe gals!) -

In going through my notes (from years gone by) I came across the following - (it was meant to be played at the end of a
successful game using a sub-routine). In the VIC, there are three oscillators - or sound registers - or "speakers"; memory
locations decimal 36874, 36875 and 36876 corresponding to low voice, medium voice and high voice respectfully. 36877
produces noise, and 36878 is used for volume (0 to 15). Poking a number from 128 to 254 into the sound registers produces
numerous single tones (and poking 15 into 36878 will allow you to HEAR those tones). Although all of those numbers did
produce a tone, only certain tones came close to those produced on a piano - and even those were not quite concert quality,
but close enough to recognize the tune being played. These tones are heard through the speaker of your TV set and,
therefore, are found on the output pin of the audio/video connector (pin 3 to be exact). By the way, I built a break-out box
for the audio/video lines and found the TV used the "video low" pin # 4 (it's internally terminated @ 50 ohms to ground -
"video high" pin # 5 is terminated @ 10 kohms and produces only noise on the screen). And, yes, you can patch pin # 3
into your stereo "aux" (auxillary) input and REALLY hear your music!!! I hooked up a frequency counter to pin #3 and
starting with register 36874 (low voice) and a small program that poked numbers into that register starting with 128
and increasing by one for each iteration, wrote down everything I found. My reference is the 12 note equally tempered
musical scale. I will list only the tones of interest as compared to the scale. Be advised - all tones are close; none
are dead on. Actual frequency will be followed by scale frequency. This is my VIC - I don't know how close any other
VIC would be.

Register 36874:
Poke 186 Freq. 58 Hz (58.270) A# Third A# below Mid C
. . . . 190 . . . . .61 . . .(61.735) B Third B below M.C
. . . . 194 . . . . .65 . . .(65.406) C Sec'd C below M.C
. . . . 197 . . . . .69 . . .(69.296) C# Sec'd C# below M.C
. . . . 200 . . . . .73 . . .(73.416) D Sec'd D below M.C
. . . . 204 . . . . .78 . . .(77.872) D# Sec'd D# below M.C
. . . . 206 . . . . .82 . . .(82.407) E Sec'd E below M.C
. . . . 209 . . . . .87 . . .(87.307) F Sec'd F below M.C
. . . . 212 . . . . .93 . . .(92.499) F# Sec'd F# below M.C
. . . . 214 . . . . .98 . . .(97.999) G Sec'd G below M.C
. . . . 216 . . . . 103. . .(103.83) G# Sec'd G# below M.C
. . . . 219 . . . . 111. . .(110.00) A Sec'd A below M.C
. . . . 220 . . . . 115. . .(116.54) A# Sec'd A# below M.C
. . . . 223 . . . . 125. . .(123.47) B Sec'd B below M.C
. . . . 224 . . . . 129. . .(130.81) C 1st C below M.C
. . . . 226 . . . . 138. . .(138.59) C# 1st C# below M.C
. . . . 228 . . . . 148. . .(146.83) D 1st D below M.C
. . . . 229 . . . . 154. . .(155.56) D# 1st D# below M.C
. . . . 231 . . . . 166. . .(164.81) E 1st E below M.C
. . . . 232 . . . . 174. . .(174.61) F 1st F below M.C
. . . . 233 . . . . 182. . .(184.99) F# 1st F# below M.C
. . . . 235 . . . . 200. . .(195.99) G 1st G below M.C
. . . . 236 . . . . 210. . .(207.65) G# 1st G# below M.C
. . . . 237 . . . . 222. . .(220.00) A 1st A below M.C
. . . . 238 . . . . 235. . .(233.08) A# 1st A# below M.C
. . . . 239 . . . . 250. . .(246.94) B 1st B below M.C
. . . . 240 . . . . 266. . .(261.62) C Middle C (M.C)
. . . . 241 . . . . 285. . .(277.18) C# 1st C# above M.C
. . . . 242 . . . . 307. . .(311.13) D# 1st D# above M.C
. . . . 243 . . . . 333. . .(329.63) E 1st E above M.C
. . . . 244 . . . . 363. . .(369.99) F# 1st F# above M.C
. . . . 245 . . . . 399. . .(391.99) G 1st G above M.C
. . . . 246 . . . . 444. . .(440.00) A 1st A above M.C
. . . . 247 . . . . 499. . .(493.88) B 1st B above M.C

Register 36875:
Poke 132 Freq. 65 hz (65.406) C 2nd C below M.C
. . . . 139 . . . . 69 . . .(69.296) C# 2nd C# below M.C
. . . . 145 . . . . 73 . . .(73.416) D 2nd D below M.C
. . . . 152 . . . . 78 . . .(77.782) D# 2nd D# below M.C
. . . . 158 . . . . 82 . . .(82.407) E 2nd E below M.C
. . . . 163 . . . . 87 . . .(87.307) F 2nd F below M.C
. . . . 168 . . . . 92 . . .(92.499) F# 2nd F# below M.C
. . . . 173 . . . . 97 . . .(97.999) G 2nd G below M.C
. . . . 178 . . . . 104. . .(103.83) G# 2nd G# below M.C
. . . . 182 . . . . 109. . .(110.00) A 2nd A below M.C
. . . . 186 . . . . 116. . .(116.54) A# 2nd A# below M.C
. . . . 190 . . . . 123. . .(123.47) B 2nd B below M.C
. . . . 194 . . . . 131. . .(130.81) C 1st C below M.C
. . . . 197 . . . . 138. . .(138.59) C# 1st C# below M.C
. . . . 200 . . . . 145. . .(146.83) D 1st D below M.C
. . . . 203 . . . . 154. . .(155.56) D# 1st D# below M.C
. . . . 206 . . . . 163. . .(164.81) E 1st E below M.C
. . . . 209 . . . . 174. . .(174.61) F 1st F below M.C
. . . . 212 . . . . 186. . .(184.99) F# 1st F# below M.C
. . . . 214 . . . . 195. . .(195.99) G 1st G below M.C
. . . . 216 . . . . 205. . .(207.65) G# 1st G# below M.C
. . . . 219 . . . . 222. . .(220.00) A 1st A below M.C
. . . . 221 . . . . 235. . .(233.08) A# 1st A# below M.C
. . . . 223 . . . . 250. . .(246.94) B 1st B below M.C
. . . . 224 . . . . 258. . .(261.62) C Middle C (M.C)
. . . . 226 . . . . 278. . .(277.18) C# 1st C# above M.C
. . . . 228 . . . . 296. . .(293.67) D 1st D above M.C
. . . . 229 . . . . 307. . .(311.13) D# 1st D# above M.C
. . . . 230 . . . . 320. . .(329.63) E 1st E above M.C
. . . . 232 . . . . 353. . .(349.23) F 1st F above M.C
. . . . 233 . . . . 370. . .(369.99) F# 1st F# above M.C
. . . . 234 . . . . 386. . .(391.99) G 1st G above M.C
. . . . 235 . . . . 409. . .(415.31) G# 1st G# above M.C
. . . . 236 . . . . 430. . .(440.00) A 1st A above M.C
. . . . 238 . . . . 478. . .(466.16) A# 1st A# above M.C
. . . . 239 . . . . 506. . .(493.88) B 1st B above M.C
. . . . 240 . . . . 536. . .(523.25) C 1st C above M.C
. . . . 241 . . . . 580. . .(587.33) D 2nd D above M.C
. . . . 242 . . . . 616. . .(622.25) D# 2nd D# above M.C
. . . . 244 . . . . 735. . .(739.99) F# 2nd F# above M.C

Register 36876:
Poke 133 Freq. 131 hz (130.81) C 1st C below M.C
. . . . 140 . . . . 139. . .(138.59) C# 1st C# below M.C
. . . . 146 . . . . 147. . .(146.83) D 1st D below M.C
. . . . 152 . . . . 155. . .(155.56) D# 1st D# below M.C
. . . . 158 . . . . 165. . .(164.81) E 1st E below M.C
. . . . 163 . . . . 174. . .(174.61) F 1st F below M.C
. . . . 168 . . . . 184. . .(184.99) F# 1st F# below M.C
. . . . 173 . . . . 195. . .(195.99) G 1st G below M.C
. . . . 178 . . . . 208. . .(207.65) G# 1st G# below M.C
. . . . 182 . . . . 219. . .(220.00) A 1st A below M.C
. . . . 186 . . . . 232. . .(233.08) A# 1st A# below M.C
. . . . 190 . . . . 246. . .(246.94) B 1st B below M.C
. . . . 194 . . . . 262. . .(261.62) C Middle C (M.C)
. . . . 197 . . . . 276. . .(277.18) C# 1st C# above M.C
. . . . 201 . . . . 296. . .(293.67) D 1st D above M.C
. . . . 204 . . . . 313. . .(311.13) D# 1st D# above M.C
. . . . 206 . . . . 326. . .(329.63) E 1st E above M.C
. . . . 209 . . . . 347. . .(349.23) F 1st F above M.C
. . . . 212 . . . . 372. . .(369.99) F# 1st F# above M.C
. . . . 214 . . . . 390. . .(391.99) G 1st G above M.C
. . . . 217 . . . . 420. . .(415.31) G# 1st G# above M.C
. . . . 219 . . . . 444. . .(440.00) A 1st A above M.C
. . . . 221 . . . . 470. . .(466.16) A# 1st A# above M.C
. . . . 223 . . . . 499. . .(493.88) B 1st B above M.C
. . . . 224 . . . . 516. . .(523.25) C 1st C above M.C
. . . . 226 . . . . 551. . .(554.36) C# 2nd C# above M.C
. . . . 228 . . . . 592. . .(587.33) D 2nd D above M.C
. . . . 229 . . . . 615. . .(622.25) D# 2nd D# above M.C
. . . . 231 . . . . 666. . .(659.26) E 2nd E above M.C
. . . . 232 . . . . 695. . .(698.46) F 2nd F above M.C
. . . . 233 . . . . 726. . .(739.99) F# 2nd F# above M.C
. . . . 235 . . . . 799. . .(783.99) G 2nd G above M.C
. . . . 236 . . . . 841. . .(830.61) G# 2nd G# above M.C
. . . . 237 . . . . 888. . .(880.00) A 2nd A above M.C
. . . . 238 . . . . 940. . .(932.32) A# 2nd A# above M.C

That's the best I could come up with given the constraints of the VIC. For those who want to know why Middle C is given that
moniker it is because of where it is found on the written page of music - not because of where it is on the piano. On a sheet
of music for multiple voices, you will find two separate staffs - or groups of lines and spaces; each staff is made up of 5
lines and 4 spaces. If a line were drawn 1 space down from the bottom of the upper staff (thus giving the staff 6 lines and
5 spaces) that line would be Middle C. If a line was drawn 1 space up from the top of the lower staff (thus giving it 6 lines
and 5 spaces), that line would be the very same Middle C. That's how the two staffs are referenced to each other. Together,
they can represent almost three octaves worth of notes. More lines can be added as needed if the range of notes increases.
Looking at a piano keyboard, it has 88 white keys interspersed with a number of black keys - the black keys are grouped in
two's and three's. Locating the middle of the keyboard by eye, you will notice a group of two black keys just to your left.
The white key on the left side of the left black key is Middle C of the sheet music. When my oldest daughter figured that out,
she took a marker and nailed ALL of the keys. Just remember - the black keys play just the #(sharps) and b(flats) of the
keys around it; for example, the black key for A# (A sharp) is the same key for Bb (B flat) - it just depends on the song-
writer's intent. The program that I'm going to introduce here is not meant to be an all encompassing thing - I just wanted to
make the VIC DO something. In this case, to play a short song at the end of a successful game. I found the song in the
music section of the local library. I placed the song into a 'read/data' statement with each note containing two pieces of
information. The first piece is the note to be played and the second piece is how long to play it. Turning on register 36878
(volume) with the maximum number of 15 then reducing the number towards 0 gives a fairly decent representation of a
piano. Here goes:

10 print "[clr]": S3 = 36876: S5 = 36878
20 readA,B: if A = -1 then poke S3,0: end
30 poke S3,A: for C = 15 to B step -1: poke S5,C: D = 1 to 108: next: next: poke S5,0: goto 20
40 Data 223,10, 219,14, 219,14, 214,14, 21,14, 214,14, 219,7, 206,10, 219,14, 219,10, 223,14
50 Data 219,14, 212,14, 206,14, 201,14, 214,7, 214,12, 0,14, 223,14, 223,12, 223,12, 217,14
60 Data 219,14, 223,14, 201,14, 194,12, 223,12, 219,7, 223,14, 219,12, 214,14, 206,14, 214,12
70 Data 223,14, 219,7, 219,14, 0,12, 219,14, 223,10, 219,14, 219,14, 214,14, 212,14, 212,14
80 Data 219,7, 206,7, 219,10, 223,14, 219,14, 212,14, 206,14, 201,14, 214,7, 214,7 214,14
90 Data 214,14, 219,14, 223,14, 214,14, 223,14, 219,14, 201,14, 214,14, 214,14, 219,14, 223,14
100 Data 214,12, 201,12, 206,14, 219,12, 206,14, 212,13, 214,15, 219,14, 212,14, 214,7, 214,14
110 Data -1

Comments: C = volume decay of each note; D = length of time at each step of C. Changing B or C will change the timing
of each note. Now it is time for me to run for cover as everybody expresses their opinion. Thanks for hearing me out,
kids.


Phil Potter.

p.s. I believe the song is entitled "Yankee Doodle", composed some time around the period of our Revolution. Cheers!!
Last edited by Commander#1 on Sun May 10, 2009 7:31 pm, edited 4 times in total.
The earth is - oh my gosh - ROUND ! !
davidv_
Vic 20 Hobbyist
Posts: 136
Joined: Wed Apr 26, 2006 4:08 pm

Re: any music programs?

Post by davidv_ »

And what about just using those functions?

N: bass enable, R: freq f=Phi2/256/(128-(($900a+1)&127))
O: alto enable, S: freq f=Phi2/128/(128-(($900b+1)&127))
P: soprano enable, T: freq f=Phi2/64/(128-(($900c+1)&127))
Q: noise enable, U: freq f=Phi2/32/(128-(($900d+1)&127))
* PAL: Phi2=4433618/4 Hz
* NTSC: Phi2=14318181/14 Hz

those are what i used in my vic emulator synthesizer, of course i did compare with the "real thing"...
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Formulas are great, but when they end up with non-integer results, you should think twice before going on. I have also fiddled a lot with well tempered scales on the VIC-20 and pulled my hair both once and twice. To make matters worse, what may sound OK on one VIC-20 doesn't need to sound as good on another VIC. Of course there is a great difference between NTSC and PAL machines, which makes you pull your hair a third time.

In the end, I came up with a 2.5 octave scale that I find somewhat satisfying. Not perfect, but decent for most keys. One has to watch out though, just like a 18th century pianoforte was tuned to sound great in one key but awful in another, so does the VIC-20.

Anyway, I doubt the original poster has much interest in well tempered scales since he asked for software to compose music on the VIC-20. It would suggest this software already has a music scale defined, although it would be nice if it can be altered to your personal needs.

Besides VIC Tracker and Fisichella, do we know any VIC-20 or even PC program that lets you compose music that can be used in your own program? I can't remember hearing about anyone else, except my own method of composing which though only indirectly is related to the VIC-20.
Anders Carlsson

Image Image Image Image Image
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: any music programs?

Post by Mike »

I picked up three random measurements in voice 36875, and compared them to the formulas applied to an NTSC VIC-20:
Commander#1 wrote:Register 36875:
. . . . 163 . . . . 87 . . .(87.307) F 2nd F below M.C
. . . . 182 . . . . 109. . .(110.00) A 2nd A below M.C
. . . . 209 . . . . 174. . .(174.61) F 1st F below M.C
with:

Code: Select all

f=1022727/128/(128-((x+1)&127)); x=163, 182, 209
I got "theoretical" values of f=86.85 Hz, f=109.45 Hz, and f=173.70 Hz, respectively.

While this confirms more or less you used an NTSC VIC, a PAL VIC will produce a key shift of roughly one semi-tone higher. As long as the VIC need not play alongside an orchestra, this doesn't matter anyway; more important is, that the intervals are harmonious.

However, your choice of fitting notes was rather subjective, as the three voices are separated by one octave each; all three scales should use the same numbers, which you didn't do:

Code: Select all

36874:
. . . . 200 . . . . .73 . . .(73.416) D Sec'd D below M.C 
. . . . 204 . . . . .78 . . .(77.872) D# Sec'd D# below M.C 
. . . . 206 . . . . .82 . . .(82.407) E Sec'd E below M.C 

36875:
. . . . 200 . . . . 145. . .(146.83) D 1st D below M.C 
. . . . 203 . . . . 154. . .(155.56) D# 1st D# below M.C 
. . . . 206 . . . . 163. . .(164.81) E 1st E below M.C 
Ultimately, the reference is 440 Hz, 1st A above middle C.

The equally tempered scale is calculated thus:

f(x) := 440 Hz*2^(x/12), with x being the semitones above, or below A.

Stuffing this into the formulas above (for 36875), we get:

440 Hz*2^(x/12)=phi/128/(255-k) (with allowed values of k=128 .. 254, k=127 implies k=255)

<=> k=255-1022727/128/440/2^(x/12) (for NTSC)
<=> k=255-18.159219/2^(x/12)

or

<=> k=255-1108405/128/440/2^(x/12) (for PAL)
<=> k=255-19.680478/2^(x/12)

putting these formula into a spread-sheet, and selecting allowable ranges for x, we get:

Code: Select all

Note:   x  NTSC    PAL

C     -33  132.83  122.60 <- not reachable in PAL
C#    -32  139.69  130.03
D     -31  146.16  137.05
D#    -30  152.27  143.67
E     -29  158.04  149.91
F     -28  163.48  155.81
F#    -27  168.61  161.38
G     -26  173.46  166.63
G#    -25  178.04  171.59
A     -24  182.36  176.27
A#    -23  186.43  180.69
H     -22  190.28  184.86
C     -21  193.91  188.80
C#    -20  197.34  192.51
D     -19  200.58  196.02
D#    -18  203.63  199.33
E     -17  206.52  202.45
F     -16  209.24  205.40
F#    -15  211.80  208.19
G     -14  214.23  210.81
G#    -13  216.52  213.29
A     -12  218.68  215.63
A#    -11  220.71  217.84
H     -10  222.64  219.93
C      -9  224.45  221.90
C#     -8  226.17  223.75
D      -7  227.79  225.51
D#     -6  229.31  227.16
E      -5  230.76  228.72
F      -4  232.12  230.20
F#     -3  233.40  231.59
G      -2  234.61  232.90
G#     -1  235.76  234.14
A       0  236.84  235.31
A#      1  237.85  236.42
H       2  238.82  237.46
C       3  239.72  238.45
I left two figures behind the point: to POKE the note, you'd round to the nearest integer. 3,4,5,6,7 behind the point would indicate, that neither the floor, nor the ceil integer will give a good representation of the note. In the lower part of the scale, this doesn't matter much, as the resolution is good enough to get the note roughly right. But in the upper part, the resolution is bad, as one semi-tone is nearly one number higher in POKE number, and NTSC D#, F#, G or PAL D, F#, A are just de-tuned.
Thanks for hearing me out, kids.





(Emphasis by me): no, not really.

Anyway, I might try out your composition this evening, how it sounds. ;)

Greetings,

Michael
Last edited by Mike on Mon May 11, 2009 8:40 am, edited 2 times in total.
davidv_
Vic 20 Hobbyist
Posts: 136
Joined: Wed Apr 26, 2006 4:08 pm

Re: any music programs?

Post by davidv_ »

I got a few tricks to play "physchoacoustically tuned stuff" with the VIC formulas, but im afraid its really in PC land only (VSTi). Not a new phenomenon, just rapidly alternate between the two closest ET notes with time-proportional bias on the closer one. (easier with C++ than 6502 asm for sure:)
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

If I'd make myself the trouble of hooking the 6502 just to get the notes "right" - with frequency modulation -, I can quite as well fire up SID Vicious to synthesize the waveforms in real time.

Greetings,

Michael
a1bert
Vic 20 Dabbler
Posts: 96
Joined: Mon Jan 23, 2006 12:49 am

Re: any music programs?

Post by a1bert »

Mike wrote:f(x) := 440 Hz*2^(x/12)
You should try to find the "best value for 440 Hz" so that the scales have the least mean square error.. After all, the absolute frequencies matter little, while the "scaliness" matters the most.

Like mentioned, fractional-number accuracy can be achieved by alternating two values with PWM.

-Pasi
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

Well, I actually did this some time ago ...

I noticed the fact, that 255(127), 191, 223, and 239 were exact octaves, as (255-127)=128, (255-191)=64, (255-223)=32, and (255-239)=16.

Then I identified these notes with C (which indeed also gives a compromise between PAL, and NTSC), and wrote a small program to calculate the total error when that reference was shifted up to plus or minus one quarter-tone. The error is minimized, when one remains at these four values for C, leading to this table:

Code: Select all

C     255    191    223
C#    134    195    225
D     141    198    226
D#    147    201    228
E     153    204    230
F     159    207    231
F#    164    210    232
G     170    212    234
G#    174    215    235
A     179    217    236
A#    183    219    237
H     187    221    238
C     191    223    239
In the third octave, there are still some notes (notably E in C-Dur), which are slightly de-tuned. Oh, well. But given this extra degree of freedom (good intervals vs. frequency accuracy) this table is probably a good choice.

Greetings,

Michael
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

Actually I stopped using any notes higher than E-3 many years ago, because I find the frequency error too great. A few of the last notes may play OK but it also depends on the surrounding harmonies how you hear it and which function in the chord it plays, some examples:

The base note
A minor third
A major third
A fifth
Something else

In particular the thirds can need adjustment up or down, which also happens in a real orchestra. I admit it is too much work to try to compensate for this in a music player, so one would have to find well tempered frequencies sounding the least bad for every possible situation, alternatively avoid certain combinations.

You should also consider that a mathematically correct scale will sound detuned to the human ear, at least among us grown up with Western scales of music. That is not a problem on the VIC-20 where most notes sound detuned anyway... ;-)
Anders Carlsson

Image Image Image Image Image
User avatar
javierglez
Vic 20 Hobbyist
Posts: 107
Joined: Sat Jun 03, 2017 3:33 pm

Re: Measuring the VIC chip sound output

Post by javierglez »

I'm resurrecting this thread because I found it referenced in the thread about Jeff's book.

(sorry now i see I didn't even read this thread from the beginning)

In Compute's "Mapping the C64" the register values for the different notes are given for an NTSC C64, plus the formula:
FREQUENCY=(REGISTERVALUE*CLOCK/16777216)Hz
CLOCK being 1022730 for American (NTSC) systems, 985250 for European (PAL)
which you can use to get the register values and frequencies for a PAL C64 I guess.

And then in Compute's "Mapping the VIC20" the formulas for the VIC20 are, apparently:
REG.VALUE=INT(128-(3995/FREQ))
REG.VALUE=INT(128-(7990/FREQ))
REG.VALUE=INT(128-(15980/FREQ))
for 36874, 36875 and 36876, respectively
and also has the register values too, which I assume are for NTSC

then you shoud adjust the FREQs with a factor for a PAL VIC, assuming the formulas are accurate

I shared a link to a worksheet in this post, but at the time I was assuming frequency was a PAL/NTSC thing and didn't know PAL VIC actually had a 10% higher clock.
Besides there's missing edits which I may have done in my computer locally

viewtopic.php?f=10&t=9866&p=110596#p110596

I compared the "Mapping the C64" frequencies with the obtained form register values and similar formula showing up in "TED PROGRAMMERS REFERENCE GUIDE AND C16/PLUS4 REFERENCE BOOK, pgs 50 & 181"
The frequencies are similar but not identical

Overall it's a mess and I'll try to update it, but if someone wants to redo his own way, please share

(OK I see Mike recommends this values, are similar to results of the formulas with a difference of +/-1)
Mike wrote: Mon May 11, 2009 4:30 am

Code: Select all

Note:   x  NTSC    PAL

C     -33  132.83  122.60 <- not reachable in PAL
C#    -32  139.69  130.03
D     -31  146.16  137.05
D#    -30  152.27  143.67
E     -29  158.04  149.91
F     -28  163.48  155.81
F#    -27  168.61  161.38
G     -26  173.46  166.63
G#    -25  178.04  171.59
A     -24  182.36  176.27
A#    -23  186.43  180.69
H     -22  190.28  184.86
C     -21  193.91  188.80
C#    -20  197.34  192.51
D     -19  200.58  196.02
D#    -18  203.63  199.33
E     -17  206.52  202.45
F     -16  209.24  205.40
F#    -15  211.80  208.19
G     -14  214.23  210.81
G#    -13  216.52  213.29
A     -12  218.68  215.63
A#    -11  220.71  217.84
H     -10  222.64  219.93
C      -9  224.45  221.90
C#     -8  226.17  223.75
D      -7  227.79  225.51
D#     -6  229.31  227.16
E      -5  230.76  228.72
F      -4  232.12  230.20
F#     -3  233.40  231.59
G      -2  234.61  232.90
G#     -1  235.76  234.14
A       0  236.84  235.31
A#      1  237.85  236.42
H       2  238.82  237.46
C       3  239.72  238.45
Post Reply