So you have perfect pitch for a 36-note octave? That's pretty unusual! And you want to produce sinewaves at pitches that fit with a 19-note octave? That means each tone will be related to the previous one by the 19th root of 2, which is 3.7155%, is that right? And your frequency range is 100~500 Hz. Remind me never to buy any of your music
Generating the frequency with resistors and capacitors is not going to be accurate or stable enough. You need a crystal as your timing source. These are commonly accurate to +/- 200 ppm which is +/- 0.02%.
The microcontroller option is pretty obvious. A microcontroller is clocked from a crystal and produces a digital representation of the sinewave at the desired frequency. This representation is then converted into an analogue signal by a DAC (digital-to-analogue converter), with final smoothing to remove the steps if necessary.
The sinewave is generated using discrete values and discrete intervals. For example, an 8-bit conversion provides 256 different values on the vertical axis (256 is 2^8). The number of points on the horizontal axis is not fixed, but if the points are produced by firmware running in the micro, you can achieve on the order of 100k points per second, so at 500 Hz you would get 200 points per cycle of the sinewave. Both of these figures (8-bit conversion, 200 points per cycle) should be fine for a single sinewave at maximum amplitude.
The points are calculated by firmware from a sinewave table that is included with the program. The firmware design would take a bit of thought. Do you have any microcontroller experience, or a friend who does? If so, what architecture(s)?
Another possibility would be to generate a squarewave at the desired frequency, and filter it using a bandpass filter.
The squarewave would be derived from a relatively high crystal frequency using frequency division by any integer. Assuming say a 20 MHz crystal frequency, dividing by 20000 would give a 1 kHz wave which would go through a final divide-by-2 stage to ensure a 50% duty cycle at 500 Hz. Dividing by 20001 would give a final frequency of 499.975 Hz which is only 50 ppm (0.005%) different, so frequency resolution would not be a problem!
The bandpass filter will remove frequencies other than the desired frequency, i.e. it will turn the squarewave into a sinewave. These can be made from LC (inductor-capacitor) circuits but this is not feasible in this application - the inductor would be too big, and the frequency would be hard to adjust, or they can be implemented using op-amps, or a switched capacitor filter, which is also clocked from a frequency source.
An op-amp-based bandpass filter might be the best option. Frequency accuracy and stability would have to be good, but not extremely good, since the frequency is set by the squarewave that is derived from the crystal.Probably just one preset potentiometer would be needed.
Edit: The bandpass filter would need to be retuned if the frequency was changed, that's what the preset potentiometer would be needed for.
Then of course you need an amplifier and speaker.
There used to be an IC called the SC11313 from Sierra Semiconductor that included the squarewave generator and a switched capacitor filter, but the division ratios had to be programmed by a microcontroller. I think there are other devices for direct sinewave synthesis from a crystal source; I'll do a web search and post again.
What kind of power source are you planning to use? Batteries, I guess?
What's your budget?