Пример #1
0
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");
  } 
}
Пример #2
0
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);
}
Пример #3
0
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;
}
Пример #4
0
void JunoLfo::lfomodeChanged(double data)
{
    //printf("lfo_mode is %f\n", data);
    lfomode = (data != 0);
    trigger = !lfotrigger;

    checkTrigger();
}
Пример #5
0
void JunoLfo::voicegateChanged(int which, double data)
{
    if (data)
	voicegate |= 1 << which;
    else
	voicegate &= ~(1 << which);

    checkTrigger();
}
Пример #6
0
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);
        }
}
Пример #7
0
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;
            }
        }
        
    }  

}
Пример #8
0
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);
        }
   
}
Пример #9
0
void JunoLfo::lfotriggerChanged(double data)
{
    //printf("lfo_trigger is %f\n", data);
    lfotrigger = (data != 0);
    checkTrigger();
}