hydrogen 1.2.3
H2Core Namespace Reference

Namespaces

namespace  Interpolation
 

Data Structures

class  ADSR
 Attack Decay Sustain Release envelope. More...
 
class  AlsaAudioDriver
 
class  AlsaMidiDriver
 Alsa Midi Driver Based on Matthias Nagorni alsa sequencer example. More...
 
struct  atomic_obj_cpt_t
 an objects class map item type More...
 
class  AudioEngine
 The audio engine deals with two distinct #TransportPosition. More...
 
class  AudioEngineLocking
 AudioEngineLocking. More...
 
class  AudioEngineTests
 Defined in here since it requires access to methods and variables private to the #AudioEngine class. More...
 
class  AudioOutput
 Base abstract class for audio output classes. More...
 
class  AutomationPath
 
class  AutomationPathSerializer
 
class  Base
 Base class. More...
 
class  ColorTheme
 Colors for hydrogen. More...
 
class  CoreActionController
 
class  CoreAudioDriver
 
class  CoreMidiDriver
 
class  DiskWriterDriver
 Driver for export audio to disk. More...
 
class  Drumkit
 Drumkit info. More...
 
class  DrumkitComponent
 
class  Effects
 
class  EnvelopePoint
 A container for a sample, being able to apply modifications on it. More...
 
class  Event
 Basic building block for the communication between the core of Hydrogen and its GUI. More...
 
class  EventQueue
 Object handling the communication between the core of Hydrogen and its GUI. More...
 
class  FakeDriver
 Fake audio driver. More...
 
class  Files
 Files is in charge of writing and reading Patterns, Drumkits, Songs to the filesystem. More...
 
class  Filesystem
 Filesystem is a thin layer over QDir, QFile and QFileInfo. More...
 
class  FontTheme
 
class  Future
 Ensures compatibility with the song format introduced in Hydrogen v1.3.0. More...
 
class  H2Exception
 
class  Hydrogen
 Hydrogen Audio Engine. More...
 
class  Instrument
 Instrument class. More...
 
class  InstrumentComponent
 
class  InstrumentLayer
 InstrumentLayer is part of an instrument
each layer has it's own :
gain which is the ration between the input sample and the output signal,
pitch which allows you to play the sample at a faster or lower frequency,
start velocity and end velocity which allows you to chose between a layer or another within an instrument by changing the velocity of the played note. More...
 
class  InstrumentList
 InstrumentList is a collection of instruments used within a song, a drumkit, ... More...
 
class  InterfaceTheme
 
class  JackAudioDriver
 JACK (Jack Audio Connection Kit) server driver. More...
 
class  JackMidiDriver
 
class  LadspaControlPort
 
class  LadspaFX
 
class  LadspaFXGroup
 
class  LadspaFXInfo
 
class  Legacy
 Legacy is a container for legacy code which should be once removed. More...
 
class  License
 Wrapper class to help Hydrogen deal with the license information specified in a drumkit. More...
 
class  LilyPond
 A class to convert a Hydrogen song to LilyPond format. More...
 
class  Logger
 Class for writing logs to the console. More...
 
class  MidiInput
 MIDI input base class. More...
 
class  MidiMessage
 
class  MidiOutput
 MIDI input base class. More...
 
class  Note
 A note plays an associated instrument with a velocity left and right pan. More...
 
class  NullDriver
 
struct  obj_cpt_t
 
class  Object
 
class  OssDriver
 OSS Audio Driver. More...
 
class  Pattern
 Pattern class is a Note container. More...
 
class  PatternList
 PatternList is a collection of patterns. More...
 
class  Playlist
 Drumkit info. More...
 
class  PortAudioDriver
 
class  PortMidiDriver
 
class  Preferences
 Manager for User Preferences File (singleton) More...
 
class  PulseAudioDriver
 PulseAudio driver. More...
 
class  Random
 Container for functions generating random number. More...
 
class  Sample
 
