WLDS amplitude coefficient usage?

Software questions and issues with the FV-1

Moderator: frank

Post Reply
Colin
Posts: 8
Joined: Thu Oct 23, 2014 9:58 am

WLDS amplitude coefficient usage?

Post by Colin »

Can somebody explain how to use the amplitude coefficient (Ka) in the WLDS instruction?:

WLDS SIN0, Kf, Ka

If I want to implement a chorus and sweep sinusoidally through a delay memory, it seems important that the pointer does not go past the start or end of the delay. I've seen some documentation that says that Ka is the number of addresses on one side of the sine wave, so the peak to peak number of addresses is 2*Ka. This makes sense to me...

However, I've seen other documentation, written by Frank Thompson (presumably the same Frank who monitors this forum), which claims that:

Ka = 2*N, where N is the delay length in samples.... this seems backwards.

To make matters worse, the example code on the website for rom_rev1 calls this instruction:

WLDS SIN0, 12, 160 ;+/- 20 samples (???)

and then:

CHO RDA, SIN0, 0x06, ap1+50

Here, the 50th address of ap1 is the midpoint of the chorus wobble, but if Ka of SIN0 is 160... the pointer should certainly move past the beginning of ap1, regardless of whether Ka=N/2 or Ka=2*N.

Please help. Thanks! javascript:emoticon(':D')

:D :D :D
--Colin
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Re: WLDS amplitude coefficient usage?

Post by frank »

Colin wrote: However, I've seen other documentation, written by Frank Thompson (presumably the same Frank who monitors this forum), which claims that:

Ka = 2*N, where N is the delay length in samples.... this seems backwards.

Ka = 2*N is the correct formula, actually is it Ka=(N*32767)/16385
Colin wrote: To make matters worse, the example code on the website for rom_rev1 calls this instruction:

WLDS SIN0, 12, 160 ;+/- 20 samples (???)

and then:

CHO RDA, SIN0, 0x06, ap1+50

Here, the 50th address of ap1 is the midpoint of the chorus wobble, but if Ka of SIN0 is 160... the pointer should certainly move past the beginning of ap1, regardless of whether Ka=N/2 or Ka=2*N.
Most likely Keith started with +/-20 and later changed the code but not the comment.

The pointer won't run off the end, with a coefficient of 160 the delay line is 80 long or +/-40 centered about a point 50 samples into ap1 so we will be moving between ap1+10 and ap1+90.
Frank Thomson
Experimental Noize
Colin
Posts: 8
Joined: Thu Oct 23, 2014 9:58 am

Post by Colin »

Frank,

Thanks for your prompt reply and for clearing this up!

Just fyi, the documentation for 'Chorus' should be corrected at http://www.spinsemi.com/knowledge_base/ ... mples.html

...where it says "It is a bipolar oscillator, so the reference of 100 actually means +/-100 samples, or 200 samples peak to peak."

Thanks again,
Colin :D
--Colin
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Post by frank »

Colin wrote: Just fyi, the documentation for 'Chorus' should be corrected at http://www.spinsemi.com/knowledge_base/ ... mples.html

...where it says "It is a bipolar oscillator, so the reference of 100 actually means +/-100 samples, or 200 samples peak to peak."
Thanks for catching that, I'll put it on the list to fix.
Frank Thomson
Experimental Noize
Post Reply