OpenGothic
Open source reimplementation of Gothic I and II
Loading...
Searching...
No Matches
Dx8::Hydra Class Reference

#include <hydra.h>

Public Types

enum  Generator : uint8_t {
  kAttackModEnv = 26 , kDecayModEnv = 28 , kSustainModEnv = 29 , kReleaseModEnv = 30 ,
  kAttackVolEnv = 34 , kDecayVolEnv = 36 , kSustainVolEnv = 37 , kReleaseVolEnv = 38 ,
  kKeyRange = 43 , kVelRange = 44 , kSampleID = 53 , kSampleModes = 54
}
 
enum  ArticulatorDestination : uint16_t {
  None = 0x0000 , Attenuation = 0x0001 , Pitch = 0x0003 , Pan = 0x0004 ,
  LFOFrequency = 0x0104 , LFOStartDelay = 0x0105 , EG1AttachTime = 0x0206 , EG1DecayTime = 0x0207 ,
  EG1ReleaseTime = 0x0209 , EG1SustainLevel = 0x020a , EG2AttachTime = 0x030a , EG2DecayTime = 0x030b ,
  EG2ReleaseTime = 0x030d , EG2SustainLevel = 0x030e
}
 

Public Member Functions

 Hydra (const DlsCollection &dls, const std::vector< Wave > &wave)
 
 ~Hydra ()
 
tsf * toTsf ()
 
void toTsf (tsf_hydra &out)
 
bool validate (const tsf_hydra &tsf) const
 

Static Public Member Functions

static void finalize (tsf *tsf)
 
static bool hasNotes (tsf *tsf)
 
static void noteOn (tsf *f, int presetId, int key, float vel)
 
static void noteOff (tsf *f, int presetId, int key)
 
static int presetIndex (const tsf *f, int bank, int presetNum)
 
static void renderFloat (tsf *f, float *buffer, int samples, int flag)
 
static int channelSetPan (tsf *f, int channel, float pan)
 
static void setOutput (tsf *f, int samplerate, float gain)
 

Public Attributes

std::vector< tsf_hydra_phdr > phdr
 
std::vector< tsf_hydra_pbag > pbag
 
std::vector< tsf_hydra_pmod > pmod
 
std::vector< tsf_hydra_pgen > pgen
 
std::vector< tsf_hydra_inst > inst
 
std::vector< tsf_hydra_ibag > ibag
 
std::vector< tsf_hydra_imod > imod
 
std::vector< tsf_hydra_igen > igen
 
std::vector< tsf_hydra_shdr > shdr
 
std::unique_ptr< float[]> wdata
 
size_t wdataSize =0
 

Detailed Description

Definition at line 24 of file hydra.h.

Member Enumeration Documentation

◆ ArticulatorDestination

Enumerator
None 
Attenuation 
Pitch 
Pan 
LFOFrequency 
LFOStartDelay 
EG1AttachTime 
EG1DecayTime 
EG1ReleaseTime 
EG1SustainLevel 
EG2AttachTime 
EG2DecayTime 
EG2ReleaseTime 
EG2SustainLevel 

Definition at line 40 of file hydra.h.

◆ Generator

enum Dx8::Hydra::Generator : uint8_t
Enumerator
kAttackModEnv 
kDecayModEnv 
kSustainModEnv 
kReleaseModEnv 
kAttackVolEnv 
kDecayVolEnv 
kSustainVolEnv 
kReleaseVolEnv 
kKeyRange 
kVelRange 
kSampleID 
kSampleModes 

Definition at line 26 of file hydra.h.

Constructor & Destructor Documentation

◆ Hydra()

Hydra::Hydra ( const DlsCollection dls,
const std::vector< Wave > &  wave 
)

Definition at line 183 of file hydra.cpp.

◆ ~Hydra()

Hydra::~Hydra ( )

Definition at line 284 of file hydra.cpp.

Member Function Documentation

◆ channelSetPan()

int Hydra::channelSetPan ( tsf *  f,
int  channel,
float  pan 
)
static

Definition at line 316 of file hydra.cpp.

◆ finalize()

void Hydra::finalize ( tsf *  tsf)
static

Definition at line 287 of file hydra.cpp.

◆ hasNotes()

bool Hydra::hasNotes ( tsf *  tsf)
static

Definition at line 292 of file hydra.cpp.

◆ noteOff()

void Hydra::noteOff ( tsf *  f,
int  presetId,
int  key 
)
static

Definition at line 304 of file hydra.cpp.

◆ noteOn()

void Hydra::noteOn ( tsf *  f,
int  presetId,
int  key,
float  vel 
)
static

Definition at line 300 of file hydra.cpp.

◆ presetIndex()

int Hydra::presetIndex ( const tsf *  f,
int  bank,
int  presetNum 
)
static

Definition at line 308 of file hydra.cpp.

◆ renderFloat()

void Hydra::renderFloat ( tsf *  f,
float *  buffer,
int  samples,
int  flag 
)
static

Definition at line 312 of file hydra.cpp.

◆ setOutput()

void Hydra::setOutput ( tsf *  f,
int  samplerate,
float  gain 
)
static

Definition at line 320 of file hydra.cpp.

◆ toTsf() [1/2]

tsf * Hydra::toTsf ( )

Definition at line 324 of file hydra.cpp.

◆ toTsf() [2/2]

void Hydra::toTsf ( tsf_hydra &  out)

Definition at line 339 of file hydra.cpp.

◆ validate()

bool Hydra::validate ( const tsf_hydra &  tsf) const

Definition at line 410 of file hydra.cpp.

Member Data Documentation

◆ ibag

std::vector<tsf_hydra_ibag> Dx8::Hydra::ibag

Definition at line 83 of file hydra.h.

◆ igen

std::vector<tsf_hydra_igen> Dx8::Hydra::igen

Definition at line 85 of file hydra.h.

◆ imod

std::vector<tsf_hydra_imod> Dx8::Hydra::imod

Definition at line 84 of file hydra.h.

◆ inst

std::vector<tsf_hydra_inst> Dx8::Hydra::inst

Definition at line 82 of file hydra.h.

◆ pbag

std::vector<tsf_hydra_pbag> Dx8::Hydra::pbag

Definition at line 79 of file hydra.h.

◆ pgen

std::vector<tsf_hydra_pgen> Dx8::Hydra::pgen

Definition at line 81 of file hydra.h.

◆ phdr

std::vector<tsf_hydra_phdr> Dx8::Hydra::phdr

Definition at line 78 of file hydra.h.

◆ pmod

std::vector<tsf_hydra_pmod> Dx8::Hydra::pmod

Definition at line 80 of file hydra.h.

◆ shdr

std::vector<tsf_hydra_shdr> Dx8::Hydra::shdr

Definition at line 86 of file hydra.h.

◆ wdata

std::unique_ptr<float[]> Dx8::Hydra::wdata

Definition at line 88 of file hydra.h.

◆ wdataSize

size_t Dx8::Hydra::wdataSize =0

Definition at line 89 of file hydra.h.


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