class  Sampler
 Waveform based sampler. More...
 
struct  SelectedLayerInfo
 Auxiliary variables storing the rendering state of a H2Core::Note within the H2Core::Sampler. More...
 
class  SilentMessageHandler
 
class  SMF
 
class  SMF0Writer
 
class  SMF1Writer
 
class  SMF1WriterMulti
 
class  SMF1WriterSingle
 
class  SMFBase
 
class  SMFBuffer
 
class  SMFCopyRightNoticeMetaEvent
 
class  SMFEvent
 
class  SMFHeader
 
class  SMFNoteOffEvent
 
class  SMFNoteOnEvent
 
class  SMFSetTempoMetaEvent
 
class  SMFTimeSignatureMetaEvent
 
class  SMFTrack
 
class  SMFTrackNameMetaEvent
 
class  SMFWriter
 
class  Song
 Song class. More...
 
class  SongEditorPanelBpmWidget
 
class  SongEditorPanelTagWidget
 
class  SoundLibraryDatabase
 This class holds information about all installed soundlibrary items. More...
 
class  SoundLibraryInfo
 This class holds information about a soundlibrary. More...
 
class  SoundLibraryPropertiesDialog
 
class  Synth
 A simple synthetizer... More...
 
class  Theme
 
class  Timeline
 Timeline class storing and handling all TempoMarkers and Tags. More...
 
class  Translations
 Translations manager. More...
 
class  TransportPosition
 Object holding most of the information about the transport state of the AudioEngine. More...
 
class  WindowProperties
 
class  XMLDoc
 XMLDoc is a subclass of QDomDocument with read and write methods. More...
 
class  XMLNode
 XMLNode is a subclass of QDomNode with read and write values methods. More...
 

Typedefs

typedef struct H2Core::atomic_obj_cpt_t atomic_obj_cpt_t
 an objects class map item type
 
typedef int(* audioProcessCallback) (uint32_t, void *)
 
typedef std::vector< SMFEvent * > EventList
 
typedef std::map< const char *, const atomic_obj_cpt_t * > object_internal_map_t
 
typedef std::map< const char *, obj_cpt_tobject_map_t
 the objects class map types
 

Enumerations

enum  EventType {
  EVENT_NONE , EVENT_STATE , EVENT_PLAYING_PATTERNS_CHANGED , EVENT_NEXT_PATTERNS_CHANGED ,
  EVENT_PATTERN_MODIFIED , EVENT_SELECTED_PATTERN_CHANGED , EVENT_SELECTED_INSTRUMENT_CHANGED , EVENT_INSTRUMENT_PARAMETERS_CHANGED ,
  EVENT_MIDI_ACTIVITY , EVENT_XRUN , EVENT_NOTEON , EVENT_ERROR ,
  EVENT_METRONOME , EVENT_PROGRESS , EVENT_JACK_SESSION , EVENT_PLAYLIST_LOADSONG ,
  EVENT_UNDO_REDO , EVENT_SONG_MODIFIED , EVENT_TEMPO_CHANGED , EVENT_UPDATE_PREFERENCES ,
  EVENT_UPDATE_SONG , EVENT_QUIT , EVENT_TIMELINE_ACTIVATION , EVENT_TIMELINE_UPDATE ,
  EVENT_JACK_TRANSPORT_ACTIVATION , EVENT_JACK_TIMEBASE_STATE_CHANGED , EVENT_SONG_MODE_ACTIVATION , EVENT_STACKED_MODE_ACTIVATION ,
  EVENT_LOOP_MODE_ACTIVATION , EVENT_ACTION_MODE_CHANGE , EVENT_GRID_CELL_TOGGLED , EVENT_COLUMN_CHANGED ,
  EVENT_DRUMKIT_LOADED , EVENT_PATTERN_EDITOR_LOCKED , EVENT_RELOCATION , EVENT_BBT_CHANGED ,
  EVENT_SONG_SIZE_CHANGED , EVENT_DRIVER_CHANGED , EVENT_PLAYBACK_TRACK_CHANGED , EVENT_SOUND_LIBRARY_CHANGED ,
  EVENT_NEXT_SHOT , EVENT_MIDI_MAP_CHANGED
}
 Basic types of communication between the core part of Hydrogen and its GUI. More...
 
