es de suponer que este es el algoritmo?...
delta_ramp = TWO_PI * freq * sampleRateRecip;
y se "dibuja" más abajo en el for???...
for( int s = sampleFrames; s > 0; --s )
{
ramp += delta_ramp;
if( ramp >= close_enough ) ramp -= TWO_PI;
*y++ = ( ( (float) sin( ramp ) ) * 0.5f );
en donde está definida la variable?/constante? sampleraterecip???!!
ni siquiera se si estoy diciendo tonterías... XDDDDDDD
hla:
synthedit tiene un sdk propio que se puede dercargar de su web
si, yo en ww.elogoxa.net ya tengo una especie de sampler, que puedes hacer lo que propones con 8 wabs.
Type : NON-bandlimited osc...
References : Posted by Wolfgang (wschneider[AT]nexoft.de)
Notes :
Produces a square wave -1.0f .. +1.0f.
The resulting waveform is NOT band-limited, so it's propably of not much use for syntheis. It's rather useful for LFOs and the like, though.
Code :
Idea: use integer overflow to avoid conditional jumps.
// init:
typedef unsigned long ui32;
float sampleRate = 44100.0f; // whatever
float freq = 440.0f; // 440 Hz
float one = 1.0f;
ui32 intOver = 0L;
ui32 intIncr = (ui32)(4294967296.0 / hostSampleRate / freq));
// loop:
(*((ui32 *)&one)) &= 0x7FFFFFFF; // mask out sign bit
(*((ui32 *)&one)) |= (intOver & 0x80000000);
intOver += intIncr;
quick and dirty sine generator
Type : sine generator
References : Posted by couriervst[AT]hotmail[DOT]com
Notes :
this is part of my library, although I've seen a lot of sine generators, I've never seen the simplest one, so I try to do it,
tell me something, I've try it and work so tell me something about it
Code :
PSPsample PSPsin1::doOsc(int numCh)
{
double x=0;
double t=0;
if(m_time[numCh]>m_sampleRate) //re-init cycle
m_time[numCh]=0;
if(m_time[numCh]>0)
{
t =(double)(((double)m_time[numCh])/(double)m_sampleRate);
x=(m_2PI *(double)(t)*m_freq);
}
else
x=0;
PSPsample r=(PSPsample) sin(x+m_phase)*m_amp;
m_time[numCh]++;
return r;
}
Ufff, yo ahora mismo como mucho se sacar un texto q ponga "HOLA MUNDO", jejej.
Kmt, tienes a mano el modulo q separa la salida de cada nota midi ?, esq se que existe algo pero no lo encuentro. Mi intención sería intentar poner un pitch para cada nota, al estilo de los primero Buchla(:roll:mmMMmmmmm) , q estaban pensados para musica "concreta" y experimental. Saludos y hasta mañana gente.
yo el que utilize es el midi filter, viene de serie.
Gracias Kmt, nunca lo probe, voy a mirar si me vale para lo q quiero hacer. Saludos!.