182 lines
9.6 KiB
C++
182 lines
9.6 KiB
C++
/**
|
|
* Copyright (c) 2021 Enzien Audio, Ltd.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
* are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions, and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the phrase "powered by heavy",
|
|
* the heavy logo, and a hyperlink to https://enzienaudio.com, all in a visible
|
|
* form.
|
|
*
|
|
* 2.1 If the Application is distributed in a store system (for example,
|
|
* the Apple "App Store" or "Google Play"), the phrase "powered by heavy"
|
|
* shall be included in the app description or the copyright text as well as
|
|
* the in the app itself. The heavy logo will shall be visible in the app
|
|
* itself as well.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
*/
|
|
|
|
#ifndef _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_
|
|
#define _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_
|
|
|
|
// object includes
|
|
#include "HeavyContext.hpp"
|
|
#include "HvControlCast.h"
|
|
#include "HvControlVar.h"
|
|
#include "HvControlDelay.h"
|
|
#include "HvControlSystem.h"
|
|
#include "HvControlBinop.h"
|
|
#include "HvTable.h"
|
|
#include "HvSignalTabwrite.h"
|
|
#include "HvSignalVar.h"
|
|
#include "HvSignalTabread.h"
|
|
#include "HvMath.h"
|
|
#include "HvSignalPhasor.h"
|
|
#include "HvSignalLine.h"
|
|
|
|
class Heavy_arp_delay_env_pd : public HeavyContext {
|
|
|
|
public:
|
|
Heavy_arp_delay_env_pd(double sampleRate, int poolKb=10, int inQueueKb=2, int outQueueKb=0);
|
|
~Heavy_arp_delay_env_pd();
|
|
|
|
const char *getName() override { return "arp_delay_env_pd"; }
|
|
int getNumInputChannels() override { return 0; }
|
|
int getNumOutputChannels() override { return 2; }
|
|
|
|
int process(float **inputBuffers, float **outputBuffer, int n) override;
|
|
int processInline(float *inputBuffers, float *outputBuffer, int n) override;
|
|
int processInlineInterleaved(float *inputBuffers, float *outputBuffer, int n) override;
|
|
|
|
int getParameterInfo(int index, HvParameterInfo *info) override;
|
|
struct Parameter {
|
|
struct In {
|
|
enum ParameterIn : hv_uint32_t {
|
|
CHANNEL_A = 0x79853B03, // Channel_A
|
|
CHANNEL_B = 0xE16E1682, // Channel_B
|
|
CHANNEL_C = 0xE72718FC, // Channel_C
|
|
CHANNEL_D = 0x307C0274, // Channel_D
|
|
};
|
|
};
|
|
};
|
|
|
|
private:
|
|
HvTable *getTableForHash(hv_uint32_t tableHash) override;
|
|
void scheduleMessageForReceiver(hv_uint32_t receiverHash, HvMessage *m) override;
|
|
|
|
// static sendMessage functions
|
|
static void cVar_YvPEpnUh_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_eHayjBv6_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cDelay_DYnzHpic_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSwitchcase_O5mYhl3b_onMessage(HeavyContextInterface *, void *, int letIn, const HvMessage *const, void *);
|
|
static void cCast_gzZa7okE_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_hj1UO5Xy_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_xUl3JuzU_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSystem_pBUNmntT_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_sPNudZ6R_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_d9vmQ0rR_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_G3zRyasr_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_E4Ec6do0_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_XXw3dChu_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_SLtg6rNc_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_YIxdPCGV_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_Zqip7Xkd_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSystem_zehWpnU4_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_ssKQAxko_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_s01cENlp_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_qGBikGct_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_qfTfqBM3_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSystem_4oKrr4xn_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cDelay_X79tuCf2_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cDelay_hlwCH2uT_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_MxJmfWRW_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSystem_rAf0fyDp_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_ET5EQCTg_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_8GCNF1V8_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_3up8OQvv_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_icWX8ifl_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_ae7TxKOA_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void hTable_ncKDzzLt_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cCast_Wzlb1WzU_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cVar_AF7niKwq_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cCast_zvxvkeYa_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cSwitchcase_mEf8Naqe_onMessage(HeavyContextInterface *, void *, int letIn, const HvMessage *const, void *);
|
|
static void cBinop_0qRwCHv8_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_CwzvBF2s_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_9OkU32H1_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_puVbRaHY_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_m5zjVpQA_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_vc0hK7tw_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cBinop_GJqnOqJV_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_0V4UPj7Z_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_jOD5Mj4Q_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_dmrzMGJf_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_hPlGDhkM_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_tM3dKBd6_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_2SqJZJHs_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_5N2semj0_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cMsg_BQRg6jNP_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cCast_0XRxEH1C_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cCast_GKFWiStO_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cReceive_E1RLP07b_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cReceive_LPnclThz_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cReceive_dWWIm2kL_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cReceive_vkMNq8T0_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
static void cReceive_9w5JwN59_sendMessage(HeavyContextInterface *, int, const HvMessage *);
|
|
|
|
// objects
|
|
SignalLine sLine_CPk6VuuC;
|
|
SignalTabhead sTabhead_Ccf3pWD1;
|
|
SignalTabread sTabread_AIPPIP2p;
|
|
SignalTabread sTabread_OR6AChVH;
|
|
SignalPhasor sPhasor_p4d5TEqg;
|
|
SignalLine sLine_GYQ4PLNT;
|
|
SignalTabwrite sTabwrite_qOQtZKqp;
|
|
ControlVar cVar_YvPEpnUh;
|
|
ControlVar cVar_eHayjBv6;
|
|
ControlDelay cDelay_DYnzHpic;
|
|
ControlVar cVar_hj1UO5Xy;
|
|
ControlBinop cBinop_sPNudZ6R;
|
|
ControlBinop cBinop_d9vmQ0rR;
|
|
ControlBinop cBinop_G3zRyasr;
|
|
ControlVar cVar_XXw3dChu;
|
|
ControlVar cVar_SLtg6rNc;
|
|
ControlVar cVar_YIxdPCGV;
|
|
ControlVar cVar_ssKQAxko;
|
|
ControlBinop cBinop_s01cENlp;
|
|
ControlBinop cBinop_qGBikGct;
|
|
SignalVarf sVarf_NKFEO8VS;
|
|
SignalVarf sVarf_TJn8TVJj;
|
|
SignalVarf sVarf_0ophamek;
|
|
ControlDelay cDelay_X79tuCf2;
|
|
ControlDelay cDelay_hlwCH2uT;
|
|
ControlBinop cBinop_ET5EQCTg;
|
|
ControlBinop cBinop_8GCNF1V8;
|
|
HvTable hTable_ncKDzzLt;
|
|
ControlVar cVar_AF7niKwq;
|
|
ControlBinop cBinop_0qRwCHv8;
|
|
ControlBinop cBinop_CwzvBF2s;
|
|
ControlBinop cBinop_9OkU32H1;
|
|
ControlBinop cBinop_puVbRaHY;
|
|
SignalVarf sVarf_mi6YMKiN;
|
|
ControlBinop cBinop_m5zjVpQA;
|
|
ControlBinop cBinop_vc0hK7tw;
|
|
ControlBinop cBinop_GJqnOqJV;
|
|
};
|
|
|
|
#endif // _HEAVY_CONTEXT_ARP_DELAY_ENV_PD_HPP_
|