-
bilberry79
Here's a little example of the one-sided finite version.
dsf1fin~.wav -
bilberry79
Hi,
I'm creating abstracts of DPW oscillators according to Välimäki's paper from 2010.
http://mac.kaist.ac.kr/pubs/ValimakiNamSmithAbel-taslp2010.pdfHe proposes the DPW in different orders. (1st, 2nd ... 6th) to reduce the aliasing of digital oscillators. the 1st to 4th order models work absolutely fine but the 5th and 6th order version get heavily distorted if I go below frequencies of 200Hz (for the 5th-order version) and 600Hz (for the 6th order verision).
Here are my abstracts. The inlet expects frequency in Hz and the outlet is an audio signal.
DPW6th_saw~.pd
DPW5th_saw~.pdDoes anyone know why? Did I do something wrong in the patch?
best,
Matthias
-
bilberry79
Hi,
I made some modules out of the equations from Moorers paper from 1975 https://ccrma.stanford.edu/files/papers/stanm5.pdf
It's about the discrete summation formula to create complex audio spectra.
Find the modules on my GitHub:
https://github.com/bilberry79/PureData#discrete-summation-formula-dsf-adapted-from-moorer-1975Comments are appreciated.
best,
Matthias
-
bilberry79
Oh right. Thanks that might really help. I'm going to adjust this patch a little and share the results.
-
-
bilberry79
@whale-av thanks for the suggestion but you're right, the scale still will be linear.
@LiamG I never used data structures in PD before, though I read this manual real quick and it looks like it might be possible but it's a hell of a workaround
Would be great if we had logarithmic representations of arrays in PD.
-
bilberry79
Hi,
here is a patch demonstrating what I try to do:
abstract_spec2.pd
It writes the magnitudes of an audio input (the one inlet) in two arrays. One with a linear frequency scale on the x-axis and one with a log frequency scale. My goal is it to label the x-axis with the matching frequencies in Hz and not just the indices of the array (aka the bin numbers).
Thanks for your help.best,
Matthias -
bilberry79
Hi,
Can anyone explain to me how I add a logarithmic label to an array. Right now I'm using the internale message (; array1 xlabel 0 1 2 3 ...) to add labels to my array. But this only gives me a linear scale.
My scenario is as follows: I display a frequency spectrum with an array. The standard is of course a linear view if the bins. I already managed it to display my spectrum in a logarithmic scale. Now I also want to add a label to the x-axis with a logarithmic scale.Thanks for your help.
Best,
Matthias -
bilberry79
Hi,
can anyone confirm or deny my suggestion about the different transient detection methods in bonk and fiddle?
in fiddle the energy of complete analysis frames are compared with successive frames and on this base decisions are made if there's a tranient or not.
in bonk distinct frequency bands are compared and the energy evolution of these are the base of transient decisions.
thanks,
matthias
-
bilberry79
Hi,
i receive following from an object box: 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, ... etc. every time i recevie one number it triggers a tabread4. i want that the tabread4 only gets a trigger when the number changes. that means one trigger at the beginning, one trigger at the first 1, one trigger at the first 2 and so on.
at the moment it looks like this.
[for++ 512]
| \
| \
| \
| \
[/8]
|
[tabread4 array]any ideas,
best regards,
matthias
-
bilberry79
Hi,
im'l looking for a efficient way to calculate the mean energy of a fft frame, that is stored in an array and updated every dsp-cycle. i've found the tabletool external which lets you calculate the arithmetic mean of a array/table. does' anyone have another idea how to doe this?
best regards,
matthias
-
bilberry79
Can anyone tell me how audio data goes through a pd patch? here is my scenario and my sugestion about it. the main patcher has by default a block size of 64. on it i have a sub patch reblocked to 1024. the signal flow is: adc~ on main patcher goes into the reblocked subpatch (just goes unprocessed through it) and back to the main patcher with 64 block-size (i've attached a pd file). okay. what happens to the audio stream?
my sugestion is: the adc~ object throws every 64 samples (block-size/samplerate of 44100 = 2.9ms) a block of 64 numbers( i.e. bits) out of its outlet and into tihe inlet of the reblocked subpatch. within the 1024 reblocked subpatch pd waits until it gets 16 frames from the main patcher (64*16=1024) and throws this as on 1024 frame out of its outlet back to the main patcher. in the meantime the main patcher has send 16 empty frames to the dac~ until the 1024 frame comes from the subpatch. but how does the main patcher process the big 1024 frame?? does it only takes the first 64 bits of it?? how does this work?
-
bilberry79
Hi Guys,
i have a serious fft data normalization issue. i receive magnitude and phase data of different block sizes in a patch with a block size of 1024. this means e.g. i receive magnitudes with a block size of 128 (the bin numbers are interpolated so that it fits to the 1024) and i receive the corresponding phases in a block size of 8192 (also extrapolated to fit to 1024). now i have serious problems to normalize the data.
I've already read katjav's post here: http://puredata.hurleur.com/sujet-5266-fft-overlap-normalization-factor
this works fine when the magnitudes and phases are received by only one rfft~ object with one block size.
does anyone have an idea how to fix this?
-
bilberry79
Hi Guys,
i try to understand the rfft/rifft, windowing and overlapping processes in pd. i learned that you have to multiply your audio befor and after the fft/ifft with a window to smooth the edges between the frames. i did a test patch that shows me the signal befor and after windowing. the curios think is, that the multiplying after the ifft doesn't recreate the input signal. i always thought it should be. i get an perfect recreation of the input signal only when i divide insteat of multiplying the signal with the window after the ifft. and when i choose different overlapping factors in the block~ object, it looks much stranger.
can anyone explain me that behavior?best regards,
matthias
http://www.pdpatchrepo.info/hurleur/20110610_WindowTesting.pd
-
bilberry79
Hi,
i'm looking for an efficient way to read every 2nd (4th, 8th) value of a table and write it into another.
i tried it like this, but it costs to much resources.
[bang~]
|
[for++ 1024]
| \
| \
| \
| \
[/2]
|
[tabread4 array]any ideas?
-
bilberry79
hi guys,
i'm looking for a elegant way to receive infos from switch. i have several subpatches with different block-size and overlapp-factor. is there a getter method to receive the present infos of a subpatch?
regards,
Matthias
-
bilberry79
hi,
i'm looking for a method or an object, that makes ist possible to interpolate or extrapolate values between arrays of different sizes.
an example: i have an array of size 128 filled with data and i want to interpolate (strecth) the data information into an array of size of 2048.
does anyone have an idea about that?
best regards,
matthias
-
bilberry79
Hi,
i'm working on a patch that switches dynamically between several blocksizes by using the switch~ object. i'm switching quite fast between e.g. 512 and 2084 block sizes in realtime, while an audio file is processed with rfft~.
i experience some very unpleasend glitches between the switching. has anyone an idea how i can somehow smooth the transition between the blocksizes???regards,
matthias
-
bilberry79
Hi,
i'm running Ubuntu in virtual box on an 64bit win 7. Ubuntu works just fine and all the systemsounds, youtube videos in firefox and mp3's in a media player are playbacked without any problems. But the audio of PD is a big problem. with alsa i've got endless i/o errors and jack isn't working at all.
have anyone collected some experiences with pd in a virtual box on windows?
regards,
matthias
-
bilberry79
when i cast to int it's working. didn't do this at first. cheers