Those are great utilities. Some of those effects might be better suited on top of the procedural model though.
At it's core, the procedural module just creates pure waveforms using simple algorythms. It's not really a synthesizer, so there is no current way to influence the input of the calculation. This rules out certain types of effects, but doesn't rule out different types of envelopes. I think envelopes are needed for sure, as like you said there is no volume control. Currently, all waves are an amplitude of "1.0", meaning full volume. Amplitude is something that is kind of part of envelopes anyhow, so it makes the most sense to go that route with full blown envelopes. The first envelope will be a "flat" envelope, which is esentially just a volume control. Second, and simple linear decay envelope. This should have start and end values. Default could be to start at 1.0, and end at 0.0 (or whatever flat progression you want). Third, an ADSR envelope which is described here: https://en.wikipedia.org/wiki/Synthesizer#Attack_Decay_Sustain_Release_.28ADSR.29_envelope Fourth, I'd like to do some type of exponential decay envelope as described here: https://en.wikipedia.org/wiki/Exponential_decay I think it would be great if you could take some simple music notation, and make a little player that plays these using the procedural module. The current waveforms are still just a bit too plain, so that's why I'm working on this stuff. Also, if anyone wants a little toy keyboard that uses this module, I've make this quick demo: https://bitbucket.org/treehousegames/pyglet/src/a446fd59aa3b248637d6198d25be9fafe52eb87c/examples/synthesizer.py?at=procedural_evolved&fileviewer=file-view-default On Tuesday, December 6, 2016 at 6:26:09 AM UTC+9, [email protected] wrote: > > Hmm, SFXR <http://www.drpetter.se/project_sfxr.html> and BFXR > <http://www.bfxr.net/> might be good reference points. Perhaps > pyglet.media.procedural could have assorted variables for controling attack > time, volume, pitch, delta slide, etc, with a Randomize() function, boolean > filters for wave type, a mutate() function, etc. > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
