Example #1
0
void process_thunderFuzz( Distortion *t, fixedp *x ) {
	Uint32 n;
	
	// remember to keep sample from previous cycle. :) keep in structure. disttruc
	if(t->fdb) {
		for(n=0; n < PROCESS_SIZE; n++) {
			t->prev = qadd(qmul(x[n],t->gain), qmul(t->prev, t->fdb));
		
			if (t->prev > t->lvl1) 
				t->prev = t->lvl1;
			else if (t->prev < -t->lvl2)
				t->prev = -t->lvl2;

			x[n] = qabs(t->prev);
		}
	}
	else {
		for(n=0; n < PROCESS_SIZE; n++) {
			t->prev = qmul(x[n],t->gain);

			if (t->prev > t->lvl1) 
				t->prev = t->lvl1;
			else if (t->prev < -t->lvl2)
				t->prev = -t->lvl2;
			

			x[n] = qabs(t->prev);
		}
	}
}
Example #2
0
void MainWindow::slotAccelBoxChanged(int x)
{
	if(m_accelBoxLock)
		return;
	m_accelBoxLock = true;
	
	double p = (double)x / 100.0;
	
	int sign = p < 0 ? -1:1;
	p = qabs(p);
	
	m_inc = m_incOrig * (1+p * 50); //2.5);
	if(sign < 0)
		m_inc = qabs(m_inc)*-1;
	else
		m_inc = qabs(m_inc);
	
	if(p>1)
		p=1;
	int ms = ANIMATE_BASE_MS * (1-p) + 2;
	
		
	qDebug() << "slotAccelBoxChanged(): p:"<<p<<", ms:"<<ms<<", m_inc:"<<m_inc;
	
	m_animTimer.setInterval(ms);
	
	m_accelBoxLock = false;
}
Example #3
0
fixedp getExp(fixedp base) {
	Int32 pos;
	if (base > EXP_POS_MAX)
		return posExp[EXP_TABLE_SIZE-1];								
	else if (base < EXP_NEG_MAX)
		return negExp[EXP_TABLE_SIZE-1];
	else if (base > 0) {
		// måste anpassas till fixt tal så rätt element i tabellen anropas
		pos = q2int(qmul(base, EXP_POS_POS_MUL));
		if (pos < 0) {
			return posExp[0];
		}
		return posExp[pos];
	}
	else if (base < 0) {
		// samma här, VIKTIGT: LÄGG TILL AVRUNDNING, DERO HERO 
		pos = q2int(qmul(qabs(base), EXP_NEG_POS_MUL));
		if(pos < 0) {
			return negExp[0];
		}
		return negExp[pos];
	}
	
	return 1;
}