[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 561: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 617: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1065: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 181: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
[phpBB Debug] PHP Warning: in file [ROOT]/feed.php on line 182: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3925)
Forum Discussions about the Moselle Software Synthesizer 2017-03-02T20:31:53 http://moselle-synth.com/forum/feed.php?f=20&t=32 2017-03-02T20:31:53 2017-03-02T20:31:53 http://moselle-synth.com/forum/viewtopic.php?t=32&p=47#p47 <![CDATA[Re: Alpha-09 proj 1 of 56: better waveform shapes for the "simple" Oscillator]]> Statistics: Posted by forum — Thu Mar 02, 2017 8:31 pm


]]>
2017-03-02T20:31:28 2017-03-02T20:31:28 http://moselle-synth.com/forum/viewtopic.php?t=32&p=46#p46 <![CDATA[Alpha-09 proj 1 of 56: better waveform shapes for the "simple" Oscillator]]>
So there's also a "naive" oscillator which simply outputs a real square squarewave, a simple-slope sawtooth, and so on, as you'd draw with a ruler on graph paper. In the digital realm, such waveforms actually sound terrible especially at higher frequencies as they have strong harmonics over the Nyquist frequency, which alias. Much over middle C, they start to sound atonal, and if there's a gentle slow pitch bend you hear the aliases bending the opposite way of the note itself.

As cleanup, I'm just generating 1 sample right where the waveform changes from -1 to 1 or vice versa, as an AVERAGE value of all values of the theoretical waveform from -1/2 to +1/2 sample around the actual sample.

This single average sample seems to cut aliasing 15dB! For instance, with an A6 sawtooth, the strongest alias an octave or more below the fundamental is -42dB just below A2. By changing one generated sample, it goes to -57dB. At that point it is audible... if there's no other music, just a test tone... with no filtering... if either you know what to listen for or bend the note.

I've written a test patch that compares the SWO, with the Oscillator in averaging mode, and in old mode.

I've got Sawtooth working, it seems, so next I'll do Square/Pulse and SawPulse. Should just be an hour or two. Then a couple other tiny cleanups for the Oscillator, and on to the next project. I think I'll be releasing alpha-09 weekly, since most of these projects are very small, with local effect, no entanglements, and easy to test.

Statistics: Posted by forum — Thu Mar 02, 2017 8:31 pm


]]>