enum  SMFEventType { NOTE_OFF = 128 , NOTE_ON = 144 }
 
enum  SMFMetaEventType {
  SEQUENCE_NUMBER = 0 , TEXT_EVENT , COPYRIGHT_NOTICE , TRACK_NAME ,
  INSTRUMENT_NAME , LYRIC , MARKER , CUE_POINT ,
  END_OF_TRACK = 0x2f , SET_TEMPO = 0x51 , TIME_SIGNATURE = 0x58 , KEY_SIGNATURE
}
 

Functions

static int alsa_xrun_recovery (snd_pcm_t *handle, int err)
 
void * alsaAudioDriver_processCaller (void *param)
 
void * alsaMidiDriver_thread (void *param)
 
double applyExponential (const float fExponent, const float fXOffset, const float fYOffset, const float fScale, float *__restrict__ pA, float *__restrict__ pB, float fQ, int nFrames, int nFramesTotal, float fStep, float *__restrict__ pfADSRVal)
 Apply an exponential envelope to a stereo pair of sample fragments.
 
static float check_boundary (float fValue, float fMin, float fMax)
 
static double compute_pitch_scale (const Sample::Rubberband &r)
 
static RubberBand::RubberBandStretcher::Options compute_rubberband_options (const Sample::Rubberband &r)
 
static std::shared_ptr< InstrumentcreateInstrument (int id, const QString &filepath, float volume)
 
timeval currentTime2 ()
 Gets the current time.
 
void * diskWriterDriver_thread (void *param)
 
std::string get_version ()
 Returns the current Hydrogen version string.
 
void init_gui_object_map ()
 
static int JackMidiProcessCallback (jack_nframes_t nframes, void *arg)
 
static void JackMidiShutdown (void *arg)
 
void * loggerThread_func (void *param)
 
static void midiProc (const MIDIPacketList *pktlist, void *readProcRefCon, void *srcConnRefCon)
 
bool operator!= (const AutomationPath &lhs, const AutomationPath &rhs)
 
QDebug operator<< (QDebug d, Base *o)
 
QDebug operator<< (QDebug d, std::shared_ptr< Base > o)
 
std::ostream & operator<< (std::ostream &os, const Base &object)
 
std::ostream & operator<< (std::ostream &os, const Base *object)
 
bool operator== (const AutomationPath &lhs, const AutomationPath &rhs)
 Compare two paths.
 
void * ossDriver_processCaller (void *param)
 
int portAudioCallback (const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo, PaStreamCallbackFlags statusFlags, void *userData)
 
void * PortMidiDriver_thread (void *param)
 
bool version_older_than (int major, int minor, int patch)
 return true of the current version is older than the given values
 

Variables

pthread_t alsaAudioDriverThread
 
int clientId
 
pthread_t diskWriterDriverThread
 
constexpr unsigned int DRUM_CHANNEL = 9
 
const float fAttackExponent = 0.038515241777294117
 
const float fAttackInit = 1.039835771720117430
 
const float fDecayExponent = 0.044796211247505179
 
const float fDecayInit = 1.046934808452493870
 
const float fDecayYOffset = -0.046934663351557632
 
bool isMidiDriverRunning = false
 
pthread_t loggerThread
 
OssDriverm_pOssDriverInstance = NULL
 
pthread_t midiDriverThread
 
unsigned nNextFrames = 0
 
constexpr unsigned int NOTE_LENGTH = 12
 
int npfd
 
int oss_driver_bufferSize = -1
 
audioProcessCallback ossDriver_audioProcessCallback
 
