Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TriangleWave.cpp
00001 #include "snd_wave_generator/TriangleWave.h" 00002 00003 namespace snd_wave_generator { 00004 00005 void TriangleWave::prepare(std::size_t sampleRate) 00006 { 00007 std::size_t cycleLength = sampleRate / this->frequency; 00008 this->buffer.resize(cycleLength); 00009 00010 std::size_t middle = cycleLength / 2; 00011 std::size_t quarter = middle / 2; 00012 00013 float delta = 2.0 / (float(sampleRate) / float(this->frequency)); 00014 for(std::size_t i = 0; i < quarter; ++i) { 00015 float dt = delta * i; 00016 float posValue = 0.5 + dt; 00017 float negValue = 0.5 - dt; 00018 this->buffer.write(i, posValue); 00019 this->buffer.write(middle - i, posValue); 00020 this->buffer.write(middle + i, negValue); 00021 this->buffer.write(cycleLength - i, negValue); 00022 } 00023 00024 this->buffer.write(quarter, 1.0); 00025 if (middle - quarter != quarter) { 00026 this->buffer.write(middle - quarter, 1.0); 00027 } 00028 this->buffer.write(cycleLength - quarter, 0.0); 00029 if (middle + quarter != cycleLength - quarter) { 00030 this->buffer.write(middle + quarter, 0.0); 00031 } 00032 } 00033 00034 } // snd_wave_generator
Generated on Wed Jul 13 2022 16:23:43 by
1.7.2