void checkAll(Xbox360Controller &cont) { if (cont.isConnected()) { cont.updateState(); checkButton(cont, client, 0, "a"); checkButton(cont, client, 1, "b"); checkButton(cont, client, 2, "x"); checkButton(cont, client, 3, "y"); checkButton(cont, client, 4, "dpadup"); checkButton(cont, client, 5, "dpaddown"); checkButton(cont, client, 6, "dpadleft"); checkButton(cont, client, 7, "dpadright"); checkButton(cont, client, 8, "start"); checkButton(cont, client, 9, "back"); checkButton(cont, client, 10, "leftthumbbutton"); checkButton(cont, client, 11, "rightthumbbutton"); checkButton(cont, client, 12, "white"); checkButton(cont, client, 13, "black"); checkTrigger(cont, client, 0, "rightanalogtrigger"); checkTrigger(cont, client, 1, "leftanalogtrigger"); checkThumb(cont, client, 0, "leftthumbstickleft", "leftthumbstickright"); checkThumb(cont, client, 1, "leftthumbstickdown", "leftthumbstickup"); checkThumb(cont, client, 2, "rightthumbstickleft", "rightthumbstickright"); checkThumb(cont, client, 3, "rightthumbstickdown", "rightthumbstickup"); } }
void pdsp::Sampler::process_audio( const float* pitchModBuffer, const float* triggerBuffer, const float* &selectBuffer, int &selectState, const float* &startBuffer, int& startState, int bufferSize)noexcept{ float* outputBuffer = getOutputBufferToFill(output); if(pitchModAR){ // vect_calculateIncrement(outputBuffer, pitchModBuffer, incBase * sample->fileSampleRate, bufferSize); //in this way is always correct even with oversample } for(int n=0; n<bufferSize; ++n){ if(triggerAR){ if(checkTrigger(triggerBuffer[n])){ selectSample(selectBuffer, selectState, startBuffer, startState, n, bufferSize); } } if(pitchModAR){ inc = outputBuffer[n]; //we have the calculated pitchs inside outputbuffer } int readIndex_int = static_cast<int>(readIndex); if(readIndex_int>=0 && readIndex_int < sample->length){ outputBuffer[n] = interpolatorShell.interpolator->interpolate(sample->buffer[sample->mono], readIndex, sample->length); }else{ outputBuffer[n] = 0.0f; } readIndex += inc*direction; } positionMeter.store(readIndex*positionDivider); }
bool SoftTimerMgr_c::startTimer(TimerInterface_i* obj, int nInterval, TimerEvent_t& event) { TimerItem_t* pItem = NULL; // take item from pool if there is if (false == lstItemPool_m.isEmpty()) { pItem = lstItemPool_m.takeLast(); } if (NULL == pItem) { pItem = new TimerItem_t(); if (NULL == pItem) { return false; } } unsigned int tCurrentTime = System_c::getTimeTick() ; // append item to registerred list pItem->obj_m = obj; pItem->nInterval_m = nInterval; pItem->tStartTime_m = tCurrentTime; pItem->event_m = event; lstRegisteredItemList_m.append(pItem); checkTrigger(tCurrentTime, nInterval); //MSG("Add one timer, interval: %d, start time=%x\n", pItem->nInterval_m, pItem->tStartTime_m); return true; }
void JunoLfo::lfomodeChanged(double data) { //printf("lfo_mode is %f\n", data); lfomode = (data != 0); trigger = !lfotrigger; checkTrigger(); }
void JunoLfo::voicegateChanged(int which, double data) { if (data) voicegate |= 1 << which; else voicegate &= ~(1 << which); checkTrigger(); }
void pdsp::PRNoiseGen::process_SA_TA(const float* &trigSyncBuffer, const float* &trigSeedBuffer, const int &bufferSize) noexcept { float* outputBuffer = getOutputBufferToFill(output); for (int n = 0; n < bufferSize; ++n){ //new seed on gate if (checkTrigger(trigSeedBuffer[n])){ reSeed(); } //resetting on cycle if (checkSync(trigSyncBuffer[n])){ pnRegister = seed; } outputBuffer[n] = PNSequenceNext(pnRegister); } }
void pdsp::GrainWindow::process_audio( const float* inputBuffer, const float* triggerBuffer, int bufferSize) noexcept{ float* outputBuffer = getOutputBufferToFill(output); for(int n=0; n<bufferSize; ++n){ if(run){ float index = phase*grainShape->length_f; int index_int = static_cast<int> (index); float mu = index - index_int; float x1 = grainShape->buffer[index_int]; float x2 = grainShape->buffer[index_int+1]; float winAmp = interpolate_linear(x1, x2, mu); //float winAmp = interpolatorShell.interpolate(grainShape->buffer, phase*grainShape->length_f, grainShape->length); windowMeter.store(winAmp); if(signalAR){ outputBuffer[n] = inputBuffer[n] * winAmp; }else{ outputBuffer[n] = inputBuffer[0] * winAmp; } }else{ outputBuffer[n] = 0.0f; } phase+=baseInc; if(phase>=1.0f){ run = false; } if(triggerAR){ if(checkTrigger(triggerBuffer[n])){ run = true; phase = 0.0f; } } } }
void pdsp::ClockedPhazor::processTrigger(int bufferSize) noexcept { int triggerState; const float* inTrigBuffer = processInput(input_trig, triggerState); float* outPhaseBuffer = getOutputBufferToFill(output_phase); float* outTrigBuffer = nullptr; float inc = getBarsPerSample() * division * oversampleFactor; switch (triggerState) { case AudioRate: for( int n=0; n<bufferSize; ++n){ if(checkTrigger( inTrigBuffer[n] )){ phase = phaseOffset; } else if (phase>=1.0f) { onReset(n, inc, outTrigBuffer, bufferSize); } outPhaseBuffer[n] = phase; phase += inc; } break; default: for( int n=0; n<bufferSize; ++n){ if (phase>=1.0f) { onReset(n, inc, outTrigBuffer, bufferSize); } outPhaseBuffer[n] = phase; phase += inc; } break; } if (outTrigBuffer==nullptr) { setOutputToZero(output_trig); } }
void JunoLfo::lfotriggerChanged(double data) { //printf("lfo_trigger is %f\n", data); lfotrigger = (data != 0); checkTrigger(); }