[sdiy] sine wave floating point conversion issue
Veronica Merryfield
veronica at merryfield.ca
Sat Feb 25 04:29:42 CET 2012
Divide is often expensive (although not always).
unsigned char DacValue = (unsigned char)((sample*127.5)+127.5);
On 2012-02-24, at 7:20 PM, Jay Schwichtenberg wrote:
> Dan,
>
> Try:
> sine_int = (int) ((((sine_float + 1.0) * 256.0) - 1.0) / 2.0);
>
> Jay S.
>
> -----Original Message-----
> From: synth-diy-bounces at dropmix.xs4all.nl
> [mailto:synth-diy-bounces at dropmix.xs4all.nl] On Behalf Of dan snazelle
> Sent: Sunday, December 31, 2000 4:52 PM
> To: synthdiy diy
> Subject: [sdiy] sine wave floating point conversion issue
>
> If I have a value in my program that is putting out floating point values
> (to make a sine wave) between 0.0 and 1.0
>
> I would like to get these values into an integer value of between 0 and 255
> for my dac routine.
>
> i tried changing the type and multiplying the value and then dividing it,
> but then i ended up with negative and positive values....
>
>
> here is the routine which MAKES the sine
>
>
>
> void loop () {
> int FREQUENCY=25+analogRead(0);
> float sample;
> int j;
>
> for(j = 0; j < NUM_SAMPLES; j++) {
>
>
>
> sample = sin(2 * PI * FREQUENCY * j / SAMPLING_RATE);
>
>
> sample is the value which is a float and puts out the number I want to
> transform into something usable for the dacOutput function.
>
>
> This has shown me I need to get better and basic type conversion, etc
>
>
> thanks
>
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
More information about the Synth-diy
mailing list