Please, try my plugin (take 2--for real this time)
-
- KVRist
- Topic Starter
- 415 posts since 8 Dec, 2003 from NYC (born & raised in Philly)
[edit] OLD BUILD. SCROLL DOWN FOR NEW DOWNLOAD INFO
http://www.modular-music.com/programs/PCMLv1b1.zip
(source files and DLL included)
ok, so now i think i really have a working compressor plugin. i revised the gain reduction algo to work properly. tip for DSP newbies: remember, addition with dB is multiplication with sample values. multiplication of dB is exonentiation of sample values. learn from my mistakes.
it still sounds like shit, though. i need to handle the clicking sound when the compressor kicks in, which i think can be done with a low-pass ... somewhere.
anyway, enjoy. if nothing else, it's a glimpse into the learning process.
please give me your feedback, especially regarding DSP and programming style. thanks.
http://www.modular-music.com/programs/PCMLv1b1.zip
(source files and DLL included)
ok, so now i think i really have a working compressor plugin. i revised the gain reduction algo to work properly. tip for DSP newbies: remember, addition with dB is multiplication with sample values. multiplication of dB is exonentiation of sample values. learn from my mistakes.
it still sounds like shit, though. i need to handle the clicking sound when the compressor kicks in, which i think can be done with a low-pass ... somewhere.
anyway, enjoy. if nothing else, it's a glimpse into the learning process.
please give me your feedback, especially regarding DSP and programming style. thanks.
Last edited by citizenchunk on Sat Dec 13, 2003 8:15 pm, edited 1 time in total.
-
- KVRist
- 86 posts since 11 May, 2003
-
- KVRist
- Topic Starter
- 415 posts since 8 Dec, 2003 from NYC (born & raised in Philly)
yeah, sorry about that. i'm having serious web server problems. (tip: never use www.dot5hosting.com. they are bad bad bad.) my programs page seems to be down, and i can't login or check my email under that domain. sucks.
it's a shame too, cos i have so many revisions since i last posted. i keep finding my stupid mistakes and redoing everything. but i think i've made progress, and now i can't post the results.
it's a shame too, cos i have so many revisions since i last posted. i keep finding my stupid mistakes and redoing everything. but i think i've made progress, and now i can't post the results.
-
- KVRist
- Topic Starter
- 415 posts since 8 Dec, 2003 from NYC (born & raised in Philly)
ok, i think i'm ready to post the latest build of my compressor. i've fixed the initialization problems from before (silly me!), added some parameter mapping stuffs, and also a new "smoothing" parameter, which affects the way the time coefficients behave. listen for yourself as to what it actually does.
download it here:
http://www.meathaus.com/citizenchunk/
(zip contains source and DLL)
as a side note: because of my shitty web hosting (they said that my server was "compromised"), i am being temporarily hosted by a friend from www.meathaus.com. this site is for a comic book publication called "Meathaus". it is written by a really talented collective of NY/LA-based artists, and it is really spectacular. if you are into the visual arts / comic books, i suggest that you check them out, and maybe order a copy or two.
download it here:
http://www.meathaus.com/citizenchunk/
(zip contains source and DLL)
as a side note: because of my shitty web hosting (they said that my server was "compromised"), i am being temporarily hosted by a friend from www.meathaus.com. this site is for a comic book publication called "Meathaus". it is written by a really talented collective of NY/LA-based artists, and it is really spectacular. if you are into the visual arts / comic books, i suggest that you check them out, and maybe order a copy or two.
-
- KVRian
- 922 posts since 26 Mar, 2003 from Guildford, England
the compiled .dll puts full scale DC out. Any processor specific stuff in the compilation?
I made a workspace for it and recompiled it anyway, and it worked. Sounds best in RMS mode.
You can get pretty sharp attack with it, which could be useful on kicks if you run it through a distortion moduile afterward.
The smoothing parameter didn't do much for me, but I didn't test it for too long.
Couple of things I noticed in the code...
Why do you calculate both RMS and Peak, when only one set of the final values is actually used?
You also don't really need to do the 'max' if you aren't running in stereo linked mode.
You could use an inline function for the process, which would mean you'd only have one copy of the process code (easier to maintain).
You could also do away with the Left and Right class members (these get overwritten at the beginning of every iteration of the loop, and are not used to persist data between calls to process() or processreplacing(). Just 'pass' pointers to your inline function, with a couple of locals to hold the outputs so that you can accumulate or replace the output.
I made a workspace for it and recompiled it anyway, and it worked. Sounds best in RMS mode.
You can get pretty sharp attack with it, which could be useful on kicks if you run it through a distortion moduile afterward.
The smoothing parameter didn't do much for me, but I didn't test it for too long.
Couple of things I noticed in the code...
Why do you calculate both RMS and Peak, when only one set of the final values is actually used?
You also don't really need to do the 'max' if you aren't running in stereo linked mode.
You could use an inline function for the process, which would mean you'd only have one copy of the process code (easier to maintain).
You could also do away with the Left and Right class members (these get overwritten at the beginning of every iteration of the loop, and are not used to persist data between calls to process() or processreplacing(). Just 'pass' pointers to your inline function, with a couple of locals to hold the outputs so that you can accumulate or replace the output.