LMMS
Loading...
Searching...
No Matches
zyncarla::Master Class Reference

#include <Master.h>

Public Member Functions

 Master (const SYNTH_T &synth, class Config *config)
 ~Master ()
void applyOscEvent (const char *event)
int saveXML (const char *filename)
void add2XML (XMLwrapper &xml)
void defaults ()
int loadXML (const char *filename)
int saveOSC (const char *filename)
int loadOSC (const char *filename)
void applyparameters (void) NONREALTIME
void initialize_rt (void) REALTIME
void getfromXML (XMLwrapper &xml)
int getalldata (char **data) NONREALTIME
void putalldata (const char *data)
void noteOn (char chan, char note, char velocity)
void noteOff (char chan, char note)
void polyphonicAftertouch (char chan, char note, char velocity)
void setController (char chan, int type, int par)
void ShutUp ()
void vuUpdate (const float *outl, const float *outr)
bool runOSC (float *outl, float *outr, bool offline=false)
bool AudioOut (float *outl, float *outr) REALTIME
void GetAudioOutSamples (size_t nsamples, unsigned samplerate, float *outl, float *outr) REALTIME
void partonoff (int npart, int what)
void setMasterChangedCallback (void(*cb)(void *, Master *), void *ptr)
void setPvolume (char Pvolume_)
void setPkeyshift (char Pkeyshift_)
void setPsysefxvol (int Ppart, int Pefx, char Pvol)
void setPsysefxsend (int Pefxfrom, int Pefxto, char Pvol)
void vuresetpeaks ()

Static Public Member Functions

static void saveAutomation (XMLwrapper &xml, const rtosc::AutomationMgr &midi)
static void loadAutomation (XMLwrapper &xml, rtosc::AutomationMgr &midi)

Public Attributes

char last_xmz [XMZ_PATH_MAX]
int shutup
class Partpart [NUM_MIDI_PARTS]
unsigned char Pvolume
unsigned char Pkeyshift
unsigned char Psysefxvol [NUM_SYS_EFX][NUM_MIDI_PARTS]
unsigned char Psysefxsend [NUM_SYS_EFX][NUM_SYS_EFX]
class EffectMgrsysefx [NUM_SYS_EFX]
class EffectMgrinsefx [NUM_INS_EFX]
Recorder HDDRecorder
short int Pinsparts [NUM_INS_EFX]
float vuoutpeakpart [NUM_MIDI_PARTS]
unsigned char fakepeakpart [NUM_MIDI_PARTS]
AbsTime time
Controller ctl
bool swaplr
Microtonal microtonal
Bank bank
class FFTwrapperfft
float volume
vuData vu
bool activeNotes [128]
WatchManager watcher
rtosc::AutomationMgr automate
bool frozenState
Allocatormemory
rtosc::ThreadLinkbToU
rtosc::ThreadLinkuToB
bool pendingMemory
const SYNTH_Tsynth
const intgzip_compression
 value from config
uint32_t last_beat = 0
uint32_t last_ack = 0

Static Public Attributes

static const rtosc::Portsports = master_ports

Private Member Functions

char * getXMLData ()
int loadOSCFromStr (const char *filename)

Private Attributes

float sysefxvol [NUM_SYS_EFX][NUM_MIDI_PARTS]
float sysefxsend [NUM_SYS_EFX][NUM_SYS_EFX]
int keyshift
float * bufl
float * bufr
off_t off
size_t smps
void(* mastercb )(void *, Master *)
voidmastercb_ptr

Detailed Description

It sends Midi Messages to Parts, receives samples from parts, process them with system/insertion effects and mix them

Constructor & Destructor Documentation

◆ Master()

Master::Master ( const SYNTH_T & synth,
class Config * config )

Constructor TODO make private

◆ ~Master()

Master::~Master ( )

Destructor

Member Function Documentation

◆ add2XML()

void Master::add2XML ( XMLwrapper & xml)

This adds the parameters to the XML data

◆ applyOscEvent()

void Master::applyOscEvent ( const char * event)

◆ applyparameters()

void Master::applyparameters ( void )

Regenerate PADsynth and other non-RT parameters It is NOT SAFE to call this from a RT context

◆ AudioOut()

bool Master::AudioOut ( float * outl,
float * outr )

Audio Output

◆ defaults()

void Master::defaults ( )

◆ getalldata()

int Master::getalldata ( char ** data)

get all data to a newly allocated array (used for plugin)

Returns
the datasize

◆ GetAudioOutSamples()

void Master::GetAudioOutSamples ( size_t nsamples,
unsigned samplerate,
float * outl,
float * outr )

Audio Output (for callback mode). This allows the program to be controled by an external program

◆ getfromXML()

void Master::getfromXML ( XMLwrapper & xml)

◆ getXMLData()

char * Master::getXMLData ( )
private

◆ initialize_rt()

void Master::initialize_rt ( void )

◆ loadAutomation()

void Master::loadAutomation ( XMLwrapper & xml,
rtosc::AutomationMgr & midi )
static

◆ loadOSC()

int Master::loadOSC ( const char * filename)

loads all settings from an OSC file (as specified by RT OSC)

Returns
0 for ok or <0 if there is an error

◆ loadOSCFromStr()

int Master::loadOSCFromStr ( const char * filename)
private

◆ loadXML()

int Master::loadXML ( const char * filename)

loads all settings from a XML file

Returns
0 for ok or -1 if there is an error

◆ noteOff()