bool ossDriver_running
 
pthread_t ossDriverThread
 
int outPortId
 
struct pollfd * pfd
 
int portId
 
pthread_t PortMidiDriverThread
 
snd_seq_t * seq_handle = nullptr
 
constexpr unsigned int TPQN = 192
 
static const std::string version = H2CORE_VERSION
 

Typedef Documentation

◆ atomic_obj_cpt_t

typedef struct H2Core::atomic_obj_cpt_t atomic_obj_cpt_t

an objects class map item type

◆ audioProcessCallback

typedef int(* audioProcessCallback)(uint32_t, void *)

Definition at line 32 of file AudioOutput.h.

◆ EventList

typedef std::vector<SMFEvent*> EventList

Definition at line 97 of file SMF.h.

◆ object_internal_map_t

typedef std::map<const char*, const atomic_obj_cpt_t*> object_internal_map_t

Definition at line 56 of file Object.h.

◆ object_map_t

typedef std::map<const char*, obj_cpt_t> object_map_t

the objects class map types

Definition at line 55 of file Object.h.

Enumeration Type Documentation

◆ EventType

enum EventType

Basic types of communication between the core part of Hydrogen and its GUI.

Enumerator
EVENT_NONE 

Fallback event.

EVENT_STATE 
EVENT_PLAYING_PATTERNS_CHANGED 

The list of currently played patterns (AudioEngine::getPlayingPatterns()) did change.

In Song::Mode::Song this is triggered every time transport reaches a new column of the SongEditor grid, either by rolling or relocation. In Song::PatternMode::Selected it's triggered by selecting a different pattern and in Song::PatternMode::Stacked as soon as transport is looped to the beginning after a pattern got activated or deactivated.

It is handled by EventListener::playingPatternsChangedEvent().

EVENT_NEXT_PATTERNS_CHANGED 

Used in Song::PatternMode::Stacked to indicate that a either AudioEngine::getNextPatterns() did change.

It is handled by EventListener::nextPatternsChangedEvent().

EVENT_PATTERN_MODIFIED 

A pattern was added, deleted, or modified.

EVENT_SELECTED_PATTERN_CHANGED 

Another pattern was selected via MIDI or the GUI without affecting the audio transport.

While the selection in the former case already happens in the GUI, this event will be used to tell it the selection was successful and had been done.

Handled by EventListener::selectedPatternChangedEvent().

EVENT_SELECTED_INSTRUMENT_CHANGED 
EVENT_INSTRUMENT_PARAMETERS_CHANGED 

Some parameters of an instrument have been changed.

   Numbers `>=0` indicate the number of the instrument that has been
   changed. `-1` indicates that multiple instruments were altered.
EVENT_MIDI_ACTIVITY 
EVENT_XRUN 
EVENT_NOTEON 
EVENT_ERROR 
EVENT_METRONOME 

Triggered when a metronome note is passed to the H2Core::Sampler.

  • 0 - First bar requiring a distinct sound
  • 1 - All the other bars

Handled by EventListener::metronomeEvent().

EVENT_PROGRESS 
EVENT_JACK_SESSION 
EVENT_PLAYLIST_LOADSONG 
EVENT_UNDO_REDO 
EVENT_SONG_MODIFIED 
EVENT_TEMPO_CHANGED 
EVENT_UPDATE_PREFERENCES 

Event triggering the loading or saving of the H2Core::Preferences whenever they were changed outside of the GUI, e.g.

by session management or an OSC command.

If the value of the event is

  • 0 - tells the GUI to save the current geometry settings in the H2Core::Preferences file.
  • 1 - tells the GUI to load the Preferences file and to update a bunch of widgets, checkboxes etc. to reflect the changes in the configuration.
EVENT_UPDATE_SONG 

Event triggering HydrogenApp::updateSongEvent() whenever the Song was changed outside of the GUI, e.g.

by session management or and OSC command.

