FilteredFBCombFilter6::FilteredFBCombFilter6(float initialDelayTime, float maxDelayTime) { gen()->initialize(initialDelayTime, maxDelayTime); delayTime(initialDelayTime); scaleFactor(0.5f); lowpassCutoff(12000.0f); highpassCutoff(20.0f); }
void gameloop(void) { char t = ' '; while(1) { delayTime(.01); t = getkeypressedimprove(); if(t == 27) break; if ((t >= '0') && (t <= '7')) { setscreffect(t - '0'); } else if(t == 'q') { attron(A_UNDERLINE); } else if(t == 'w') { attron(A_REVERSE); } else if(t == 'e') { attron(A_BLINK); } else if(t == 'r') { attron(A_BOLD); } else if(t == 't') { attron(A_NORMAL); } if(t == ' ') { setcursorvisible(false); } else { setcursorvisible(true); } if(t == ERR) { settextcolor(white); setgroundcolor(black); printw("@"); } else if(t == '\t') { move(0,0); } else if (t == 'p') { printw("(%d, %d) ", getscreensizebymvcurs().x, getscreensizebymvcurs().y); } else { settextcolor(red); setgroundcolor(green); printw("%c",t); } } }
void LinearMotion::doLinearSideways(Vector delta, Vector nextRow, Stepper ** stepMotor, int maxSpeed, bool solenoidOn) { int fxy,fxz; int rowLoc = 0; int delay = _initial_delay; int delayPos = 0; Vector lastRow = {-nextRow.x, -nextRow.y, -nextRow.z}; Vector dir = {1, 1, 1}; long stepsPerPixel; _z_slantways ? stepsPerPixel = _z_steps_per_pixel : stepsPerPixel = _steps_per_pixel; if(delta.x < 0) dir.x = 0; //towards motor if(delta.y < 0) dir.y = 0; //towards motor if(delta.z < 0) dir.z = 0; //towards motor delta.x = abs(delta.x); delta.y = abs(delta.y); delta.z = abs(delta.z); fxy = delta.x - delta.y; fxz = delta.x - delta.z; Vector curPos = {0, 0, 0}; while(!(*_stopped) && (curPos.x<=delta.x) && (curPos.y<=delta.y) && (curPos.z<=delta.z)){ // printf("Moving height: %d, %d, %d\n\r", curPos.x, curPos.y, curPos.z); if ((curPos.x % stepsPerPixel) == 0) { Vector * row = NULL; if (solenoidOn) _bmp.setRow(rowLoc++); if (!(solenoidOn && _bmp.isBlankRow())) { reversing ? row = &lastRow : row = &nextRow; interpolate(*row, maxSpeed, solenoidOn); reversing = !reversing; enableSteppers(true); // Hacky } } ++curPos.x; if ((curPos.x % stepsPerPixel) <= stepsPerPixel/2) { delayPos++; delay = delayTime(delay, delayPos); } else { delayPos--; delay = delayTime(delay, -delayPos); } stepMotor[0]->stepOn(dir.x); fxy -= delta.y; fxz -= delta.z; if(fxy <= 0){ ++curPos.y; stepMotor[1]->stepOn(dir.y); fxy += delta.x; } if(fxz <= 0){ ++curPos.z; stepMotor[2]->stepOn(dir.z); fxz += delta.x; } wait_us(1); stepMotor[0]->stepOff(); stepMotor[1]->stepOff(); stepMotor[2]->stepOff(); wait_us(delay); while(*_paused) {;} } }
void LinearMotion::doLinear(Vector delta, Stepper** stepMotor, int maxSpeed, bool solenoidOn) { int fxy,fxz; int pixelLoc = 0; int delay = _initial_delay; int farthestDelay = 0; Vector dir = {1, 1, 1}; long stepsPerPixel; _z ? stepsPerPixel = _z_steps_per_pixel : stepsPerPixel = _steps_per_pixel; if(delta.x < 0) dir.x = 0; //towards motor if(delta.y < 0) dir.y = 0; //towards motor if(delta.z < 0) dir.z = 0; //towards motor delta.x = abs(delta.x); delta.y = abs(delta.y); delta.z = abs(delta.z); fxy = delta.x - delta.y; fxz = delta.x - delta.z; Vector curPos; curPos.x = 0; curPos.y = 0; curPos.z = 0; while (!(*_stopped) && (curPos.x<=delta.x)&&(curPos.y<=delta.y)&&(curPos.z<=delta.z)){ if (solenoidOn) { if ((reversing && ((delta.x - curPos.x - stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) || (!reversing && ((curPos.x + stepsPerPixel / _step_buffer) % stepsPerPixel == 0))) *_sol = _bmp.isPixel(pixelLoc++, reversing); else if ((reversing && ((delta.x - curPos.x + stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) || (!reversing && ((curPos.x - stepsPerPixel / _step_buffer) % stepsPerPixel == 0)) ) *_sol = 0; } ++curPos.x; if (delay > maxSpeed) { delay = delayTime(delay, curPos.x); farthestDelay = curPos.x; } else if (delta.x - curPos.x < farthestDelay) { delay = delayTime(delay, -curPos.x); } stepMotor[0]->stepOn(dir.x); fxy -= delta.y; fxz -= delta.z; if (fxy <= 0){ ++curPos.y; stepMotor[1]->stepOn(dir.y); fxy += delta.x; } if (fxz <= 0){ ++curPos.z; stepMotor[2]->stepOn(dir.z); fxz += delta.x; } wait_us(1); stepMotor[0]->stepOff(); stepMotor[1]->stepOff(); stepMotor[2]->stepOff(); wait_us(delay); //Implement linear accelleration! if (*_paused) { enableSteppers(false); *_sol = 0; while(*_paused){printf("Pausing!\n\r");} enableSteppers(true); } } *_sol = 0; }
FBCombFilter::FBCombFilter(float initialDelayTime, float maxDelayTime) { gen()->initialize(initialDelayTime, maxDelayTime); delayTime(initialDelayTime); scaleFactor(0.5f); }
BasicDelay::BasicDelay(float initialDelayTime, float maxDelayTime) { gen()->initialize(initialDelayTime, maxDelayTime); delayTime(initialDelayTime); }