If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Hard Sync for the lazy one
4 posts
• Page 1 of 1
Hard Sync for the lazy one
Hi,
Just played around a bit, trying to find a cheap less aliasing hard sync method. The result is attached.
Basically it works like that:
Parallel to the master oscillator (Schematic doesn't have on, though) runs a wavetable oscillator with a band limited rectangle (0-1 range). The rectangle is most of the time high and just starts/stops hard at zero. Basically an inverse BLIT.
There is a ramp counting parallel to the master oscillator for triggering the Sync of the slave. When a sync happens (ramp > 1) the phase offset ( (ramp -1) * slave freq / master freq ) is passed to the slave oscillator. That's just simply because a sync might happen between samples. At the end is the inverse BLIT wave multiplied by the slave osc output to smooth out the sync transitions.
It kind of works. But the way how I generate the BLIT Wavetable is really a hack. I used the wavetable primitive to generate a band limited wavetable, and rescaled the output to a 0-1 range, because it wasn't made for such a accurate task. There might be better ways.
Have fun!
Maik
Just played around a bit, trying to find a cheap less aliasing hard sync method. The result is attached.
Basically it works like that:
Parallel to the master oscillator (Schematic doesn't have on, though) runs a wavetable oscillator with a band limited rectangle (0-1 range). The rectangle is most of the time high and just starts/stops hard at zero. Basically an inverse BLIT.
There is a ramp counting parallel to the master oscillator for triggering the Sync of the slave. When a sync happens (ramp > 1) the phase offset ( (ramp -1) * slave freq / master freq ) is passed to the slave oscillator. That's just simply because a sync might happen between samples. At the end is the inverse BLIT wave multiplied by the slave osc output to smooth out the sync transitions.
It kind of works. But the way how I generate the BLIT Wavetable is really a hack. I used the wavetable primitive to generate a band limited wavetable, and rescaled the output to a 0-1 range, because it wasn't made for such a accurate task. There might be better ways.
Have fun!
Maik
- Attachments
-
- hard sync test (MyCo).fsm
- (1.51 MiB) Downloaded 1480 times
-
MyCo - Posts: 718
- Joined: Tue Jul 13, 2010 12:33 pm
- Location: Germany
Re: Hard Sync for the lazy one
I don't fully understand how you did it but it sounds very clean.
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Hard Sync for the lazy one
I found a way to calculate the sync wave table directly. So now it uses a perfect shape without the rescale hack that I used before. Amplitude looks to be more exact, hasn't changed the sound much, though
- Attachments
-
- hard sync test 2 (MyCo).fsm
- (954.11 KiB) Downloaded 1405 times
-
MyCo - Posts: 718
- Joined: Tue Jul 13, 2010 12:33 pm
- Location: Germany
Re: Hard Sync for the lazy one
I do not know if it performs as expected,
but the test with the wavetable seems to generate strange harmonics close to the Nyquist frequency.
however very clean sound.
but the test with the wavetable seems to generate strange harmonics close to the Nyquist frequency.
however very clean sound.
- Tronic
- Posts: 539
- Joined: Wed Dec 21, 2011 12:59 pm
4 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 56 guests