If the value of the event is

  • 0 - update the GUI to represent the song loaded by the core.
  • 1 - triggered whenever the Song was saved via the core part (updated the title and status bar).
  • 2 - Song is not writable (inform the user via a QMessageBox)
EVENT_QUIT 

Triggering HydrogenApp::quitEvent() and enables a shutdown of the entire application via the command line.

EVENT_TIMELINE_ACTIVATION 

Enables/disables the usage of the Timeline.

EVENT_TIMELINE_UPDATE 

Tells the GUI some parts of the Timeline (tempo markers or tags) were modified.

EVENT_JACK_TRANSPORT_ACTIVATION 

Toggles the button indicating the usage Jack transport.

EVENT_JACK_TIMEBASE_STATE_CHANGED 

Toggles the button indicating the usage Jack timebase master and informs the GUI about a state change.

EVENT_SONG_MODE_ACTIVATION 
EVENT_STACKED_MODE_ACTIVATION 

Song::PatternMode::Stacked (0) or Song::PatternMode::Selected (1) was activated.

EVENT_LOOP_MODE_ACTIVATION 

Toggles the button indicating the usage loop mode.

EVENT_ACTION_MODE_CHANGE 

Switches between select mode (0) and draw mode (1) in the *SongEditor.

EVENT_GRID_CELL_TOGGLED 
EVENT_COLUMN_CHANGED 

Triggered when transport is moved into a different column (either during playback or when relocated by the user)

EVENT_DRUMKIT_LOADED 

A the current drumkit was replaced by a new one.

EVENT_PATTERN_EDITOR_LOCKED 

Locks the PatternEditor on the pattern currently played back.

EVENT_RELOCATION 

Triggered in case there is a relocation of the transport position while trasnsport is not rolling.

This can be either due to an user interaction or an incoming MIDI/OSC/JACK command or at the very end of the song in song mode.

EVENT_BBT_CHANGED 

The coarse grained transport position in beats and bars did change.

(Tick - the "T" in BBT - resolution is not implemented yet as no part of the application requires it).

EVENT_SONG_SIZE_CHANGED 
EVENT_DRIVER_CHANGED 
EVENT_PLAYBACK_TRACK_CHANGED 
EVENT_SOUND_LIBRARY_CHANGED 
EVENT_NEXT_SHOT 
EVENT_MIDI_MAP_CHANGED 

Definition at line 40 of file EventQueue.h.

◆ SMFEventType

Enumerator
NOTE_OFF 
NOTE_ON 

Definition at line 54 of file SMFEvent.h.

◆ SMFMetaEventType

Enumerator
SEQUENCE_NUMBER 
TEXT_EVENT 
COPYRIGHT_NOTICE 
TRACK_NAME 
INSTRUMENT_NAME 
LYRIC 
MARKER 
CUE_POINT 
END_OF_TRACK 
SET_TEMPO 
TIME_SIGNATURE 
KEY_SIGNATURE 

Definition at line 61 of file SMFEvent.h.

Function Documentation

◆ alsa_xrun_recovery()

static int alsa_xrun_recovery ( snd_pcm_t * handle,
int err )
static

Definition at line 37 of file AlsaAudioDriver.cpp.

◆ alsaAudioDriver_processCaller()

void * alsaAudioDriver_processCaller ( void * param)

Definition at line 56 of file AlsaAudioDriver.cpp.

◆ alsaMidiDriver_thread()

void * alsaMidiDriver_thread ( void * param)

Definition at line 58 of file AlsaMidiDriver.cpp.

◆ applyExponential()

double applyExponential ( const float fExponent,
const float fXOffset,
const float fYOffset,
const float fScale,
float *__restrict__ pA,
float *__restrict__ pB,
float fQ,
int nFrames,
int nFramesTotal,
float fStep,
float *__restrict__ pfADSRVal )
inline

Apply an exponential envelope to a stereo pair of sample fragments.