void Master::noteOff ( char chan,
char note )

◆ noteOn()

void Master::noteOn ( char chan,
char note,
char velocity )

◆ partonoff()

void Master::partonoff ( int npart,
int what )

◆ polyphonicAftertouch()

void Master::polyphonicAftertouch ( char chan,
char note,
char velocity )

◆ putalldata()

void Master::putalldata ( const char * data)

put all data from the *data array to zynaddsubfx parameters (used for plugin)

◆ runOSC()

bool Master::runOSC ( float * outl,
float * outr,
bool offline = false )

◆ saveAutomation()

void Master::saveAutomation ( XMLwrapper & xml,
const rtosc::AutomationMgr & midi )
static

◆ saveOSC()

int Master::saveOSC ( const char * filename)

Save all settings to an OSC file (as specified by RT OSC)

Parameters
filenameFile to save to or NULL (useful for testing)
Returns
0 for ok or <0 if there is an error

◆ saveXML()

int Master::saveXML ( const char * filename)

Saves all settings to a XML file

Returns
0 for ok or <0 if there is an error

◆ setController()

void Master::setController ( char chan,
int type,
int par )

◆ setMasterChangedCallback()

void Master::setMasterChangedCallback ( void(* cb )(void *, Master *),
void * ptr )

◆ setPkeyshift()

void Master::setPkeyshift ( char Pkeyshift_)

◆ setPsysefxsend()

void Master::setPsysefxsend ( int Pefxfrom,
int Pefxto,
char Pvol )

◆ setPsysefxvol()

void Master::setPsysefxvol ( int Ppart,
int Pefx,
char Pvol )

◆ setPvolume()

void Master::setPvolume ( char Pvolume_)

◆ ShutUp()

void Master::ShutUp ( )

◆ vuresetpeaks()

void Master::vuresetpeaks ( )

◆ vuUpdate()

void Master::vuUpdate ( const float * outl,
const float * outr )

Member Data Documentation

◆ activeNotes

bool zyncarla::Master::activeNotes[128]

◆ automate

rtosc::AutomationMgr zyncarla::Master::automate

◆ bank

Bank zyncarla::Master::bank

◆ bToU

rtosc::ThreadLink* zyncarla::Master::bToU

◆ bufl

float* zyncarla::Master::bufl
private

◆ bufr

float* zyncarla::Master::bufr
private

◆ ctl

Controller zyncarla::Master::ctl

◆ fakepeakpart

unsigned char zyncarla::Master::fakepeakpart[NUM_MIDI_PARTS]

◆ fft

class FFTwrapper* zyncarla::Master::fft

◆ frozenState

bool zyncarla::Master::frozenState

◆ gzip_compression

const int& zyncarla::Master::gzip_compression

value from config

◆ HDDRecorder

Recorder zyncarla::Master::HDDRecorder

◆ insefx

class EffectMgr* zyncarla::Master::insefx[NUM_INS_EFX]

◆ keyshift

int zyncarla::Master::keyshift
private

◆ last_ack

uint32_t zyncarla::Master::last_ack = 0

◆ last_beat

uint32_t zyncarla::Master::last_beat = 0

◆ last_xmz

char zyncarla::Master::last_xmz[XMZ_PATH_MAX]

◆ mastercb

void(* zyncarla::Master::mastercb) (void *, Master *)
private

◆ mastercb_ptr

void* zyncarla::Master::mastercb_ptr
private

◆ memory

Allocator* zyncarla::Master::memory

◆ microtonal

Microtonal zyncarla::Master::microtonal

◆ off

off_t zyncarla::Master::off
private

◆ part

class Part* zyncarla::Master::part[NUM_MIDI_PARTS]

parts

Todo
see if this can be made to be dynamic

◆ pendingMemory

bool zyncarla::Master::pendingMemory

◆ Pinsparts

short int zyncarla::Master::Pinsparts[NUM_INS_EFX]

◆ Pkeyshift

unsigned char zyncarla::Master::Pkeyshift

◆ ports

const Ports & Master::ports = master_ports
static

◆ Psysefxsend

unsigned char zyncarla::Master::Psysefxsend[NUM_SYS_EFX][NUM_SYS_EFX]

◆ Psysefxvol

unsigned char zyncarla::Master::Psysefxvol[NUM_SYS_EFX][NUM_MIDI_PARTS]

◆ Pvolume

unsigned char zyncarla::Master::Pvolume

◆ shutup

int zyncarla::Master::shutup

◆ smps

size_t zyncarla::Master::smps
private

◆ swaplr

bool zyncarla::Master::swaplr

◆ synth

const SYNTH_T& zyncarla::Master::synth

◆ sysefx

class EffectMgr* zyncarla::Master::sysefx[NUM_SYS_EFX]

◆ sysefxsend

float zyncarla::Master::sysefxsend[NUM_SYS_EFX][NUM_SYS_EFX]
private

◆ sysefxvol

float zyncarla::Master::sysefxvol[NUM_SYS_EFX][NUM_MIDI_PARTS]
private

◆ time

AbsTime zyncarla::Master::time

◆ uToB

rtosc::ThreadLink* zyncarla::Master::uToB

◆ volume

float zyncarla::Master::volume

◆ vu

vuData zyncarla::Master::vu

◆ vuoutpeakpart

float zyncarla::Master::vuoutpeakpart[NUM_MIDI_PARTS]

◆ watcher

WatchManager zyncarla::Master::watcher

The documentation for this class was generated from the following files: