Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
 All Classes Files Functions Variables Typedefs Macros Groups
Classes | Macros | Typedefs | Enumerations | Functions | Variables
Bela.h File Reference

Main Bela public API. More...

#include <stdint.h>
#include <unistd.h>
#include <stdbool.h>
#include <stdio.h>
#include <GPIOcontrol.h>
#include <Utilities.h>

Go to the source code of this file.

Classes

struct  BelaContext
 Structure holding audio and sensor settings and pointers to I/O data buffers. More...
 
struct  BelaInitSettings
 Structure containing initialisation parameters for the real-time audio control system. More...
 

Macros

#define BELA_MAJOR_VERSION   1
 
#define BELA_MINOR_VERSION   4
 
#define BELA_BUGFIX_VERSION   0
 
#define BELA_AUDIO_PRIORITY   95
 
#define DEFAULT_DAC_LEVEL   0.0
 
#define DEFAULT_ADC_LEVEL   -6.0
 
#define DEFAULT_PGA_GAIN   16
 
#define DEFAULT_HP_LEVEL   -6.0
 
#define BELA_FLAG_INTERLEAVED   (1 << 0)
 
#define BELA_FLAG_ANALOG_OUTPUTS_PERSIST   (1 << 1)
 
#define BELA_FLAG_DETECT_UNDERRUNS   (1 << 2)
 

Typedefs

typedef void * AuxiliaryTask
 

Enumerations

enum  BelaHw {
  BelaHw_NoHw = -1, BelaHw_Bela, BelaHw_BelaMini, BelaHw_Salt,
  BelaHw_CtagFace, BelaHw_CtagBeast, BelaHw_CtagFaceBela, BelaHw_CtagBeastBela
}
 

Functions

int rt_printf (const char *format,...)
 
int rt_fprintf (FILE *stream, const char *format,...)
 
int rt_vprintf (const char *format, va_list ap)
 
int rt_vfprintf (FILE *stream, const char *format, va_list ap)
 
bool setup (BelaContext *context, void *userData)
 User-defined initialisation function which runs before audio rendering begins. More...
 
void render (BelaContext *context, void *userData)
 User-defined callback function to process audio and sensor data. More...
 
void cleanup (BelaContext *context, void *userData)
 User-defined cleanup function which runs when the program finishes. More...
 
BelaInitSettingsBela_InitSettings_alloc ()
 Allocate the data structure containing settings for Bela. More...
 
void Bela_InitSettings_free (BelaInitSettings *settings)
 De-allocate the data structure containing settings for Bela. More...
 
void Bela_defaultSettings (BelaInitSettings *settings)
 Initialise the data structure containing settings for Bela. More...
 
void Bela_userSettings (BelaInitSettings *settings)
 Initialise the data structure containing settings for Bela. More...
 
int Bela_getopt_long (int argc, char *argv[], const char *customShortOptions, const struct option *customLongOptions, BelaInitSettings *settings)
 Get long options from command line argument list, including Bela standard options. More...
 
void Bela_usage ()
 Print usage information for Bela standard options. More...
 
void Bela_getVersion (int *major, int *minor, int *bugfix)
 Get the version of Bela you are running.
 
void Bela_setVerboseLevel (int level)
 Set level of verbose (debugging) printing. More...
 
BelaHw Bela_detectHw (void)
 Detect what hardware we are running on.
 
int Bela_initAudio (BelaInitSettings *settings, void *userData)
 Initialise audio and sensor rendering environment. More...
 
int Bela_startAudio ()
 Begin processing audio and sensor data. More...
 
int Bela_runInSameThread ()
 Begin processing audio and sensor data in the same thread as the caller. More...
 
void Bela_stopAudio ()
 Stop processing audio and sensor data. More...
 
void Bela_cleanupAudio ()
 Clean up resources from audio and sensor processing. More...
 
int Bela_setDACLevel (float decibels)
 Set the level of the audio DAC. More...
 
int Bela_setADCLevel (float decibels)
 Set the level of the audio ADC. More...
 
int Bela_setPgaGain (float decibels, int channel)
 Set the gain of the audio preamplifier. More...
 
int Bela_setHeadphoneLevel (float decibels)
 Set the level of the onboard headphone amplifier. More...
 
int Bela_muteSpeakers (int mute)
 Mute or unmute the onboard speaker amplifiers. More...
 
AuxiliaryTask Bela_createAuxiliaryTask (void(*callback)(void *), int priority, const char *name, void *arg)
 Create a new auxiliary task. More...
 
int Bela_scheduleAuxiliaryTask (AuxiliaryTask task)
 Run an auxiliary task which has previously been created. More...
 
int Bela_startAuxiliaryTask (AuxiliaryTask task)
 Initialize an auxiliary task so that it can be scheduled. More...
 
int Bela_startAllAuxiliaryTasks ()
 
void Bela_stopAllAuxiliaryTasks ()
 
void Bela_deleteAllAuxiliaryTasks ()
 

Variables

int volatile gShouldStop
 

Detailed Description

Main Bela public API.

Central control code for hard real-time audio on BeagleBone Black using PRU and Xenomai Linux extensions. This code began as part of the Hackable Instruments project (EPSRC) at Queen Mary University of London, 2013-14.

(c) 2014-15 Andrew McPherson, Victor Zappi and Giulio Moro, Queen Mary University of London

Macro Definition Documentation

#define BELA_FLAG_INTERLEAVED   (1 << 0)

Flag for BelaContext. If set, indicates the audio and analog buffers are interleaved.

Examples:
logging-sensors/render.cpp.
#define BELA_FLAG_ANALOG_OUTPUTS_PERSIST   (1 << 1)

Flag for BelaContext. If set, indicates analog outputs persist for future frames.

#define BELA_FLAG_DETECT_UNDERRUNS   (1 << 2)

Flag for BelaContext. If set, indicates the user will be warned if an underrun occurs