All files: Enforce naming conventions

nix
Owen Green 7 years ago
parent d76c18b58e
commit 52bafc0184

@ -111,7 +111,8 @@ namespace sc{
{ {
FluidTensorView<float,2> v{mBuffer->data,0, static_cast<size_t>(mBuffer->frames), static_cast<size_t>(mBuffer->channels)}; FluidTensorView<float,2> v{mBuffer->data,0, static_cast<size_t>(mBuffer->frames), static_cast<size_t>(mBuffer->channels)};
return v(fluid::slice(offset,nframes), fluid::slice(chanoffset,1)).col(0); return v(fluid::Slice(offset, nframes), fluid::Slice(chanoffset, 1))
.col(0);
} }
size_t numFrames() const override size_t numFrames() const override
@ -180,7 +181,8 @@ namespace sc{
{ {
FluidTensorView<float,2> v{mBuffer->data,0, static_cast<size_t>(mBuffer->frames), static_cast<size_t>(mBuffer->channels)}; FluidTensorView<float,2> v{mBuffer->data,0, static_cast<size_t>(mBuffer->frames), static_cast<size_t>(mBuffer->channels)};
return v(fluid::slice(offset,nframes), fluid::slice(chanoffset,1)).col(0); return v(fluid::Slice(offset, nframes), fluid::Slice(chanoffset, 1))
.col(0);
} }
size_t numFrames() const override size_t numFrames() const override
@ -310,8 +312,7 @@ namespace sc{
} }
cmd << ", "; cmd << ", ";
if(d.getType() == parameter::Type::Buffer) if (d.getType() == parameter::Type::kBuffer) {
{
if (count == 0) if (count == 0)
cmd << d.getName() << ".bufnum"; cmd << d.getName() << ".bufnum";
else else
@ -326,8 +327,8 @@ namespace sc{
ss << ";\n\n\t\tserver = server ? Server.default\n;" ; ss << ";\n\n\t\tserver = server ? Server.default\n;" ;
if(Client::getParamDescriptors()[0].getType() == parameter::Type::Buffer) if (Client::getParamDescriptors()[0].getType() ==
{ parameter::Type::kBuffer) {
ss << "if("<<Client::getParamDescriptors()[0].getName() ss << "if("<<Client::getParamDescriptors()[0].getName()
<< ".bufnum.isNil) {Error(\"Invalid Buffer\").format(thisMethod.name, this.class.name).throw};\n\n"; << ".bufnum.isNil) {Error(\"Invalid Buffer\").format(thisMethod.name, this.class.name).throw};\n\n";
} }
@ -351,8 +352,7 @@ namespace sc{
{ {
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Buffer: case parameter::Type::kBuffer: {
{
long bufnum = static_cast<long>(args->geti()); long bufnum = static_cast<long>(args->geti());
if (bufnum >= 0) { if (bufnum >= 0) {
SCBufferView *buf = new SCBufferView(bufnum, inWorld); SCBufferView *buf = new SCBufferView(bufnum, inWorld);
@ -360,13 +360,11 @@ namespace sc{
} }
break; break;
} }
case parameter::Type::Long: case parameter::Type::kLong: {
{
p.setLong(static_cast<long>(args->geti())); p.setLong(static_cast<long>(args->geti()));
break; break;
} }
case parameter::Type::Float: case parameter::Type::kFloat: {
{
p.setFloat(args->getf()); p.setFloat(args->getf());
break; break;
} }

@ -14,8 +14,7 @@ static InterfaceTable *ft;
/buf_gen approach: Seems to work, but having to do the 'swap' bewteen NRT mirror buffer and RT buffer /buf_gen approach: Seems to work, but having to do the 'swap' bewteen NRT mirror buffer and RT buffer
in the same thread seems smelly, given how the allocation sequeneces in SC_SequenceCommand seem to work. in the same thread seems smelly, given how the allocation sequeneces in SC_SequenceCommand seem to work.
**/ **/
void BufferMatch(World *world, struct SndBuf *srcBuf, struct sc_msg_iter *msg) void bufferMatch(World *world, struct SndBuf *srcBuf, struct sc_msg_iter *msg) {
{
size_t srcFrameCount = srcBuf->frames; size_t srcFrameCount = srcBuf->frames;
size_t srcChanCount = srcBuf->channels; size_t srcChanCount = srcBuf->channels;
@ -23,17 +22,20 @@ void BufferMatch(World *world, struct SndBuf *srcBuf, struct sc_msg_iter *msg)
size_t rank = msg->geti(); size_t rank = msg->geti();
if (dstBufNum == -1) { if (dstBufNum == -1) {
Print("BufferMatch is not happy because there is no output buffer specified.\n"); Print("BufferMatch is not happy because there is no output buffer "
"specified.\n");
return; return;
} }
// This sequence follows what I saw in SC_SequenceCommand.cpp. Pretty much. // This sequence follows what I saw in SC_SequenceCommand.cpp. Pretty much.
// Get the NRT thread mirror buffer // Get the NRT thread mirror buffer
SndBuf *dstBufNRT = World_GetNRTBuf(world, dstBufNum); SndBuf *dstBufNRT = World_GetNRTBuf(world, dstBufNum);
// Call the allocation function on that // Call the allocation function on that
SCErr err = ft->fBufAlloc(dstBufNRT, srcChanCount * rank, srcFrameCount,srcBuf->samplerate); SCErr err = ft->fBufAlloc(dstBufNRT, srcChanCount * rank, srcFrameCount,
srcBuf->samplerate);
// If we were posh, we'd check for errors // If we were posh, we'd check for errors
//Norhing will happen, unless we (a) assign the allocated data back to the main buffer pool (b?) Tell the server the buffer has changed // Norhing will happen, unless we (a) assign the allocated data back to the
//Get the RT buffer // main buffer pool (b?) Tell the server the buffer has changed Get the RT
// buffer
SndBuf *dstBuf = World_GetBuf(world, dstBufNum); SndBuf *dstBuf = World_GetBuf(world, dstBufNum);
// Assign value to our NRT buffer pointer's value // Assign value to our NRT buffer pointer's value
*dstBuf = *dstBufNRT; *dstBuf = *dstBufNRT;
@ -56,24 +58,24 @@ struct BufferFunTimeCmdData
}; };
//'Stage2()' happens in the NRT thread. Here we do our heavy stuff //'Stage2()' happens in the NRT thread. Here we do our heavy stuff
bool ASyncBufferFun_NRTStage(World* world, void* inUserData) bool aSyncBufferFunNrtStage(World *world, void *inUserData) {
{
BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData; BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData;
SndBuf *src = World_GetNRTBuf(world, data->srcbuf); SndBuf *src = World_GetNRTBuf(world, data->srcbuf);
SndBuf *dst = World_GetNRTBuf(world, data->dstbuf); SndBuf *dst = World_GetNRTBuf(world, data->dstbuf);
SCErr err = ft->fBufAlloc(dst, src->channels * data->rank, src->frames,src->samplerate); SCErr err = ft->fBufAlloc(dst, src->channels * data->rank, src->frames,
src->samplerate);
data->newdst = dst; data->newdst = dst;
return true; return true;
} }
//'Statge3()' happens back in the RT thread, here we swap our new buffers //'Statge3()' happens back in the RT thread, here we swap our new buffers
//SC will send the completion message after this //SC will send the completion message after this
bool ASyncBufferFun_RTStage(World* world, void* inUserData) bool aSyncBufferFunRtStage(World *world, void *inUserData) {
{
BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData; BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData;
//Norhing will happen, unless we (a) assign the allocated data back to the main buffer pool (b?) Tell the server the buffer has changed // Norhing will happen, unless we (a) assign the allocated data back to the
//Get the RT buffer // main buffer pool (b?) Tell the server the buffer has changed Get the RT
// buffer
SndBuf *dstBuf = World_GetBuf(world, data->dstbuf); SndBuf *dstBuf = World_GetBuf(world, data->dstbuf);
// Assign value to our NRT buffer pointer's value // Assign value to our NRT buffer pointer's value
*dstBuf = *data->newdst; *dstBuf = *data->newdst;
@ -83,23 +85,20 @@ bool ASyncBufferFun_RTStage(World* world, void* inUserData)
} }
//'Stage 4()' is back on the NRT, we don't have anything to do here. SC will send 'done' after this //'Stage 4()' is back on the NRT, we don't have anything to do here. SC will send 'done' after this
bool ASyncBufferFun_FinalBit(World* world, void* inUserData) bool aSyncBufferFunFinalBit(World *world, void *inUserData) { return true; }
{
return true;
}
//Here we free any resources, including the struct we made at the start //Here we free any resources, including the struct we made at the start
void ASyncBufferFun_CleanUp(World* world, void* inUserData) void aSyncBufferFunCleanUp(World *world, void *inUserData) {
{
BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData; BufferFunTimeCmdData *data = (BufferFunTimeCmdData *)inUserData;
RTFree(world, data); RTFree(world, data);
// scsynth will take care of the completion message // scsynth will take care of the completion message
} }
//This is our entry point. We need to make a struct and populate it with good things //This is our entry point. We need to make a struct and populate it with good things
void ASyncBufferFun_Main(World *inWorld, void* inUserData, struct sc_msg_iter *msg, void *replyAddr) void aSyncBufferFunMain(World *inWorld, void *inUserData,
{ struct sc_msg_iter *msg, void *replyAddr) {
BufferFunTimeCmdData* data = (BufferFunTimeCmdData*)RTAlloc(inWorld, sizeof(BufferFunTimeCmdData)); BufferFunTimeCmdData *data =
(BufferFunTimeCmdData *)RTAlloc(inWorld, sizeof(BufferFunTimeCmdData));
data->srcbuf = msg->geti(); data->srcbuf = msg->geti();
data->dstbuf = msg->geti(); data->dstbuf = msg->geti();
@ -107,30 +106,27 @@ void ASyncBufferFun_Main(World *inWorld, void* inUserData, struct sc_msg_iter *m
bool ok = true; bool ok = true;
if(data->srcbuf < 0 ) if (data->srcbuf < 0) {
{
Print("No source buffer"); Print("No source buffer");
ok = false; ok = false;
} }
if(data->dstbuf < 0 ) if (data->dstbuf < 0) {
{
Print("No dst buffer"); Print("No dst buffer");
ok = false; ok = false;
} }
if(!ok) if (!ok) {
{
RTFree(inWorld, data); RTFree(inWorld, data);
return; return;
} }
// how to pass a string argument: [WILL BE USEFUL FOR WINDOW FUNCTIONS?] // how to pass a string argument: [WILL BE USEFUL FOR WINDOW FUNCTIONS?]
// const char *name = msg->gets(); // get the string argument // const char *name = msg->gets(); // get the string argument
// if (name) { // if (name) {
// data->name = (char*)RTAlloc(inWorld, strlen(name)+1); // allocate space, free it in cmdCleanup. // data->name = (char*)RTAlloc(inWorld, strlen(name)+1); // allocate
// strcpy(data->name, name); // copy the string // space, free it in cmdCleanup. strcpy(data->name, name); // copy the
// string
// } // }
//Deal with completion message //Deal with completion message
@ -144,20 +140,18 @@ void ASyncBufferFun_Main(World *inWorld, void* inUserData, struct sc_msg_iter *m
} }
//Now, set the wheels in motion //Now, set the wheels in motion
DoAsynchronousCommand(inWorld,replyAddr,"AsyncBufMatch", DoAsynchronousCommand(inWorld, replyAddr, "AsyncBufMatch", data,
data, (AsyncStageFn)aSyncBufferFunNrtStage,
(AsyncStageFn)ASyncBufferFun_NRTStage, (AsyncStageFn)aSyncBufferFunRtStage,
(AsyncStageFn)ASyncBufferFun_RTStage, (AsyncStageFn)aSyncBufferFunFinalBit,
(AsyncStageFn)ASyncBufferFun_FinalBit, aSyncBufferFunCleanUp, completionMsgSize,
ASyncBufferFun_CleanUp, completionMsgString);
completionMsgSize, completionMsgString);
} }
PluginLoad(BufferFunTime) { PluginLoad(BufferFunTime) {
ft = inTable; ft = inTable;
//BufGen version: all in the NRT thread //BufGen version: all in the NRT thread
DefineBufGen("BufMatch", BufferMatch); DefineBufGen("BufMatch", bufferMatch);
//ASync version: swaps between NRT and RT threads //ASync version: swaps between NRT and RT threads
DefinePlugInCmd("AsyncBufMatch", ASyncBufferFun_Main, nullptr); DefinePlugInCmd("AsyncBufMatch", aSyncBufferFunMain, nullptr);
} }

@ -28,7 +28,7 @@ public:
parameter::lookupParam("winsize", params).setLong(in0(1)); parameter::lookupParam("winsize", params).setLong(in0(1));
parameter::lookupParam("hopsize", params).setLong(in0(1)); parameter::lookupParam("hopsize", params).setLong(in0(1));
mClient->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
mClient->reset(); mClient->reset();
inputSignals[0] = SignalPointer(new AudioSignal()); inputSignals[0] = SignalPointer(new AudioSignal());
@ -52,7 +52,7 @@ private:
inputSignals[0]->set(const_cast<float*>(in(0)), in0(0)); inputSignals[0]->set(const_cast<float*>(in(0)), in0(0));
inputSignals[1]->set(const_cast<float*>(in(2)), in0(2)); inputSignals[1]->set(const_cast<float*>(in(2)), in0(2));
outputSignals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
mClient->do_process(inputSignals.begin(),inputSignals.end(),outputSignals.begin(),outputSignals.end(),numsamples,2,1); mClient->doProcess(inputSignals.begin(),inputSignals.end(),outputSignals.begin(),outputSignals.end(),numsamples,2,1);
} }
ClientPointer mClient; ClientPointer mClient;

@ -38,14 +38,14 @@ namespace hpss{
} }
mClient->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
mClient->reset(); mClient->reset();
//Work out what signals we need. For now keep it simple: //Work out what signals we need. For now keep it simple:
input_signals[0] = SignalPointer(new AudioSignalWrapper()); inputSignals[0] = SignalPointer(new AudioSignalWrapper());
output_signals[0] = SignalPointer(new AudioSignalWrapper()); outputSignals[0] = SignalPointer(new AudioSignalWrapper());
output_signals[1] = SignalPointer(new AudioSignalWrapper()); outputSignals[1] = SignalPointer(new AudioSignalWrapper());
output_signals[2] = SignalPointer(new AudioSignalWrapper()); outputSignals[2] = SignalPointer(new AudioSignalWrapper());
mCalcFunc = make_calc_function<FDRTHPSS,&FDRTHPSS::next>(); mCalcFunc = make_calc_function<FDRTHPSS,&FDRTHPSS::next>();
Unit* unit = this; Unit* unit = this;
@ -66,23 +66,23 @@ namespace hpss{
continue; continue;
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Long: case parameter::Type::kLong:
p.setLong(in0(i + 1)); p.setLong(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Float: case parameter::Type::kFloat: {
{
//We need to constrain threshold (normalised) frequency pairs at runtime. // We need to constrain threshold (normalised) frequency pairs at
// runtime.
std::string attrname = p.getDescriptor().getName(); std::string attrname = p.getDescriptor().getName();
auto constraint = paramConstraints.find(attrname); auto constraint = paramConstraints.find(attrname);
if(constraint != paramConstraints.end()) if (constraint != paramConstraints.end()) {
{ double limit = parameter::lookupParam(constraint->second.param,
double limit = parameter::lookupParam(constraint->second.param, mClient->getParams()).getFloat(); mClient->getParams())
.getFloat();
if(!constraint->second.condition(in0(i+1),limit)) if (!constraint->second.condition(in0(i + 1), limit)) {
{
return; return;
} }
} }
@ -91,7 +91,7 @@ namespace hpss{
p.checkRange(); p.checkRange();
} }
break; break;
case parameter::Type::Buffer: case parameter::Type::kBuffer:
// p.setBuffer( in0(i+1)); // p.setBuffer( in0(i+1));
break; break;
default: default:
@ -105,11 +105,11 @@ namespace hpss{
setParams(false); setParams(false);
const float* input = in(0); const float* input = in(0);
const float inscalar = in0(0); const float inscalar = in0(0);
input_signals[0]->set(const_cast<float*>(input), inscalar); inputSignals[0]->set(const_cast<float*>(input), inscalar);
output_signals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
output_signals[1]->set(out(1), out0(1)); outputSignals[1]->set(out(1), out0(1));
output_signals[2]->set(out(2), out0(2)); outputSignals[2]->set(out(2), out0(2));
mClient->do_process(std::begin(input_signals),std::end(input_signals),std::begin(output_signals), std::end(output_signals),numsamples,1,3); mClient->doProcess(std::begin(inputSignals),std::end(inputSignals),std::begin(outputSignals), std::end(outputSignals),numsamples,1,3);
} }
struct Constraint{ struct Constraint{
@ -126,8 +126,8 @@ namespace hpss{
ClientPointer mClient; ClientPointer mClient;
SignalArray<1> input_signals; SignalArray<1> inputSignals;
SignalArray<3> output_signals; SignalArray<3> outputSignals;
}; };
} }
} }

@ -48,7 +48,7 @@ namespace nmf{
mRank = parameter::lookupParam("rank", mClient->getParams()).getLong(); mRank = parameter::lookupParam("rank", mClient->getParams()).getLong();
mClient->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
mClient->reset(); mClient->reset();
inputSignals[0] = SignalPointer(new AudioSignalWrapper()); inputSignals[0] = SignalPointer(new AudioSignalWrapper());
@ -76,18 +76,16 @@ namespace nmf{
continue; continue;
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Long: case parameter::Type::kLong:
p.setLong(in0(i + 1)); p.setLong(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Float: case parameter::Type::kFloat: {
{
p.setFloat(in0(i + 1)); p.setFloat(in0(i + 1));
p.checkRange(); p.checkRange();
} }
break; break;
case parameter::Type::Buffer: case parameter::Type::kBuffer: {
{
long bufnum = static_cast<long>(in0(i+1)); long bufnum = static_cast<long>(in0(i+1));
sc::RTBufferView* currentBuf = static_cast<sc::RTBufferView*>(p.getBuffer()); sc::RTBufferView* currentBuf = static_cast<sc::RTBufferView*>(p.getBuffer());
@ -113,7 +111,7 @@ namespace nmf{
for(size_t i = 0; i < mRank; ++i) for(size_t i = 0; i < mRank; ++i)
outputSignals[i]->set(out(i),out0(i)); outputSignals[i]->set(out(i),out0(i));
mClient->do_process_noOLA(inputSignals.begin(),inputSignals.end(), outputSignals.begin(), outputSignals.end(), mWorld->mFullRate.mBufLength ,1,mRank); mClient->doProcessNoOla(inputSignals.begin(),inputSignals.end(), outputSignals.begin(), outputSignals.end(), mWorld->mFullRate.mBufLength ,1,mRank);
for(size_t i = 0; i < mRank; ++i) for(size_t i = 0; i < mRank; ++i)
out0(i) = outputSignals[i]->next(); out0(i) = outputSignals[i]->next();
} }

@ -23,21 +23,20 @@ public:
//Window size, Hop size, FFT Size //Window size, Hop size, FFT Size
//Get the window size //Get the window size
const float window_size = in0(1); const float windowSize = in0(1);
const float hop_size = in0(2); const float hopSize = in0(2);
const float fft_size = in0(3); const float fftSize = in0(3);
//Oh NO! Heap allocation! Make client object //Oh NO! Heap allocation! Make client object
m_client = new audio::BaseSTFTClient<double,float>(65536); mClient = new audio::BaseSTFTClient<double,float>(65536);
m_client->getParams()[0].setLong(window_size); mClient->getParams()[0].setLong(windowSize);
m_client->getParams()[1].setLong(hop_size); mClient->getParams()[1].setLong(hopSize);
m_client->getParams()[2].setLong(fft_size); mClient->getParams()[2].setLong(fftSize);
bool isOK; bool isOK;
std::string feedback; std::string feedback;
std::tie(isOK, feedback) = m_client->sanityCheck(); std::tie(isOK, feedback) = mClient->sanityCheck();
if(!isOK) if(!isOK)
{ {
Print("fdSTFTPass Error: %s",feedback.c_str()); Print("fdSTFTPass Error: %s",feedback.c_str());
@ -45,14 +44,14 @@ public:
} }
m_client->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
m_client->reset(); mClient->reset();
//Work out what signals we need. For now keep it simple: //Work out what signals we need. For now keep it simple:
//in 0 => only audio //in 0 => only audio
//out 0 => only audio //out 0 => only audio
input_signals[0] = new AudioSignalWrapper(); inputSignals[0] = new AudioSignalWrapper();
output_signals[0] = new AudioSignalWrapper(); outputSignals[0] = new AudioSignalWrapper();
mCalcFunc = make_calc_function<FDSTFTPass,&FDSTFTPass::next>(); mCalcFunc = make_calc_function<FDSTFTPass,&FDSTFTPass::next>();
Unit* unit = this; Unit* unit = this;
@ -61,9 +60,9 @@ public:
~FDSTFTPass() ~FDSTFTPass()
{ {
delete input_signals[0]; delete inputSignals[0];
delete output_signals[0]; delete outputSignals[0];
delete m_client; delete mClient;
} }
private: private:
@ -71,14 +70,14 @@ private:
{ {
const float* input = in(0); const float* input = in(0);
const float inscalar = in0(0); const float inscalar = in0(0);
input_signals[0]->set(const_cast<float*>(input), inscalar); inputSignals[0]->set(const_cast<float*>(input), inscalar);
output_signals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
m_client->do_process(std::begin(input_signals),std::end(input_signals),std::begin(output_signals), std::end(output_signals),numsamples,1,1); mClient->doProcess(std::begin(inputSignals),std::end(inputSignals),std::begin(outputSignals), std::end(outputSignals),numsamples,1,1);
} }
audio::BaseSTFTClient<double, float>* m_client; audio::BaseSTFTClient<double, float> *mClient;
SignalWrapper* input_signals[1]; SignalWrapper *inputSignals[1];
SignalWrapper* output_signals[1]; SignalWrapper *outputSignals[1];
}; };
} }
} }
@ -87,7 +86,3 @@ PluginLoad(FluidSTFTUGen) {
ft = inTable; ft = inTable;
registerUnit<fluid::stft::FDSTFTPass>(ft, "FluidSTFTPass"); registerUnit<fluid::stft::FDSTFTPass>(ft, "FluidSTFTPass");
} }

@ -31,7 +31,7 @@ namespace stn{
// //
//Oh NO! Heap allocation! Make client object //Oh NO! Heap allocation! Make client object
m_client = new stn::SinesClient<double,float>(65536); mClient = new stn::SinesClient<double,float>(65536);
setParams(true); setParams(true);
// m_client->getParams()[0].setLong(pfilter_size); // m_client->getParams()[0].setLong(pfilter_size);
@ -43,7 +43,7 @@ namespace stn{
bool isOK; bool isOK;
std::string feedback; std::string feedback;
std::tie(isOK, feedback) = m_client->sanityCheck(); std::tie(isOK, feedback) = mClient->sanityCheck();
if(!isOK) if(!isOK)
{ {
Print("fdRTHPSS Error: %s",feedback.c_str()); Print("fdRTHPSS Error: %s",feedback.c_str());
@ -51,15 +51,15 @@ namespace stn{
} }
m_client->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
m_client->reset(); mClient->reset();
//Work out what signals we need. For now keep it simple: //Work out what signals we need. For now keep it simple:
//in 0 => only audio //in 0 => only audio
//out 0 => only audio //out 0 => only audio
input_signals[0] = new AudioSignalWrapper(); inputSignals[0] = new AudioSignalWrapper();
output_signals[0] = new AudioSignalWrapper(); outputSignals[0] = new AudioSignalWrapper();
output_signals[1] = new AudioSignalWrapper(); outputSignals[1] = new AudioSignalWrapper();
mCalcFunc = make_calc_function<FDRTSines,&FDRTSines::next>(); mCalcFunc = make_calc_function<FDRTSines,&FDRTSines::next>();
Unit* unit = this; Unit* unit = this;
@ -68,35 +68,35 @@ namespace stn{
~FDRTSines() ~FDRTSines()
{ {
delete input_signals[0]; delete inputSignals[0];
delete output_signals[0]; delete outputSignals[0];
delete output_signals[1]; delete outputSignals[1];
delete m_client; delete mClient;
} }
private: private:
void setParams(bool instantiation) void setParams(bool instantiation)
{ {
assert(m_client); assert(mClient);
for(size_t i = 0; i < m_client->getParams().size(); ++i) for(size_t i = 0; i < mClient->getParams().size(); ++i)
{ {
parameter::Instance& p = m_client->getParams()[i]; parameter::Instance& p = mClient->getParams()[i];
if(!instantiation && p.getDescriptor().instantiation()) if(!instantiation && p.getDescriptor().instantiation())
continue; continue;
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Long: case parameter::Type::kLong:
p.setLong(in0(i + 1)); p.setLong(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Float: case parameter::Type::kFloat:
p.setFloat(in0(i + 1)); p.setFloat(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Buffer: case parameter::Type::kBuffer:
// p.setBuffer( in0(i+1)); // p.setBuffer( in0(i+1));
break; break;
default: default:
@ -111,15 +111,15 @@ namespace stn{
setParams(false); setParams(false);
const float* input = in(0); const float* input = in(0);
const float inscalar = in0(0); const float inscalar = in0(0);
input_signals[0]->set(const_cast<float*>(input), inscalar); inputSignals[0]->set(const_cast<float*>(input), inscalar);
output_signals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
output_signals[1]->set(out(1), out0(1)); outputSignals[1]->set(out(1), out0(1));
m_client->do_process(std::begin(input_signals),std::end(input_signals),std::begin(output_signals), std::end(output_signals),numsamples,1,2); mClient->doProcess(std::begin(inputSignals),std::end(inputSignals),std::begin(outputSignals), std::end(outputSignals),numsamples,1,2);
} }
stn::SinesClient<double, float>* m_client; stn::SinesClient<double, float> *mClient;
SignalWrapper* input_signals[1]; SignalWrapper *inputSignals[1];
SignalWrapper* output_signals[2]; SignalWrapper *outputSignals[2];
}; };
} }
} }

@ -18,12 +18,12 @@ namespace segmentation{
public: public:
FluidSliceTransients() FluidSliceTransients()
{ {
m_client = new audio_client(65536); mClient = new audio_client(65536);
setParams(true); setParams(true);
bool isOK; bool isOK;
std::string feedback; std::string feedback;
std::tie(isOK, feedback) = m_client->sanityCheck(); std::tie(isOK, feedback) = mClient->sanityCheck();
if(!isOK) if(!isOK)
{ {
Print("FluidSliceTransients Error: %s",feedback.c_str()); Print("FluidSliceTransients Error: %s",feedback.c_str());
@ -31,14 +31,14 @@ namespace segmentation{
} }
m_client->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
m_client->reset(); mClient->reset();
//Work out what signals we need. For now keep it simple: //Work out what signals we need. For now keep it simple:
//in 0 => only audio //in 0 => only audio
//out 0 => only audio //out 0 => only audio
input_signals[0] = new AudioSignalWrapper(); inputSignals[0] = new AudioSignalWrapper();
output_signals[0] = new AudioSignalWrapper(); outputSignals[0] = new AudioSignalWrapper();
mCalcFunc = make_calc_function<FluidSliceTransients,&FluidSliceTransients::next>(); mCalcFunc = make_calc_function<FluidSliceTransients,&FluidSliceTransients::next>();
Unit* unit = this; Unit* unit = this;
@ -47,34 +47,34 @@ namespace segmentation{
~FluidSliceTransients() ~FluidSliceTransients()
{ {
delete input_signals[0]; delete inputSignals[0];
delete output_signals[0]; delete outputSignals[0];
delete m_client; delete mClient;
} }
private: private:
void setParams(bool instantiation) void setParams(bool instantiation)
{ {
assert(m_client); assert(mClient);
for(size_t i = 0; i < m_client->getParams().size(); ++i) for(size_t i = 0; i < mClient->getParams().size(); ++i)
{ {
parameter::Instance& p = m_client->getParams()[i]; parameter::Instance& p = mClient->getParams()[i];
if(!instantiation && p.getDescriptor().instantiation()) if(!instantiation && p.getDescriptor().instantiation())
continue; continue;
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Long: case parameter::Type::kLong:
p.setLong(in0(i + 1)); p.setLong(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Float: case parameter::Type::kFloat:
p.setFloat(in0(i + 1)); p.setFloat(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Buffer: case parameter::Type::kBuffer:
// p.setBuffer( in0(i+1)); // p.setBuffer( in0(i+1));
break; break;
default: default:
@ -89,14 +89,14 @@ namespace segmentation{
setParams(false); setParams(false);
const float* input = in(0); const float* input = in(0);
const float inscalar = in0(0); const float inscalar = in0(0);
input_signals[0]->set(const_cast<float*>(input), inscalar); inputSignals[0]->set(const_cast<float*>(input), inscalar);
output_signals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
m_client->do_process(std::begin(input_signals),std::end(input_signals),std::begin(output_signals), std::end(output_signals),numsamples,1,1); mClient->doProcess(std::begin(inputSignals),std::end(inputSignals),std::begin(outputSignals), std::end(outputSignals),numsamples,1,1);
} }
audio_client* m_client; audio_client *mClient;
SignalWrapper* input_signals[1]; SignalWrapper *inputSignals[1];
SignalWrapper* output_signals[1]; SignalWrapper *outputSignals[1];
}; };
} }
} }

@ -31,19 +31,19 @@ namespace stn{
// //
//Oh NO! Heap allocation! Make client object //Oh NO! Heap allocation! Make client object
m_client = new stn::TransientsClient<double,float>(65536); mClient = new stn::TransientsClient<double,float>(65536);
setParams(true); setParams(true);
// m_client->getParams()[0].setLong(pfilter_size); // mClient->geParams()[0].setLong(pfilter_size);
// m_client->getParams()[1].setLong(hfilter_size); // mClient->geParams()[1].setLong(hfilter_size);
// m_client->getParams()[2].setLong(window_size); // mClient->geParams()[2].setLong(window_size);
// m_client->getParams()[3].setLong(hop_size); // mClient->geParams()[3].setLong(hop_size);
// m_client->getParams()[4].setLong(fft_size); // mClient->geParams()[4].setLong(fft_size);
bool isOK; bool isOK;
std::string feedback; std::string feedback;
std::tie(isOK, feedback) = m_client->sanityCheck(); std::tie(isOK, feedback) = mClient->sanityCheck();
if(!isOK) if(!isOK)
{ {
Print("fdRTHPSS Error: %s",feedback.c_str()); Print("fdRTHPSS Error: %s",feedback.c_str());
@ -51,15 +51,15 @@ namespace stn{
} }
m_client->set_host_buffer_size(bufferSize()); mClient->setHostBufferSize(bufferSize());
m_client->reset(); mClient->reset();
//Work out what signals we need. For now keep it simple: //Work out what signals we need. For now keep it simple:
//in 0 => only audio //in 0 => only audio
//out 0 => only audio //out 0 => only audio
input_signals[0] = new AudioSignalWrapper(); inputSignals[0] = new AudioSignalWrapper();
output_signals[0] = new AudioSignalWrapper(); outputSignals[0] = new AudioSignalWrapper();
output_signals[1] = new AudioSignalWrapper(); outputSignals[1] = new AudioSignalWrapper();
mCalcFunc = make_calc_function<FluidTransients,&FluidTransients::next>(); mCalcFunc = make_calc_function<FluidTransients,&FluidTransients::next>();
Unit* unit = this; Unit* unit = this;
@ -68,35 +68,34 @@ namespace stn{
~FluidTransients() ~FluidTransients()
{ {
delete input_signals[0]; delete inputSignals[0];
delete output_signals[0]; delete outputSignals[0];
delete output_signals[1]; delete outputSignals[1];
delete m_client; delete mClient;
} }
private: private:
void setParams(bool instantiation) void setParams(bool instantiation)
{ {
assert(m_client); assert(mClient);
for(size_t i = 0; i < m_client->getParams().size(); ++i) for(size_t i = 0; i < mClient->getParams().size(); ++i)
{ {
parameter::Instance& p = m_client->getParams()[i]; parameter::Instance& p = mClient->getParams()[i];
if(!instantiation && p.getDescriptor().instantiation()) if(!instantiation && p.getDescriptor().instantiation())
continue; continue;
switch(p.getDescriptor().getType()) switch(p.getDescriptor().getType())
{ {
case parameter::Type::Long: case parameter::Type::kLong:
p.setLong(in0(i + 1)); p.setLong(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Float: case parameter::Type::kFloat:
p.setFloat(in0(i + 1)); p.setFloat(in0(i + 1));
p.checkRange(); p.checkRange();
break; break;
case parameter::Type::Buffer: case parameter::Type::kBuffer:
// p.setBuffer( in0(i+1)); // p.setBuffer( in0(i+1));
break; break;
default: default:
@ -111,15 +110,15 @@ namespace stn{
setParams(false); setParams(false);
const float* input = in(0); const float* input = in(0);
const float inscalar = in0(0); const float inscalar = in0(0);
input_signals[0]->set(const_cast<float*>(input), inscalar); inputSignals[0]->set(const_cast<float*>(input), inscalar);
output_signals[0]->set(out(0), out0(0)); outputSignals[0]->set(out(0), out0(0));
output_signals[1]->set(out(1), out0(1)); outputSignals[1]->set(out(1), out0(1));
m_client->do_process(std::begin(input_signals),std::end(input_signals),std::begin(output_signals), std::end(output_signals),numsamples,1,2); mClient->doProcess(std::begin(inputSignals),std::end(inputSignals),std::begin(outputSignals), std::end(outputSignals),numsamples,1,2);
} }
stn::TransientsClient<double, float>* m_client; stn::TransientsClient<double, float> *mClient;
SignalWrapper* input_signals[1]; SignalWrapper *inputSignals[1];
SignalWrapper* output_signals[2]; SignalWrapper *outputSignals[2];
}; };
} }
} }

Loading…
Cancel
Save