• allister

@jancsika, it would be t_sample, but I had to pause my little expriments. Thanks guys, I hope to be back at it in two weeks and nail this thing or come back with better questions.
@Nicolas-Danet you're in Montpellier, awesome! I will contact you soon I'd love to talk to someone who knows this stuff, it can be hard to learn on your own.

• allister

Hi ! I’m trying to write my first external, and have studied the externals-howto. I understand, for example how the pan~ example works (I think, I'm a noob in C), but in my case I'm confused:

I want to implement a recursive algorithm, I need to copy the inlet vector into an array A perform some operations, copy the restult in array B, swap arrays, and start over again several times until I can finaly copy one of the arrays into the outlet vector.

How do I have to treat these arrays in the code? should they be of type t_sample?
In the perform section should I treat them as the inlets and outlets?

``````t_int *foo_perform(t_int *w)
{
t_sample  *in =    (t_sample *)(w[1]);
t_sample  *out =    (t_sample *)(w[2]);
t_sample  *a =    (t_sample *)(w[3]);
t_sample  *b =    (t_sample *)(w[4]);
int          n =           (int)(w[5]);
``````

• allister

@paulspignon Wow that’s crazy ! What were you working on if I may ask ?

About music applications, do you know what the guy meant?
Seems to me you can acheive a lot of the same stuff as fft, but with different sounding artifacts ? That could be interesting.
Also, since you can acheive convolution, it could greatly improve performances of say partitionned convolution algorithm I don’t know

Anyway, I really hope we can prove this Signal Processing Guru wrong!

• allister

@jancsika Take a look at this one:
hutchins_paper_2.PDF

• allister

@jancsika
for the theorem itself you there are good ressources here and there for example:
discrete walsh hadamard transform on Mathworks.com

I didn't find much on sound specific usage except for this old paper hutchins_paper_1.PDF from Hutchins in... 1975. He is cited in Roads book. Very interesting

• allister

fwth.pd
The walsh-Hadamard transform is similar to fourier transform but works with square waves instead of sinewaves, which I find very interesting. I discovered it in Curtis Road's fantastic book "The Computer Music Tutorial" and since then got obsessed with it.
One big advantage of the Fast Walsh Hadamard Transform, is that it's much faster to compute than FFT since it only works with real numbers.

So I made this patch to demonstrate the idea with filtering. The core of it is based on a C code I found here: https://github.com/bvssvni/fwht/blob/master/fwht.c

This is just proof of concept. I'd love to make it real time but don't quite know how. Anybody?
I think this deserves a pair external that could be used like [rfft~] and [rifft~].
The C code for the algorithm is actually quite simple. I just don't know how to do all the wrapping.

• allister

Won't be much help but instead of zexy/z~, you can use delread~ or vd~ with a [block~ 1] to operate at sample level. I'd love to see this drum implemented !

posted in technical issues read more
• allister

Hello,

I made a little abstraction based on the first freeze patch ralph posted which I love for its simplicity.
What I realy needed was something that produces warm textures, so I naïvely implemented Paul nasca's idea of randomizing the phase. I didn't think it would work but it does (with large block) and it sounds realy good!

substance~.pd

I have a question but first I have to explain what I tried to do:

To continue with this very naïve version of the PADsynth, I wanted to record a sample out of the output that would be naturally looped, but I didn't manage to do so, this is from Paul Nasca's description of his algorithm:
"This algorithm generates some large wavetables that can played at diferent speeds to get the desired sound. This algorithm describes only how these wavetables are generated. The result is a perfectly looped wavetable".
What I did was to put a [once] under a [bang~] and write the sample in a table the length of the block~. From my limited understanding of fourier transform I thougth that a hole window would produce a periodic signal.

What should I do to produce a looping soundfile? Is there a problem with the overlapping perhaps?

cheers

Allister

posted in technical issues read more
• allister

resize does create a "crackle" in my experience too.
One work around in your case perhaps would be to use delwrite~ and delread~ in aloop, something like this: liveloop~.pd
When you call this abstraction you need to specify the buffer size in ms which will be your maximum loop length.
I'm not exactly sure what you want to do but I hope this helps somehow

posted in technical issues read more
• allister

[wendy] maps incoming notes onto scales constructed around equaly divided ratios that can be other than 2:1 (the octave), allowing for example pure fiths, at the cost of an imperfect octave, a cost which I'll gladly pay. As Wendy Carlos said: "That's one of the things you aren't suppose to do, which is exactly why I did it!"

It can be used to have any edo scales if desired