Classes to produce a computed sound wave on the analog output.

Dependents:   SoundWaveGeneratorTest SoundWaveGeneratorTest

Committer:
osmeest
Date:
Tue Feb 08 21:39:55 2011 +0000
Revision:
1:6864fd480178
Parent:
0:ed89ef772e92
Fix the Sine & Triangle wave computations which were very bad !

Who changed what in which revision?

UserRevisionLine numberNew contents of line
osmeest 0:ed89ef772e92 1 #ifndef WAVE_H_
osmeest 0:ed89ef772e92 2 #define WAVE_H_
osmeest 0:ed89ef772e92 3
osmeest 0:ed89ef772e92 4 #include <cstddef>
osmeest 0:ed89ef772e92 5
osmeest 0:ed89ef772e92 6 namespace snd_wave_generator {
osmeest 0:ed89ef772e92 7
osmeest 0:ed89ef772e92 8 /**
osmeest 0:ed89ef772e92 9 * @brief Interface of a playable sound wave.
osmeest 0:ed89ef772e92 10 * Waves are processed in two phases.
osmeest 0:ed89ef772e92 11 * Before sending out signal, the wave is "prepared" for the generator sample rate.
osmeest 0:ed89ef772e92 12 * Once the preparation is done, the generator will repeatedly "read" the wave samples.
osmeest 0:ed89ef772e92 13 * The sample position is measured in samples.
osmeest 0:ed89ef772e92 14 */
osmeest 0:ed89ef772e92 15 class Wave {
osmeest 0:ed89ef772e92 16 public:
osmeest 0:ed89ef772e92 17 virtual void prepare(std::size_t sampleRate) = 0;
osmeest 0:ed89ef772e92 18 virtual float read(std::size_t pos) const = 0;
osmeest 0:ed89ef772e92 19 };
osmeest 0:ed89ef772e92 20
osmeest 0:ed89ef772e92 21 } // snd_wave_generator
osmeest 0:ed89ef772e92 22
osmeest 0:ed89ef772e92 23 #endif // WAVE_H_