-
acreil
just finished this
I was initially trying to emulate the obscure "CSM" mode of some Yamaha FM ICs, i.e.
CSM was meant to be used for speech synthesis, but in practice was almost never used. I only have a very rough idea of how it's supposed to work, though. Things kind of just went all stupid from there... -
acreil
excerpt:
complete composition: http://acreil.bandcamp.com/album/hg-iterated-glass-entering-3e2
-
acreil
http://acreil.bandcamp.com/album/flutter-straight-on-the-nine-miles
Excerpt:
This one is all harmonics of 30 Hz.
-
acreil
This has already been posted in the output~ section, but I think it should go here too...
http://acreil.wordpress.com/2013/04/20/algorithmic-composition-of-acid-house-with-lo-fi-timbres/
-
acreil
I uploaded some abstractions that I used in this piece:
The first set (dphasor1, dphasor1~, dphasor2, dphasor2~) reduce aliasing by constraining phasor~ periods to integer numbers of samples, then correct the resultant pitch error by either slowly dithering between the two nearest frequencies, or applying noise modulation. An ordinary phasor~, by comparison, essentially does periodic, audio rate modulation between the two nearest frequencies, generating sidebands that are audible as aliasing. The advantage of my approach is that all aliasing falls back onto the harmonic series (in the dphasor1~ case) or is spread out into broadband noise (in the dphasor2~ case). With oversampling, non-band limited synthesis algorithms can be implemented with very high quality. And at low sample rates the artifacts generally aren't too horrible.
The second set (pdist~, pdistx2~, pdistx4~) implement a phase distortion algorithm that smoothly interpolates between a sinusoid and an arbitrary waveform, or between multiple arbitrary waveforms.
Also included are a number of other "helper" abstractions.
The (carelessly thrown together) example patches are _dphasor_ex_1.pd, etc.
As far as I know, these are novel algorithms. I wouldn't be surprised to see that they'd been published or patented already, but it was quicker for me to implement them than to dig through a bunch of literature.
I'm not making any promises about these being well-documented or useful. At this point they've only been made for my own personal use, so they mostly just conform to my own arbitrary and nonsensical conventions. I plan to eventually write better descriptions that discuss theory, etc. For now I just want to make it available.