No output from simple SoundSequence (C SDK)

Using the C SDK on Mac.

I'm unable to get any sound output from my code. Single shot audio on the PDSynth works fine, but trying to create a sequence isn't working for some reason!

PDSynth *saw = pd->sound->synth->newSynth();
pd->sound->synth->setWaveform(saw, kWaveformSawtooth);

PDSynthInstrument *inst = pd->sound->instrument->newInstrument();
pd->sound->instrument->addVoice(inst, saw, F32_MIN, F32_MAX, 0.f);

SoundSequence *seq = pd->sound->sequence->newSequence();
SequenceTrack *trk = pd->sound->sequence->addTrack(seq);
pd->sound->track->setInstrument(trk, inst);

pd->sound->track->addNoteEvent(trk, 0, 100, NOTE_C4, 1.f);
pd->sound->sequence->play(seq, 0, 0);

You just need one more thing:

  pd->sound->channel->addSource(pd->sound->getDefaultChannel(), (SoundSource*)inst);

In the C API we don't automatically add sound sources to the default channel like we do in Lua.

Perfect, that's working now, thanks Dave!
One quick follow up - the output from the below sequence seems really slow to me, empircally I've found it to be about 4 times too slow (increasing the bpm from 140 to ~550 makes it sound similar to the pulp track) - my guess, is that there's 4 "steps" per beat? My array voice2 is a "notes" array from one voice in a pulp-songs.json song. Wondering if you might be able to shed some light? Thanks!

u32 bpm = 140;
u32 beats_per_second = (u32)((bpm / 60.f) + .5f); // ceil
pd->sound->sequence->setTempo(seq, (u32)beats_per_second);
for(int i = 0, step = 0; i < notes_len; i += 3, step += 1) {
    u32 base_note = notes[i];
    u32 length = notes[i + 2];
    u32 octave = notes[i + 1] + 1;
    u32 note   = base_note + ((octave * 12) - 1);
    if(base_note) {
        pd->sound->track->addNoteEvent(trk, step, length, note, 1.f);

pd->sound->sequence->play(seq, 0, 0);

I'm pretty sure that's this bug: sequence:setTempo() - no relation to real world bpm and only works with whole numbers

We have a fix in the next update, should be out soon!