主权项 |
1. A system for calibrating an analog audio synthesizer, the system comprising:
one or more computer readable storage media; a processing system; program instructions for a frequency calibrator component stored on at least one of the one or more computer readable storage media that, when executed by the processing system, direct the processing system, in response to entering a calibration mode that defines an ordered set of one or more note identifiers of musical notes to calibrate, to: (A) set an output volume level of audio-producing componentry to zero; (B) select a current note identifier in the ordered set of one or more note identifiers, wherein the current note identifier is a next note identifier in the ordered set, wherein the calibration mode terminates when there is no next note identifier in the ordered set; (C) retrieve, from a control values store on at least one of the one or more computer readable media, a control value associated with the current note identifier, wherein the control value indicates a translation factor for instructing a digital to analog converter (DAC) to generate an analog control voltage; (D) send the control value to the DAC, wherein the DAC generates the analog control voltage and sends the analog control voltage to a voltage controlled oscillator (VCO), wherein the analog control voltage instructs the VCO to generate an electrical output wave of a target frequency and waveform; (E) receive the electrical output wave from the VCO; (F) measure a measured frequency (fm) of the electrical output wave; (G) determine a reference frequency (fc) of the electrical output wave for the current note identifier; (H) compare the measured frequency and the reference frequency with respect to a tolerance value (e) and,
(H1) when fc+e≧fm≧fc−e, return to step (B) for the next note identifier in the ordered set, and(H2) when fm<fc−e, raise by an increment the control value to create a modified control value, or when fm>fc+e, lower by a decrement the control value to create the modified control value, update the control value in the control values store with the modified control value, and return to step (C). |