Use TL494 that has a reference and feedback loop to stabilize the voltage.
http://www.ti.com/lit/an/slva001e/slva001e.pdf
If you can use microcontroller, use its PWM channel and ADC to achieve this.
Any MCU can be used. For example, AtTiny series from Atmel.
You need to program the MCU with what you want.
MCU can also help you achieve temperature compensation of the charging voltage and many other things e.g. over-voltage and over-current protection.
Contrary to what has been said above, 555 is not unreliable and not inefficient.
It can be used as a regulated booster than a simple booster (as it is in your case) but you need to modify your design.
In your current design add a fixed reference voltage source and an op-amp. Let op-amp compare the voltage at the output to the reference voltage. If reference voltage is 1V, you need to divide the output voltage by 14.4 (using voltage divider network) and then let op-amp compare the voltages. Output of the op-amp should manipulate (increase or decrease) the duty factor so that the output voltage is fixed at 14.4V regardless of load or input voltage variations.
The OP says this regarding his 555 circuit: -
If I halve the resistance, the frequency is less than doubled.
I take this to mean that the frequency the OP wants is proportional to the inverse of resistance. Furthermore I'm assuming that when the OP talks about a potentiometer, he wants in fact to use it as a rheostat i.e. wiper and one end of the pot aka "a variable resistor".
The use of the term "linear" in the question is possibly misleading.
So, consider using an integrator and a schmitt trigger like this: -
Basically it relies on the integrator capacitor being charged and then discharged from the output of the schmitt trigger. Because it's an integrator you will have a very linear ramp-up and ramp-down due to the current in and out of the capacitor being set by the square wave amplitude and R3.
There are plenty of designs based on this type of circuit and here's another one: -
Here's the article that describes it in more detail. For tuning it you can turn R3 into a pot like the one below: -
Or you can use a pot in series with the positive feedback resistor on the schmitt trigger. You can even put the pot in place of R2.
There are variations of this circuit that allow pulse width modulation i.e. you can make the triangle wave more saw-like.
NEW SECTION about choice of op-amp.
The biggest problem area in this design is the comparator. Ideally you want it to switch its output from positive to negative in zero time but that won't happen. For instance the 741 is a bad choise because it has a large delay in dragging its output transistors out of saturation. This will likely be tens of microseconds added to the more normal propagation delay of about a micro second.
Then the 741 is slew rate limited on its output to 0.5 volts per micro second. If you have a +/-15V supply the typical output voltage levels will be at +/-14V (loaded with a 10k resistor). To change the output all the way from +14 volts to -14 volts takes 56 micro seconds and it needs to do this twice per oscillation cycle - that's 112 micro seconds. For most of the time while it's doing this, the integrator isn't really moving its triangle wave output but I reckon you could bank on at least 60 microseconds added to the oscillation cycle.
Also when you load the output the p-p voltage level drops - the data sheet says the 741 output level will drop from +/-14V with a 10k load to +/-13V with a 2k load.
So what does 60 us mean in this design? The op says that he halved the resistance and expected 800 Hz but only got 756 Hz. The time difference between one cycle of 800 Hz and one cycle of 756 Hz is 73 us i.e. probably everything can be put down to slew rate limiting.
To improve this get a much better op-amp circa 10V/us slew rate. Then run it from +/- 5V rails. A typical op-amp of this type might produce +/-4V output i.e. a delta of 8V and, due to the improvement in slew rate the "delay" would be about 0.8 us but what does this mean? Compare this to a 1Hz error in 800 Hz - this is a time delay per cycle of 1.6 us so now, using a 10V/us slew rate op-amp, gives a 1 Hz error at 1600 Hz.
To avoid the extra propagation delay (common to a lot of op-amps) when their outputs saturate, negative feedback can be used to limit the comparator output to maybe +/-2.5V. Use of series back-to-back precision shunt zeners may be able to do this but, as always, the devil is in the data sheet's details so I'm not going to propose anything hard and fast for this feature - I'd just look for an op-amp that is quick at coming out of saturation or go for a fast comparator with push-pull output.
Best Answer
The control pin of the 555 will need to be driven with a signal from a fairly low impedance source. The data sheet of the 555 will show you the range of control voltage that will be effective. If the control range needed does not match the voltage generated out of your MIDI-2-VOLTAGE converter then you may find it necessary to adjust the DAC output range accordingly. Do check the output impedance of your DACs and make sure that they are at least 10 times lower impedance then the control pin input pin of the 555's. If this is not the case you will have to use some op-amp voltage followers to buffer between the DAC and the 555.