http://www.em411.com/show.php?area=patch&area_id=153
I uploaded a single file patch version of my 3 op FM synth to
em411.com. It is pretty big as em411 only allows 1 file per patch (470kb) I will abstract it out this weekend and upload it to the new pure-data.org, for those of you who want to see it but are scared of a 1/2 Mb pd file.
Now the goods: It is 8 voice polyphonic. With envelopes for each operator: Amplitude, Pitch and filter (its uses, vcf~, I am going to look at the various filters discussed yesterday to see if I can get a better sounding one). It has been tested by me for a good day or so, but I am sure I missed some bugs please email me if you run into problems (particularly sticky ones are those when the envelopes don't seem to work, I found 2 last night). Load save is form an older patch so that should be pretty solid. Also because it uses Arrays to store its info it will always remember the last 8 patches you worked on.
The bads: It is not GOP safe, and has not been tested with multiple copies of itself, so I don't know if it is abstraction safe. Its eats CPU cycles for breakfast (20% on my windows 2k machine at home which is an amd 1000 with 512megs of ram, 35-40% at work which is an intel p4 1500). This is my first major Synthesis patch, so I will be exploring ways to get this down in the coming weeks.
The Uglies. The envelopes are [line] and [line~] driven. I would like to move them to T3 envelopes, but the help files for the t3 stuff are Greek to me, it is going to require a bit more experimentation for me to figure them out. The envelope times are hardcoded into the sliders. I would like them to be slider independent and also respond or map to tempo information Obviously the CPU and GOP/abstraction stuff. I am not scaling the output of the 8 voices so if you go full throttle on the keyboard you will get clipping. How do people usually avoid this? I can think of a bunch of ways to do it, but is there a standard? I would like to set up a nice CC matrix or gui that allows you to route Control Change Msgs to any value.
I had a big old list of things in my head last night before I went to bed, but I forgot them. I will remember better ones as the patch progresses (like assignable LFO's, but maybe I should make the user do it externally through the CC gui.)
As always comments/questions/bug reports are very very welcomed!
m.
Matthew Allen wrote:
http://www.em411.com/show.php?area=patch&area_id=153
I uploaded a single file patch version of my 3 op FM synth to
hey cool... i've been working on a big polyphonic "analog style" 3 oscilator synth that i'm planning on releasing shortly after burningman when i have free time again (in about 3-4 weeks) ... we should compare notes, looks like you ran into all the same hangups i did, namely:
"The envelopes are [line] and [line~] driven. I would like to move them to T3 envelopes, but the help files for the t3 stuff are Greek to me"
and:
"Its eats CPU cycles for breakfast"
and:
"I am not scaling the output of the 8 voices so if you go full throttle on the keyboard you will get clipping. How do people usually avoid this? I can think of a bunch of ways to do it, but is there a standard?"
Now the goods: It is 8 voice polyphonic. With envelopes for each operator: Amplitude, Pitch and filter (its uses, vcf~, I am going to look at the various filters discussed yesterday to see if I can get a better sounding one).
i really like svf~ so far, i havnt tried one of the [moog~]'s yet though
thanks for posting it!
-josh