Skip to content

Commit c383517

Browse files
committed
convert engine tempo to speed
1 parent 04a177f commit c383517

29 files changed

Lines changed: 92 additions & 132 deletions

README.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ Example usage
3434
// Create the engine.
3535
barely::Engine engine(/*sample_rate=*/48000);
3636

37-
// Set the global tempo.
38-
engine.SetTempo(/*tempo=*/124.0);
39-
4037
// Create a new instrument.
4138
auto instrument = engine.CreateInstrument();
4239

examples/demo/arpeggiator_demo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ constexpr double kLookahead = 0.05;
3636
constexpr float kDelayTime = 0.5f;
3737
constexpr float kDelayFeedback = 0.2;
3838
constexpr float kDelayLpfCutoff = 0.2f;
39-
constexpr double kTempo = 140.0;
39+
constexpr double kSpeed = 140.0 / 60.0;
4040

4141
// Instrument settings.
4242
constexpr float kGain = 1.0f;
@@ -70,7 +70,7 @@ std::optional<float> KeyToPitch(int octave_shift, const InputManager::Key& key)
7070
} // namespace
7171

7272
// NOLINTNEXTLINE(bugprone-exception-escape)
73-
int main(void) {
73+
int main() {
7474
InputManager input_manager;
7575

7676
AudioClock audio_clock(kSampleRate);
@@ -80,7 +80,7 @@ int main(void) {
8080
engine.SetControl(EngineControlType::kDelayTime, kDelayTime);
8181
engine.SetControl(EngineControlType::kDelayFeedback, kDelayFeedback);
8282
engine.SetControl(EngineControlType::kDelayLpfCutoff, kDelayLpfCutoff);
83-
engine.SetTempo(kTempo);
83+
engine.SetSpeed(kSpeed);
8484

8585
auto instrument = engine.CreateInstrument();
8686
instrument.SetControl(InstrumentControlType::kGain, kGain);

examples/demo/c_demo.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,14 @@ static const int kFrameCount = 256;
2727
static const double kUpdateInterval = 1.0 / 60.0;
2828
static const double kLookahead = 0.05;
2929

30+
static const double kSpeed = 0.99;
31+
3032
// Instrument settings.
3133
static const float kGain = 0.9f;
3234
static const float kOscShape = 0.75f;
3335
static const float kAttack = 0.005f;
3436
static const float kRelease = 0.2f;
3537

36-
// Playback settings.
37-
static const double kTempo = 99.0;
38-
3938
enum {
4039
kMelodyNoteCount = 7,
4140
};
@@ -86,7 +85,7 @@ int main(void) {
8685
void* allocation = malloc(allocation_size);
8786

8887
BarelyEngine* engine = BarelyEngine_Create(&config, allocation, allocation_size);
89-
BarelyEngine_SetTempo(engine, kTempo);
88+
BarelyEngine_SetSpeed(engine, kSpeed);
9089

9190
g_instrument_id = BarelyEngine_CreateInstrument(engine);
9291
BarelyInstrument_SetControl(engine, g_instrument_id, BarelyInstrumentControlType_kGain, kGain);

examples/demo/instrument_demo.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ constexpr int kFrameCount = 256;
3636
constexpr float kDelayTime = 0.5f;
3737
constexpr float kDelayFeedback = 0.2;
3838
constexpr float kDelayLpfCutoff = 0.2f;
39-
constexpr double kTempo = 128.0;
4039

4140
// Instrument settings.
4241
constexpr float kGain = 1.0f;
@@ -81,7 +80,7 @@ float IndexToPitch(int octave_shift, int index) {
8180
} // namespace
8281

8382
// NOLINTNEXTLINE(bugprone-exception-escape)
84-
int main(void) {
83+
int main() {
8584
InputManager input_manager;
8685

8786
AudioOutput audio_output(kSampleRate, kChannelCount, kFrameCount);
@@ -90,7 +89,6 @@ int main(void) {
9089
engine.SetControl(EngineControlType::kDelayTime, kDelayTime);
9190
engine.SetControl(EngineControlType::kDelayFeedback, kDelayFeedback);
9291
engine.SetControl(EngineControlType::kDelayLpfCutoff, kDelayLpfCutoff);
93-
engine.SetTempo(kTempo);
9492

9593
auto instrument = engine.CreateInstrument();
9694
instrument.SetControl(InstrumentControlType::kGain, kGain);
@@ -157,11 +155,13 @@ int main(void) {
157155
instrument.SetControl(InstrumentControlType::kOscMix, 1.0f);
158156
ConsoleLog() << "Switched to oscillator mode";
159157
return;
160-
} else if (upper_key == '2') {
158+
}
159+
if (upper_key == '2') {
161160
instrument.SetControl(InstrumentControlType::kOscMix, 0.0f);
162161
ConsoleLog() << "Switched to sample mode";
163162
return;
164-
} else if (upper_key == '3') {
163+
}
164+
if (upper_key == '3') {
165165
instrument.SetControl(InstrumentControlType::kOscMix, 0.5f);
166166
ConsoleLog() << "Switched to mix mode";
167167
return;

examples/demo/metronome_demo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ constexpr double kTempoIncrement = 10.0;
4444
} // namespace
4545

4646
// NOLINTNEXTLINE(bugprone-exception-escape)
47-
int main(void) {
47+
int main() {
4848
InputManager input_manager;
4949

5050
AudioClock audio_clock(kSampleRate);
@@ -53,7 +53,7 @@ int main(void) {
5353
double tempo = kInitialTempo;
5454

5555
Engine engine(kSampleRate);
56-
engine.SetTempo(kInitialTempo);
56+
engine.SetSpeed(kInitialTempo / 60.0);
5757

5858
// Create the metronome instrument.
5959
auto instrument = engine.CreateInstrument();
@@ -134,7 +134,7 @@ int main(void) {
134134
return;
135135
}
136136
tempo = std::clamp(tempo, 0.0, static_cast<double>(kSampleRate));
137-
engine.SetTempo(tempo);
137+
engine.SetSpeed(tempo / 60.0);
138138
ConsoleLog() << "Tempo set to " << tempo << " bpm";
139139
};
140140
input_manager.SetKeyDownCallback(key_down_callback);

examples/demo/midi_demo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ constexpr int kInstrumentVoiceCount = 16;
4646
// Midi file name.
4747
constexpr char kMidiFileName[] = "data/midi/sample.mid";
4848

49-
constexpr double kTempo = 132.0;
49+
constexpr double kSpeed = 132.0 / 60.0;
5050

5151
// Builds the score for the given `midi_events`.
5252
bool BuildScore(const smf::MidiEventList& midi_events, int track_index, int ticks_per_beat,
@@ -80,7 +80,7 @@ bool BuildScore(const smf::MidiEventList& midi_events, int track_index, int tick
8080
} // namespace
8181

8282
// NOLINTNEXTLINE(bugprone-exception-escape)
83-
int main(void) {
83+
int main() {
8484
InputManager input_manager;
8585

8686
MidiFile midi_file;
@@ -97,7 +97,7 @@ int main(void) {
9797
AudioOutput audio_output(kSampleRate, kChannelCount, kFrameCount);
9898

9999
Engine engine(kSampleRate);
100-
engine.SetTempo(kTempo);
100+
engine.SetSpeed(kSpeed);
101101

102102
std::vector<std::tuple<Instrument, Performer, int>> tracks;
103103
tracks.reserve(track_count);

examples/demo/musician_demo.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ constexpr int kFrameCount = 1024;
5858
constexpr double kLookahead = 0.1;
5959

6060
// Performer settings.
61-
constexpr double kTempo = 124.0;
61+
constexpr double kSpeed = 124.0 / 60.0;
6262
constexpr int kBeatCount = 3;
6363

6464
// Number of semitones in an octave.
@@ -220,16 +220,16 @@ void ComposeDrums(int bar, int beat, int beat_count, Engine& engine, int index,
220220
} // namespace
221221

222222
// NOLINTNEXTLINE(bugprone-exception-escape)
223-
int main(void) {
223+
int main() {
224224
InputManager input_manager;
225225

226226
AudioClock audio_clock(kSampleRate);
227227
AudioOutput audio_output(kSampleRate, kChannelCount, kFrameCount);
228228

229-
double tempo = kTempo;
229+
double speed = kSpeed;
230230

231231
Engine engine(kSampleRate);
232-
engine.SetTempo(tempo);
232+
engine.SetSpeed(speed);
233233

234234
const std::vector<int> progression = {0, 3, 4, 0};
235235

@@ -391,19 +391,19 @@ int main(void) {
391391
is_playing = !is_playing;
392392
break;
393393
case '1':
394-
tempo *= engine.GenerateRandomNumber(0.5, 0.75);
395-
engine.SetTempo(tempo);
396-
ConsoleLog() << "Tempo changed to " << tempo;
394+
speed *= engine.GenerateRandomNumber(0.5, 0.75);
395+
engine.SetSpeed(speed);
396+
ConsoleLog() << "Speed changed to " << speed;
397397
break;
398398
case '2':
399-
tempo *= engine.GenerateRandomNumber(1.5, 2.0);
400-
engine.SetTempo(tempo);
401-
ConsoleLog() << "Tempo changed to " << tempo;
399+
speed *= engine.GenerateRandomNumber(1.5, 2.0);
400+
engine.SetSpeed(speed);
401+
ConsoleLog() << "Speed changed to " << speed;
402402
break;
403403
case 'R':
404-
tempo = kTempo;
405-
engine.SetTempo(tempo);
406-
ConsoleLog() << "Tempo reset to " << kTempo;
404+
speed = kSpeed;
405+
engine.SetSpeed(speed);
406+
ConsoleLog() << "Speed reset to " << speed;
407407
break;
408408
case 'D':
409409
percussion.SetSampleData(default_percussion_sample_data.first);

examples/demo/repeater_demo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ constexpr int kVoiceCount = 16;
4040

4141
constexpr Repeater::Mode kInitialMode = Repeater::Mode::kForward;
4242
constexpr double kInitialRate = 2.0;
43-
constexpr double kInitialTempo = 135.0;
43+
constexpr double kSpeed = 135.0 / 60.0;
4444

4545
// Note settings.
4646
constexpr int kKeyCount = 13;
@@ -64,14 +64,14 @@ float IndexToPitch(int octave_shift, int index) {
6464
} // namespace
6565

6666
// NOLINTNEXTLINE(bugprone-exception-escape)
67-
int main(void) {
67+
int main() {
6868
InputManager input_manager;
6969

7070
AudioClock audio_clock(kSampleRate);
7171
AudioOutput audio_output(kSampleRate, kChannelCount, kFrameCount);
7272

7373
Engine engine(kSampleRate);
74-
engine.SetTempo(kInitialTempo);
74+
engine.SetSpeed(kSpeed);
7575

7676
auto instrument = engine.CreateInstrument();
7777
instrument.SetControl(InstrumentControlType::kGain, kGain);

examples/demo/sequencer_demo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ constexpr double kTempoIncrement = 10.0;
4141
} // namespace
4242

4343
// NOLINTNEXTLINE(bugprone-exception-escape)
44-
int main(void) {
44+
int main() {
4545
InputManager input_manager;
4646

4747
AudioClock audio_clock(kSampleRate);
@@ -51,7 +51,7 @@ int main(void) {
5151
double tempo = kInitialTempo;
5252

5353
Engine engine(kSampleRate);
54-
engine.SetTempo(tempo);
54+
engine.SetSpeed(tempo / 60.0);
5555

5656
auto instrument = engine.CreateInstrument();
5757
instrument.SetControl(InstrumentControlType::kGain, kGain);
@@ -162,7 +162,7 @@ int main(void) {
162162
default:
163163
return;
164164
}
165-
engine.SetTempo(tempo);
165+
engine.SetSpeed(tempo / 60.0);
166166
ConsoleLog() << "Tempo set to " << tempo << " bpm";
167167
};
168168
input_manager.SetKeyDownCallback(key_down_callback);

examples/demo/trigger_demo.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ constexpr double kInitialTempo = 120.0;
4444
} // namespace
4545

4646
// NOLINTNEXTLINE(bugprone-exception-escape)
47-
int main(void) {
47+
int main() {
4848
InputManager input_manager;
4949

5050
AudioClock audio_clock(kSampleRate);
5151
AudioOutput audio_output(kSampleRate, kChannelCount, kFrameCount);
5252

5353
Engine engine(kSampleRate);
54-
engine.SetTempo(kInitialTempo);
54+
engine.SetSpeed(kInitialTempo / 60.0);
5555

5656
auto instrument = engine.CreateInstrument();
5757
instrument.SetControl(InstrumentControlType::kGain, kGain);

0 commit comments

Comments
 (0)