Home |
Search |
Today's Posts |
#42
|
|||
|
|||
Sick of sample-based "synthesis"!
In article , Allan Herriman at
lid wrote on 10/24/2003 01:37: On Thu, 23 Oct 2003 23:26:10 -0400, robert bristow-johnson wrote: In article , Radium at wrote on 10/23/2003 22:45: robert bristow-johnson wrote in message ... how do you generate the sinusoids that get modulated in FM without some sorta wavetable? you ain't gonna compute them from a power series on the fly are you? "compute them from a power series on the fly" often math libraries used by higher level languages like C or programs like Excel or Matlab or Mathmatica use some kinda power series to do trancendental functions (of which sin() or cos() belong). i suppose if one were not to use wavetables or the CORDIC (there are little problems with using CORDIC for FM, Allen, but they are certainly surmountable), I wasn't aware of problems, except for the strange format that CORDIC uses for angles (which makes adding phases interesting). Is that what you meant? i think so (not exactly sure what you mean, Allan). it's that for arbitrary and time-variant fundamental frequency, w0 (which is a staple for a music synth), it's not real easy to compute the sin(w0*T) and cos(w0*T) quickly without table lookup in that operation. the bit-by-bit representation of the sin(delta) cos(delta) that CORDIC (and similar) operations do, is in my opinion, not very fast in comparison to doing it all with wavetables. but i dunno if we be talking about the same thing. r b-j |
#43
|
|||
|
|||
Sick of sample-based "synthesis"!
In article , Allan Herriman at
lid wrote on 10/24/2003 01:37: On Thu, 23 Oct 2003 23:26:10 -0400, robert bristow-johnson wrote: In article , Radium at wrote on 10/23/2003 22:45: robert bristow-johnson wrote in message ... how do you generate the sinusoids that get modulated in FM without some sorta wavetable? you ain't gonna compute them from a power series on the fly are you? "compute them from a power series on the fly" often math libraries used by higher level languages like C or programs like Excel or Matlab or Mathmatica use some kinda power series to do trancendental functions (of which sin() or cos() belong). i suppose if one were not to use wavetables or the CORDIC (there are little problems with using CORDIC for FM, Allen, but they are certainly surmountable), I wasn't aware of problems, except for the strange format that CORDIC uses for angles (which makes adding phases interesting). Is that what you meant? i think so (not exactly sure what you mean, Allan). it's that for arbitrary and time-variant fundamental frequency, w0 (which is a staple for a music synth), it's not real easy to compute the sin(w0*T) and cos(w0*T) quickly without table lookup in that operation. the bit-by-bit representation of the sin(delta) cos(delta) that CORDIC (and similar) operations do, is in my opinion, not very fast in comparison to doing it all with wavetables. but i dunno if we be talking about the same thing. r b-j |
#44
|
|||
|
|||
Sick of sample-based "synthesis"!
Bad memories associated w/ FM synths???
FM synths are actually fresher than sample-playback synth. The key word is "sample". Sample something and it will rot perceptibly. FM synths freshly generate the tone as you hear it. It is sample-playback synths that are "cheesy". What you describe in "chessy sound cards" are PCM-sampled emulations of FM synth sounds. Of course they will sound rotten. They are samples, not real FM sounds. That is, the card does not generate those sounds, it only plays its samples of them. (StuWelwood) wrote in message ... Please also explain why you think that FM synthesis is desirable at all. Most musicians found that FM synthesizers were thin sounding and tended to have less than intuitive user interfaces. Now to think of, I haven't seen an FM synth in years, on neither stage nor studio. The only place that I know of that the technique is still used, outside of cheesy little computer sound cards, is in Yamaha's DX expansion board for the S series. Other than that, a search of the Musician's Friend web site shows no FM synths avaliable today. Musicians, as a group, simply don't want them. If someone wanted to bring one of those ****y sounding FM synths into my studio, I'd stop them at the door, grab it from them, throw it into the parking lot, and set it on fire! Simply put, they were about as musically palatable as an all banjo and accordion band. Stuart Welwood http://members.aol.com/StuWelwood |
#45
|
|||
|
|||
Sick of sample-based "synthesis"!
Bad memories associated w/ FM synths???
FM synths are actually fresher than sample-playback synth. The key word is "sample". Sample something and it will rot perceptibly. FM synths freshly generate the tone as you hear it. It is sample-playback synths that are "cheesy". What you describe in "chessy sound cards" are PCM-sampled emulations of FM synth sounds. Of course they will sound rotten. They are samples, not real FM sounds. That is, the card does not generate those sounds, it only plays its samples of them. (StuWelwood) wrote in message ... Please also explain why you think that FM synthesis is desirable at all. Most musicians found that FM synthesizers were thin sounding and tended to have less than intuitive user interfaces. Now to think of, I haven't seen an FM synth in years, on neither stage nor studio. The only place that I know of that the technique is still used, outside of cheesy little computer sound cards, is in Yamaha's DX expansion board for the S series. Other than that, a search of the Musician's Friend web site shows no FM synths avaliable today. Musicians, as a group, simply don't want them. If someone wanted to bring one of those ****y sounding FM synths into my studio, I'd stop them at the door, grab it from them, throw it into the parking lot, and set it on fire! Simply put, they were about as musically palatable as an all banjo and accordion band. Stuart Welwood http://members.aol.com/StuWelwood |
#46
|
|||
|
|||
Sick of sample-based "synthesis"!
On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson
wrote: In article , Allan Herriman at wrote on 10/24/2003 01:37: On Thu, 23 Oct 2003 23:26:10 -0400, robert bristow-johnson wrote: In article , Radium at wrote on 10/23/2003 22:45: robert bristow-johnson wrote in message ... how do you generate the sinusoids that get modulated in FM without some sorta wavetable? you ain't gonna compute them from a power series on the fly are you? "compute them from a power series on the fly" often math libraries used by higher level languages like C or programs like Excel or Matlab or Mathmatica use some kinda power series to do trancendental functions (of which sin() or cos() belong). i suppose if one were not to use wavetables or the CORDIC (there are little problems with using CORDIC for FM, Allen, but they are certainly surmountable), I wasn't aware of problems, except for the strange format that CORDIC uses for angles (which makes adding phases interesting). Is that what you meant? i think so (not exactly sure what you mean, Allan). it's that for arbitrary and time-variant fundamental frequency, w0 (which is a staple for a music synth), it's not real easy to compute the sin(w0*T) and cos(w0*T) quickly without table lookup in that operation. the bit-by-bit representation of the sin(delta) cos(delta) that CORDIC (and similar) operations do, is in my opinion, not very fast in comparison to doing it all with wavetables. but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. Regards, Allan. |
#47
|
|||
|
|||
Sick of sample-based "synthesis"!
On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson
wrote: In article , Allan Herriman at wrote on 10/24/2003 01:37: On Thu, 23 Oct 2003 23:26:10 -0400, robert bristow-johnson wrote: In article , Radium at wrote on 10/23/2003 22:45: robert bristow-johnson wrote in message ... how do you generate the sinusoids that get modulated in FM without some sorta wavetable? you ain't gonna compute them from a power series on the fly are you? "compute them from a power series on the fly" often math libraries used by higher level languages like C or programs like Excel or Matlab or Mathmatica use some kinda power series to do trancendental functions (of which sin() or cos() belong). i suppose if one were not to use wavetables or the CORDIC (there are little problems with using CORDIC for FM, Allen, but they are certainly surmountable), I wasn't aware of problems, except for the strange format that CORDIC uses for angles (which makes adding phases interesting). Is that what you meant? i think so (not exactly sure what you mean, Allan). it's that for arbitrary and time-variant fundamental frequency, w0 (which is a staple for a music synth), it's not real easy to compute the sin(w0*T) and cos(w0*T) quickly without table lookup in that operation. the bit-by-bit representation of the sin(delta) cos(delta) that CORDIC (and similar) operations do, is in my opinion, not very fast in comparison to doing it all with wavetables. but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. Regards, Allan. |
#48
|
|||
|
|||
Sick of sample-based "synthesis"!
In article , Allan Herriman at
lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: .... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j |
#49
|
|||
|
|||
Sick of sample-based "synthesis"!
In article , Allan Herriman at
lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: .... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j |
#50
|
|||
|
|||
Sick of sample-based "synthesis"!
robert bristow-johnson wrote:
In article , Allan Herriman at lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: ... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j Is my dogged mind barking up the wrong tree? When computing sine waves, It's rarely necessary to compute sin(x) from scratch. It's enough to compute sin(x+d) and cos(x+d) given sin(x) and cos(x). That can be pretty east if d is small enough, and smaller is usually better. With Swiss cheese, the opposite is said to be true: the bigger the holes, the better the cheese. One can carry this to a ridiculous extreme, though. Jerry -- Engineering is the art of making what you want from things you can get. ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ |
#51
|
|||
|
|||
Sick of sample-based "synthesis"!
robert bristow-johnson wrote:
In article , Allan Herriman at lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: ... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j Is my dogged mind barking up the wrong tree? When computing sine waves, It's rarely necessary to compute sin(x) from scratch. It's enough to compute sin(x+d) and cos(x+d) given sin(x) and cos(x). That can be pretty east if d is small enough, and smaller is usually better. With Swiss cheese, the opposite is said to be true: the bigger the holes, the better the cheese. One can carry this to a ridiculous extreme, though. Jerry -- Engineering is the art of making what you want from things you can get. ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ |
#52
|
|||
|
|||
Sick of sample-based "synthesis"!
On Mon, 27 Oct 2003 00:49:00 -0500, Jerry Avins wrote:
robert bristow-johnson wrote: In article , Allan Herriman at lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: ... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j Is my dogged mind barking up the wrong tree? When computing sine waves, It's rarely necessary to compute sin(x) from scratch. It's enough to compute sin(x+d) and cos(x+d) given sin(x) and cos(x). That can be pretty east if d is small enough, and smaller is usually better. With Swiss cheese, the opposite is said to be true: the bigger the holes, the better the cheese. One can carry this to a ridiculous extreme, though. Jerry Allan wrote: .... In hardware, this often uses less chip area than look up tables, particularly for "high quality" signals. Allan wrote: ... a purely hardware based implementation ... Yes, we are talking about different things. CORDIC allows those multiplications to be done with shifts and adds. These are a lot smaller and faster than regular integer multipliers *if you are making your own hardware* (i.e. I'm not talking about using a DSP chip). Plus the loop can be unrolled and made parallel if you want lots of speed. The area of the (unrolled, parallel) CORDIC sinusoid generator increases by (I think) O(n) with the bit depth of the angle arg, whereas the area of the pure lookup table increases by O(exp(n)). The speed is (roughly) O(1) in both cases. Of course, on many of the modern FPGA families (Virtex2, Stratix, etc.) there are lots of multipliers just sitting around doing nothing, so perhaps I should rethink all this. Regards, Allan. |
#53
|
|||
|
|||
Sick of sample-based "synthesis"!
On Mon, 27 Oct 2003 00:49:00 -0500, Jerry Avins wrote:
robert bristow-johnson wrote: In article , Allan Herriman at lid wrote on 10/26/2003 19:20: On Fri, 24 Oct 2003 19:45:55 -0400, robert bristow-johnson wrote: ... but i dunno if we be talking about the same thing. Perhaps we're not. I thought CORDIC was pretty fast in a purely hardware based implementation. at the risk of exposing my ignorance, let's see if we are or not: i remember looking at Ray Andraka's pages long ago and, given possible semantic differences, i thought it was the same as what i might do in similar circumstances. let's compute the cos(theta) and sin(theta) for some theta where 0 = theta pi/2 represented as an unsigned, fixed-point, N bit integer M = 2^N * theta/(pi/2) so we're computing cos(pi/2 * M/2^N) and sin(pi/2 * M/2^N). for the nth bit in M, you have two table entries: a[n] = cos(pi/2 * 2^(n-N)) b[n] = sin(pi/2 * 2^(n-N)) now, probably starting with the (N-1)th bit, for each bit that is 1, the complex number exp(j*phi[n]) is updated: exp(j*phi[N]) = 1 + j*0 n = N-1 while (n = 0) { if ((M BITWIZE_AND 2^n) 0) { exp(j*phi[n]) = (a[n] + j*b[n]) * exp(j*phi[n+1]) } n = n-1 } where the complex exp multiplication is: Re{exp(j*phi[n])} = a[n]*Re{exp(j*phi[n+1])} - b[n]*Im{exp(j*phi[n+1])} Im{exp(j*phi[n])} = a[n]*Im{exp(j*phi[n+1])} + b[n]*Re{exp(j*phi[n+1])} except for the roundoff in the a[n] and b[n] coefs and for the roundoff in the real and imag parts of exp(j*phi[n]) that happens each iteration, this method is exact and the result is exp(j*phi[0]) = exp(j*theta) or cos(theta) = Re{exp(j*phi[0])} sin(theta) = Im{exp(j*phi[0])} when we're all done. this can be done in reverse, sorta to compute the arccos() or arcsin() or arctan() of a number, too, because sin() and cos() and tan() are monotonic increasing or decreasing in that region. is this what you mean, Allan? if it is, i can't see it as fast as table lookup and interpolation, with a phase accumulator for computing a sinusoidal signal. can it be? r b-j Is my dogged mind barking up the wrong tree? When computing sine waves, It's rarely necessary to compute sin(x) from scratch. It's enough to compute sin(x+d) and cos(x+d) given sin(x) and cos(x). That can be pretty east if d is small enough, and smaller is usually better. With Swiss cheese, the opposite is said to be true: the bigger the holes, the better the cheese. One can carry this to a ridiculous extreme, though. Jerry Allan wrote: .... In hardware, this often uses less chip area than look up tables, particularly for "high quality" signals. Allan wrote: ... a purely hardware based implementation ... Yes, we are talking about different things. CORDIC allows those multiplications to be done with shifts and adds. These are a lot smaller and faster than regular integer multipliers *if you are making your own hardware* (i.e. I'm not talking about using a DSP chip). Plus the loop can be unrolled and made parallel if you want lots of speed. The area of the (unrolled, parallel) CORDIC sinusoid generator increases by (I think) O(n) with the bit depth of the angle arg, whereas the area of the pure lookup table increases by O(exp(n)). The speed is (roughly) O(1) in both cases. Of course, on many of the modern FPGA families (Virtex2, Stratix, etc.) there are lots of multipliers just sitting around doing nothing, so perhaps I should rethink all this. Regards, Allan. |
#54
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Jerry Avins
Date: 10/26/2003 10:50 PM Mountain Standard Time Message-id: Radium wrote: Jerry Avins wrote in message ... Please explain again why a wavetable synth can't reproduce the sound of an FM synthesizer as well as a CD can. The point is not to reproduce an FM synth's sound but to listen to it while producing it. That is, listen to an FM synth actually generate its musical tones, rather than recording those tones from the FM synth to another medium and then playing them back. If there's no audible difference, why should I care? Exactly! But this still begs the question of why anyone would want FM synthesis - no matter how "fresh" it is. Musician's as a group, as evidenced by the almost total disappearance of FM synthesizers in the market place, have found it to be inadequate. Until someone answers that question, then all discussion of how to accomplish it is moot. So, WHY FM? Stuart Welwood http://members.aol.com/StuWelwood |
#55
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Jerry Avins
Date: 10/26/2003 10:50 PM Mountain Standard Time Message-id: Radium wrote: Jerry Avins wrote in message ... Please explain again why a wavetable synth can't reproduce the sound of an FM synthesizer as well as a CD can. The point is not to reproduce an FM synth's sound but to listen to it while producing it. That is, listen to an FM synth actually generate its musical tones, rather than recording those tones from the FM synth to another medium and then playing them back. If there's no audible difference, why should I care? Exactly! But this still begs the question of why anyone would want FM synthesis - no matter how "fresh" it is. Musician's as a group, as evidenced by the almost total disappearance of FM synthesizers in the market place, have found it to be inadequate. Until someone answers that question, then all discussion of how to accomplish it is moot. So, WHY FM? Stuart Welwood http://members.aol.com/StuWelwood |
#56
|
|||
|
|||
Sick of sample-based "synthesis"!
robert bristow-johnson wrote:
In article t, Randy Yates at wrote on 10/20/2003 18:49: [...] And yes, they were horrid. Especially when you get them up on stage in front of hot lights where the temperature was changing. but they have a (sorta fat, at least the MiniMoog) sound that is, even today, hard to emulate. Oh yeah - loved their sound. I was speaking of the technical difficulties (essentially, keeping it in tune). there is a real market for good ol' analog synths in good shape as well as old tube preamps or guitar amps. I gave mine away to a school back in the 80's. It was in bad shape back then - the "bus bars" that fed the keys were corroded, so when you played a note it would randomly glissando up the scale. the good news is that Bob Moog i think finally got his trademark (R A Moog or Moog) back. Seems like he would deserve it. -- % Randy Yates % "...the answer lies within your soul %% Fuquay-Varina, NC % 'cause no one knows which side %%% 919-577-9882 % the coin will fall." %%%% % 'Big Wheels', *Out of the Blue*, ELO http://home.earthlink.net/~yatescr |
#57
|
|||
|
|||
Sick of sample-based "synthesis"!
robert bristow-johnson wrote:
In article t, Randy Yates at wrote on 10/20/2003 18:49: [...] And yes, they were horrid. Especially when you get them up on stage in front of hot lights where the temperature was changing. but they have a (sorta fat, at least the MiniMoog) sound that is, even today, hard to emulate. Oh yeah - loved their sound. I was speaking of the technical difficulties (essentially, keeping it in tune). there is a real market for good ol' analog synths in good shape as well as old tube preamps or guitar amps. I gave mine away to a school back in the 80's. It was in bad shape back then - the "bus bars" that fed the keys were corroded, so when you played a note it would randomly glissando up the scale. the good news is that Bob Moog i think finally got his trademark (R A Moog or Moog) back. Seems like he would deserve it. -- % Randy Yates % "...the answer lies within your soul %% Fuquay-Varina, NC % 'cause no one knows which side %%% 919-577-9882 % the coin will fall." %%%% % 'Big Wheels', *Out of the Blue*, ELO http://home.earthlink.net/~yatescr |
#58
|
|||
|
|||
Sick of sample-based "synthesis"!
|
#59
|
|||
|
|||
Sick of sample-based "synthesis"!
|
#60
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Laurence Payne
Date: 10/29/2003 12:16 PM Mountain Standard Time Message-id: On 27 Oct 2003 15:39:25 GMT, (StuWelwood) wrote: Exactly! But this still begs the question of why anyone would want FM synthesis - no matter how "fresh" it is. Musician's as a group, as evidenced by the almost total disappearance of FM synthesizers in the market place, have found it to be inadequate. Until someone answers that question, then all discussion of how to accomplish it is moot. So, WHY FM? I don't recall petitioning Yamaha back in the early 70s: - "Hey! This guy Chowning at Stanford U.is doing neat stuff with FM synthesis! When can I have it in an affordable keyboard?" Or, a few years later :- "I'm tired of this FM stuff! Give me a sample player!". That's exactly what musicians as a group said with their money. We choose from what we're offered. I personally think the Yamaha SY77 and SY99 hybrid sample/FM synths were among the most playable instruments I've owned. Good for you. But a market of one isn't going to convince anyone to make FM synthesizers. The fact is that both FM and sample player machines were available at the same time. The consumers (musicians) bought far more sample players than FM boxes. Most musicians found the FM sounds to be thin and less than musically satisfying. FM sythesizers stopped selling and are no longer available. Other than your own personal preference, you haven't indicated why a musician would want one. Being "playable" by you, doesn't even mean anything. Stuart Welwood http://members.aol.com/StuWelwood |
#61
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Laurence Payne
Date: 10/29/2003 12:16 PM Mountain Standard Time Message-id: On 27 Oct 2003 15:39:25 GMT, (StuWelwood) wrote: Exactly! But this still begs the question of why anyone would want FM synthesis - no matter how "fresh" it is. Musician's as a group, as evidenced by the almost total disappearance of FM synthesizers in the market place, have found it to be inadequate. Until someone answers that question, then all discussion of how to accomplish it is moot. So, WHY FM? I don't recall petitioning Yamaha back in the early 70s: - "Hey! This guy Chowning at Stanford U.is doing neat stuff with FM synthesis! When can I have it in an affordable keyboard?" Or, a few years later :- "I'm tired of this FM stuff! Give me a sample player!". That's exactly what musicians as a group said with their money. We choose from what we're offered. I personally think the Yamaha SY77 and SY99 hybrid sample/FM synths were among the most playable instruments I've owned. Good for you. But a market of one isn't going to convince anyone to make FM synthesizers. The fact is that both FM and sample player machines were available at the same time. The consumers (musicians) bought far more sample players than FM boxes. Most musicians found the FM sounds to be thin and less than musically satisfying. FM sythesizers stopped selling and are no longer available. Other than your own personal preference, you haven't indicated why a musician would want one. Being "playable" by you, doesn't even mean anything. Stuart Welwood http://members.aol.com/StuWelwood |
#62
|
|||
|
|||
Sick of sample-based "synthesis"!
|
#63
|
|||
|
|||
Sick of sample-based "synthesis"!
|
#64
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Laurence Payne
Date: 10/30/2003 5:55 PM Mountain Standard Time Message-id: On 30 Oct 2003 16:46:15 GMT, (StuWelwood) wrote: Good for you. But a market of one isn't going to convince anyone to make FM synthesizers. The fact is that both FM and sample player machines were available at the same time. The consumers (musicians) bought far more sample players than FM boxes. Most musicians found the FM sounds to be thin and less than musically satisfying. FM sythesizers stopped selling and are no longer available. Other than your own personal preference, you haven't indicated why a musician would want one. Being "playable" by you, doesn't even mean anything. It would mean something to a musician. Maybe with a little explanation :-) In a live playing situation you have to get a lot of mileage out of each patch. None of this sample-juggling between "Trumpet, mezzo-forte, soft attack, Trumpet, forte, hard attack.... etc. etc. available in the extended sample sets we use for recording. A sound near-enough like a trumpet, with considerable control of attack and brilliance via. key velocity, is very useful - very "playable". FM synthesis, maybe coupled with a sampled attack, does this very well. Then is what you are really looking for a synthesizer that responds "well" to real time changes by the musician? Does that make FM a requirement? I don't think so, but I certainly agree that sample players can be mostly static sounding without considerable care in production, design, and programming effort. The question that now comes to mind is whether there are any synthesizers now being produced that offer enough real time control to satisfy your needs. My trusty old Korg M1 (sample player) certainly doesn't fit that description, nor does my new Emu Virtuoso 2000. The nearest that I have experienced to what you might find acceptable is a guitar synthesizer. It appears that, in order to satisfy guitarists, sample playing guitar synthesizers are built to be more real time controllable. It also helps to have a programmable expression pedal. None of this helps a keyboardist, however. Not knowing your level of experience on keyboard, I'm going to ask what may be stupid question. Have you tried a Yamaha CS6X? http://news.harmony-central.com/Newp...maha/CS6X.html Stuart Welwood http://members.aol.com/StuWelwood |
#65
|
|||
|
|||
Sick of sample-based "synthesis"!
From: Laurence Payne
Date: 10/30/2003 5:55 PM Mountain Standard Time Message-id: On 30 Oct 2003 16:46:15 GMT, (StuWelwood) wrote: Good for you. But a market of one isn't going to convince anyone to make FM synthesizers. The fact is that both FM and sample player machines were available at the same time. The consumers (musicians) bought far more sample players than FM boxes. Most musicians found the FM sounds to be thin and less than musically satisfying. FM sythesizers stopped selling and are no longer available. Other than your own personal preference, you haven't indicated why a musician would want one. Being "playable" by you, doesn't even mean anything. It would mean something to a musician. Maybe with a little explanation :-) In a live playing situation you have to get a lot of mileage out of each patch. None of this sample-juggling between "Trumpet, mezzo-forte, soft attack, Trumpet, forte, hard attack.... etc. etc. available in the extended sample sets we use for recording. A sound near-enough like a trumpet, with considerable control of attack and brilliance via. key velocity, is very useful - very "playable". FM synthesis, maybe coupled with a sampled attack, does this very well. Then is what you are really looking for a synthesizer that responds "well" to real time changes by the musician? Does that make FM a requirement? I don't think so, but I certainly agree that sample players can be mostly static sounding without considerable care in production, design, and programming effort. The question that now comes to mind is whether there are any synthesizers now being produced that offer enough real time control to satisfy your needs. My trusty old Korg M1 (sample player) certainly doesn't fit that description, nor does my new Emu Virtuoso 2000. The nearest that I have experienced to what you might find acceptable is a guitar synthesizer. It appears that, in order to satisfy guitarists, sample playing guitar synthesizers are built to be more real time controllable. It also helps to have a programmable expression pedal. None of this helps a keyboardist, however. Not knowing your level of experience on keyboard, I'm going to ask what may be stupid question. Have you tried a Yamaha CS6X? http://news.harmony-central.com/Newp...maha/CS6X.html Stuart Welwood http://members.aol.com/StuWelwood |
Reply |
|
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
BPM Studio, DMP Radio Automation, Jazler, Megamix, DJ all, all VSTI's,AKAI Sample CDs, other | General | |||
Richman's ethical lapses | Audio Opinions | |||
stand alone hard disk system vs computer based system | Pro Audio | |||
Wanted!!! NY based Photographers Videographers Webmasters+3D Animators Modelers Wanted!!! | Pro Audio | |||
FA: Original New E-MU Sample Cd's Vintage World Orchestral | Pro Audio |