The exponential is generalised by parameters:

  • fXOffset – x offset
  • fYOffset – y offset
  • fExponent – base of the exponential
  • fScale – scale the curve (including reflection)

These parameters allow suitable curves for attack, decay and release to be formed.

Because some parameters will take on trivial values depending on use, it's desirable to inline this to allow constant propagation to remove redundant operations.

The exponential loop isn't naturally vectorisable since there is a loop carried dependency for the exponential variable. However, we can manually unroll the loop and replace the single Q with multiple copies, which allows the SLP vectoriser to piece together a nice loop. On AArch64 we get loops of ~11 instructions for 4 frames.

Even if the code is not SLP-vectorised, the unrolled loop should still have better performance characteristics due to more flexible scheduling and reduced loop overhead.

Definition at line 116 of file Adsr.cpp.

◆ check_boundary()

static float check_boundary ( float fValue,
float fMin,
float fMax )
inlinestatic

Definition at line 138 of file Note.cpp.

◆ compute_pitch_scale()

static double compute_pitch_scale ( const Sample::Rubberband & r)
static

◆ compute_rubberband_options()

static RubberBand::RubberBandStretcher::Options compute_rubberband_options ( const Sample::Rubberband & r)
static

◆ createInstrument()

static std::shared_ptr< Instrument > createInstrument ( int id,
const QString & filepath,
float volume )
static

Definition at line 58 of file Sampler.cpp.

◆ currentTime2()

timeval currentTime2 ( )
inline

Gets the current time.

Returns
Current time obtained by gettimeofday()

Definition at line 75 of file AudioEngine.cpp.

◆ diskWriterDriver_thread()

void * diskWriterDriver_thread ( void * param)

Definition at line 54 of file DiskWriterDriver.cpp.

◆ get_version()

std::string get_version ( )

Returns the current Hydrogen version string.

Definition at line 30 of file Version.cpp.

◆ init_gui_object_map()

void init_gui_object_map ( )

◆ JackMidiProcessCallback()

static int JackMidiProcessCallback ( jack_nframes_t nframes,
void * arg )
static

Definition at line 243 of file JackMidiDriver.cpp.

◆ JackMidiShutdown()

static void JackMidiShutdown ( void * arg)
static

Definition at line 258 of file JackMidiDriver.cpp.

◆ loggerThread_func()

void * loggerThread_func ( void * param)
Parameters
paramis a pointer to the logger instance

Definition at line 44 of file Logger.cpp.

◆ midiProc()

static void midiProc ( const MIDIPacketList * pktlist,
void * readProcRefCon,
void * srcConnRefCon )
static

Definition at line 43 of file CoreMidiDriver.cpp.

◆ operator!=()

bool operator!= ( const AutomationPath & lhs,
const AutomationPath & rhs )

Definition at line 102 of file AutomationPath.cpp.

◆ operator<<() [1/4]

QDebug operator<< ( QDebug d,
Base * o )
inline

Definition at line 168 of file Object.h.

◆ operator<<() [2/4]

QDebug operator<< ( QDebug d,
std::shared_ptr< Base > o )
inline

Definition at line 173 of file Object.h.

◆ operator<<() [3/4]

std::ostream & operator<< ( std::ostream & os,
const Base & object )

Definition at line 219 of file Object.cpp.

◆ operator<<() [4/4]

std::ostream & operator<< ( std::ostream & os,
const Base * object )

Definition at line 223 of file Object.cpp.

◆ operator==()

bool operator== ( const AutomationPath & lhs,
const AutomationPath & rhs )

Compare two paths.

Two paths are considered equal, if they have the same settings (min, max, default) and points in the same places.

Definition at line 93 of file AutomationPath.cpp.

◆ ossDriver_processCaller()

void * ossDriver_processCaller ( void * param)

Definition at line 43 of file OssDriver.cpp.

◆ portAudioCallback()

