[PD] sinesum inverse

Simon Iten itensimon at gmail.com
Thu Aug 4 23:51:24 CEST 2016


hi claude,

your bandlimited project works/sounds great! very nice sounds from handdrawn waves.

however i am having trouble getting your example to work. probably just stupidity from my side.

i suppose i don’t understand your:

> "set appropriate block size, turn off dsp, bang to execute 1 block”

message. if you find the time, can you have a look at it?

do i not need to run a bang into tabplay in this special one block send scenario?

with my patch i get “kind" of the right thing. 

1) the table “spectrum” only updates once i click into the table (after i hit the bang).
2) i get only 64 values, so i guess my blocksize is still 64?
3) if i send a bang to switch~ when dsp is off, i get an error on the console:

bang to block~ or on-state switch~ has no effect.



cheers




> On 04 Aug 2016, at 18:01, Claude Heiland-Allen <claude at mathr.co.uk> wrote:
> 
> Hi Simon,
> 
> On 04/08/16 09:54, Simon Iten wrote:
>> ah sorry, yes
>> 
>> i want to read a wavetable, say 128 steps and calculate the gain structure to aproximate this wavetable with sine waves.
>> the idea behind this is to get a different sound from wavetables, use low resolution wavetables to get nice sounds (waldorf microwave xt)
>> 
>> so for a saw wave i would want the following numbers.
>> 
>> 1 0.5 0.3333 0.25 0.2 and so on…
>> 
>> how to do this for an arbitrary input wavetable?
>> 
>> i looked at the fft examples but it is not clear to me how i would do this with a single wavetable (of known size)
> 
> You could do something like this with [rfft~], but you lose phase
> information which might be important depending on what you are doing
> (use fixed-width font to see diagram):
> 
> "set appropriate block size, turn off dsp, bang to execute 1 block"
> |
> [switch~]
> 
> [tabplay~ wavetable]
> |
> [rfft~ ]
> ^    ^
> [*~] [*~]
>  \  /
>  [+~]
>   |
>  [sqrt~]
>   |
>  [tabsend~ spectrum]
> 
>> or if there is a “simpler” (without fft) possibility that would be great.
> 
> I don't think you'll get simpler than FFT here.  As a bonus you can also
> get phase information (sinesum has all phases 0, cosinesum all phases
> pi/2, general wavetable can have arbitrary phases).
> 
> You could use [rifft~] instead of sinesum to generate your wavetable,
> too.  Note there may be some issues with normalization (fft->ifft has an
> amplitude gain equal to the blocksize, iirc).
> 
> For a more advanced use of oneshot FFT and IFFT for wave tables, see my
> bandlimited project:
> https://mathr.co.uk/blog/2015-02-12_bandlimited_wavetables.html <https://mathr.co.uk/blog/2015-02-12_bandlimited_wavetables.html>
> 
> 
> Claude
> -- 
> https://mathr.co.uk <https://mathr.co.uk/>
> 
> 
> _______________________________________________
> Pd-list at lists.iem.at <mailto:Pd-list at lists.iem.at> mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list <https://lists.puredata.info/listinfo/pd-list>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160804/5ab4cba8/attachment-0002.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wavetablefft.pd
Type: application/octet-stream
Size: 784 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160804/5ab4cba8/attachment-0001.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160804/5ab4cba8/attachment-0003.html>


More information about the Pd-list mailing list