Files
luma/Sources/CLumaAudio/include/CLumaAudio.h
Ole André Vadla Ravnås ad7ffcdabc Add a synthesiser that sounds arriving events
Eight channels, each with its own patch and pattern on its own step
clock, mixed on the audio device's thread: storage allocated once,
reached through unsafe pointers, and a lock-free ring for control,
so nothing under the callback allocates, retains or locks.

The image performs a tune, names it, and sounds chords.
2026-08-13 12:46:09 +02:00

25 lines
567 B
C

#ifndef LUMA_CLUMAAUDIO_H
#define LUMA_CLUMAAUDIO_H
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
// The device layer, and nothing else: the voices, patterns and mixing all
// live in Swift, which the callback reaches through luma_synth_mix.
// Opens the default output device and starts the mixer. Answers false if
// the host has no usable device, which is not fatal: playing stays
// callable and simply goes unheard.
bool luma_audio_start(void);
void luma_audio_stop(void);
bool luma_audio_is_running(void);
#ifdef __cplusplus
}
#endif
#endif