int portAudioCallback ( const void * inputBuffer,
void * outputBuffer,
unsigned long framesPerBuffer,
const PaStreamCallbackTimeInfo * timeInfo,
PaStreamCallbackFlags statusFlags,
void * userData )

Definition at line 32 of file PortAudioDriver.cpp.

◆ PortMidiDriver_thread()

void * PortMidiDriver_thread ( void * param)

Definition at line 49 of file PortMidiDriver.cpp.

◆ version_older_than()

bool version_older_than ( int major,
int minor,
int patch )

return true of the current version is older than the given values

Definition at line 34 of file Version.cpp.

Variable Documentation

◆ alsaAudioDriverThread

pthread_t alsaAudioDriverThread

Definition at line 35 of file AlsaAudioDriver.cpp.

◆ clientId

int clientId

Definition at line 54 of file AlsaMidiDriver.cpp.

◆ diskWriterDriverThread

pthread_t diskWriterDriverThread

Definition at line 52 of file DiskWriterDriver.cpp.

◆ DRUM_CHANNEL

constexpr unsigned int DRUM_CHANNEL = 9
constexpr

Definition at line 198 of file Smf.cpp.

◆ fAttackExponent

const float fAttackExponent = 0.038515241777294117

Definition at line 29 of file Adsr.cpp.

◆ fAttackInit

const float fAttackInit = 1.039835771720117430

Definition at line 30 of file Adsr.cpp.

◆ fDecayExponent

const float fDecayExponent = 0.044796211247505179

Definition at line 32 of file Adsr.cpp.

◆ fDecayInit

const float fDecayInit = 1.046934808452493870

Definition at line 33 of file Adsr.cpp.

◆ fDecayYOffset

const float fDecayYOffset = -0.046934663351557632

Definition at line 34 of file Adsr.cpp.

◆ isMidiDriverRunning

bool isMidiDriverRunning = false

Definition at line 48 of file AlsaMidiDriver.cpp.

◆ loggerThread

pthread_t loggerThread

Definition at line 42 of file Logger.cpp.

◆ m_pOssDriverInstance

OssDriver* m_pOssDriverInstance = NULL

Definition at line 39 of file OssDriver.cpp.

◆ midiDriverThread

pthread_t midiDriverThread

Definition at line 46 of file AlsaMidiDriver.cpp.

◆ nNextFrames

unsigned nNextFrames = 0

Definition at line 41 of file OssDriver.cpp.

◆ NOTE_LENGTH

constexpr unsigned int NOTE_LENGTH = 12
constexpr

Definition at line 199 of file Smf.cpp.

◆ npfd

int npfd

Definition at line 51 of file AlsaMidiDriver.cpp.

◆ oss_driver_bufferSize

int oss_driver_bufferSize = -1

Definition at line 38 of file OssDriver.cpp.

◆ ossDriver_audioProcessCallback

audioProcessCallback ossDriver_audioProcessCallback

Definition at line 35 of file OssDriver.cpp.

◆ ossDriver_running

bool ossDriver_running

Definition at line 36 of file OssDriver.cpp.

◆ ossDriverThread

pthread_t ossDriverThread

Definition at line 37 of file OssDriver.cpp.

◆ outPortId

int outPortId

Definition at line 55 of file AlsaMidiDriver.cpp.

◆ pfd

struct pollfd* pfd

Definition at line 52 of file AlsaMidiDriver.cpp.

◆ portId

int portId

Definition at line 53 of file AlsaMidiDriver.cpp.

◆ PortMidiDriverThread

pthread_t PortMidiDriverThread

Definition at line 47 of file PortMidiDriver.cpp.

◆ seq_handle

snd_seq_t* seq_handle = nullptr

Definition at line 50 of file AlsaMidiDriver.cpp.

◆ TPQN

constexpr unsigned int TPQN = 192
constexpr

Definition at line 197 of file Smf.cpp.

◆ version

const std::string version = H2CORE_VERSION
static

Definition at line 28 of file Version.cpp.