electro-music.com   Dedicated to experimental electro-acoustic
and electronic music
 
    Front Page  |  Radio
 |  Media  |  Forum  |  Wiki  |  Links
Forum with support of Syndicator RSS
 FAQFAQ   CalendarCalendar   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   LinksLinks
 RegisterRegister   ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in  Chat RoomChat Room 
go to the radio page Live at electro-music.com radio 1 Please visit the chat
poster
 Forum index » Clavia Nord Modular » G2 Building Blocks
Comprehensive Octave-Phase-Coherent Oscillator Suite
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [6 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
Author Message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Thu Apr 05, 2012 1:20 pm    Post subject: Comprehensive Octave-Phase-Coherent Oscillator Suite
Subject description: All classic waveshapes available; Lowest possible DSP usage; Good sound;
Reply with quote  Mark this post and the followings unread

These algorithms are a consolidation of new patching techniques I've been exploring. They are intended as building blocks for patches that emulate divide-down-type instruments like classic string machines or transistor organs. I already posted an attempt some time ago, but these ones are far more elegant, use about half the DSP load and sound better too.

The circuits generate octave-phase-coherent oscillators over a keyboard range of 5+ octaves, starting at C2. All classic waveforms (triangle, sawtooth, pulse) are available, either separately (more economic) or simultaneously. Good sound quality and low DSP cost in the voice area were highest priority. Hence everything that needs to be calculated only once has been moved to the FX area, where stuff is piped back to the voices via two interslot busses.

EDIT: I found another all-too-obvious improvement, bringing down the DSP usage even more. All patches have been optimised and re-uploaded. Here are the new stats:

Voice Area DSP usage (cycle/mem) for the different oscillator circuits (bare circuits without any extras):
Triangle: 13/11.7
Sawtooth: 13.7/13.3
Square/Tri: 14.4/13.3 (square is derived from triangle through shaping)
Saw/Pulse/Tri: 18.6/15.6

All waveforms are available simultaneously on the multi-wave versions. Cool

arrow The FX area contains the whole osc driver engine and uses 30.6/43.8. It generates 64 simultaneous octave-phase-coherent oscillator drivers and squeezes them through two interslot busses. shakng2
If, due to this, you run out of DSP in the FX section, just create a performance. Put the osc driver into the FX section of any free slot and use another slot for your patch, thus having a full free FX section for your design. Just remember that interslot buss 1 and 2 are used.

arrow There's an optional vibrato implemented (move modwheel), just to show how to do this.

arrow I used a constant module with accurately tweaked keyboard morph to obtain note information, rather than using the wasteful keyboard module.

arrow Note to the square wave: this is derived from the triangle wave through hard-clipping and fierce feedback. The feedback is way above unity gain
so the waveform flanks are steep enough to generate the characteristic buzzy high frequencies. This works well for square. Variable pulse width is also possible by mixing a DC offset into the feedback loop. However the feedback then has to be reduced to unity gain, otherwise the waveshaper will clamp. So PWM is available but will sound a bit less brilliant. (see example patch)

These are the absolute lowest DSP counts I could muster for such an actually quite complex task. I hope they are low enough to be useful. It was an exercise in super-efficient patching while maintaining a good sound quality. There's only a slight tad of aliasing in the square wave at the uppermost notes, which can be dealt with by lowering the shaper feedback (eg. by subtle negative keyboard morph).

"May the problem of octave-phase-coherency be forever banished!" Let us pray


OctPhCohTriOscTK.pch2
 Description:
Octave-phase-coherent triangle oscillator building block; see thread for info;

Download
 Filename:  OctPhCohTriOscTK.pch2
 Filesize:  4.35 KB
 Downloaded:  4258 Time(s)


OctPhCohSawOscTK.pch2
 Description:
Octave-phase-coherent sawtooth oscillator building block; see thread for info;

Download
 Filename:  OctPhCohSawOscTK.pch2
 Filesize:  4.48 KB
 Downloaded:  4373 Time(s)


OctPhCohSqrOscTK.pch2
 Description:
Octave-phase-coherent tri/square oscillator building block; see thread for info;

Download
 Filename:  OctPhCohSqrOscTK.pch2
 Filesize:  4.58 KB
 Downloaded:  4275 Time(s)


OctPhCohPWMOscTK.pch2
 Description:
Demonstration of PWM on the octave-phase-coherent tri/pulse oscillator building block; see thread for info;

Download
 Filename:  OctPhCohPWMOscTK.pch2
 Filesize:  4.65 KB
 Downloaded:  4265 Time(s)


OctPhCohMulOscTK.pch2
 Description:
Octave-phase-coherent tri/square/sawtooth multi-output oscillator building block; see thread for info;

Download
 Filename:  OctPhCohMulOscTK.pch2
 Filesize:  4.81 KB
 Downloaded:  4303 Time(s)


Last edited by Tim Kleinert on Thu Apr 05, 2012 3:43 pm; edited 1 time in total
Back to top
View user's profile Send private message
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Thu Apr 05, 2012 3:37 pm    Post subject: Reply with quote  Mark this post and the followings unread

I found another all-too-obvious improvement, bringing down the DSP usage even more. All patches above have been optimised and re-uploaded.

Here's another application. Some divide-down instruments featured 2 master oscillators in the top octave which could be detuned. Here's a octave-phase-coherent dual-saw oscillator that does this.

The global detune knob is in the FX section.

Only 20.4/18.8 DSP for two oscillators.


OPCDualSawOsc_TK.pch2
 Description:
Octave-phase-coherent dual-sawtooth oscillator; see thread for info.

Download
 Filename:  OPCDualSawOsc_TK.pch2
 Filesize:  5.1 KB
 Downloaded:  4349 Time(s)

Back to top
View user's profile Send private message
dorremifasol



Joined: Sep 28, 2006
Posts: 814
Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49

PostPosted: Fri Apr 06, 2012 1:23 am    Post subject: Reply with quote  Mark this post and the followings unread

Seems that you are very inspired lately Very Happy Thanks for the blocks!

They don't work in the demo, I'll try them at home.

_________________
Cheers,
Albert
Back to top
View user's profile Send private message Visit poster's website
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Fri Apr 06, 2012 1:44 am    Post subject: Reply with quote  Mark this post and the followings unread

dorremifasol wrote:
Seems that you are very inspired lately Very Happy Thanks for the blocks!

They don't work in the demo, I'll try them at home.

Easter holidays... Rolling Eyes Laughing

Don't expect much of these patches, they just produce bland waveforms. Laughing But octave-coherent waveforms. If you're into patching Solinas and Polymoogs etc., they might be interesting. Otherwise probably not. Laughing

I'm making some fascinating discoveries concerning modulo operations, it's addictive. This is simply byproduct of that.
Back to top
View user's profile Send private message
dorremifasol



Joined: Sep 28, 2006
Posts: 814
Location: Barcelona, Spain
Audio files: 7
G2 patch files: 49

PostPosted: Fri Apr 06, 2012 1:49 am    Post subject: Reply with quote  Mark this post and the followings unread

Do you remember your trick using phase filter to fatten the waveforms?

Would it be possible to do it in the waveform building block in the FX area?

_________________
Cheers,
Albert
Back to top
View user's profile Send private message Visit poster's website
Tim Kleinert



Joined: Mar 12, 2004
Posts: 1148
Location: Zürich, Switzerland
Audio files: 7
G2 patch files: 236

PostPosted: Fri Apr 06, 2012 2:43 am    Post subject: Reply with quote  Mark this post and the followings unread

This design doesn't generate the waveform in the FX area. It is directly derived from the demultiplexed and modulo-linearly reconstructed oscillator driver (a trivial audiorate sawtooth) through waveshaping. This is the most economical way, and also uses up only 2 interslot busses.

Of course it is perfectly possible to combine the octave-phase-coherency technique with anti-aliased user-definable waveforms. The high poly organ patch does exactly this, the user-definable waveform in this case being additively generated by sine waves corresponding to the drawbar footages and levels. It's almost like cheating. Laughing
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Moderators: Nord Modular Editors
Page 1 of 1 [6 Posts]
View unread posts
View new posts in the last week
Mark the topic unread :: View previous topic :: View next topic
 Forum index » Clavia Nord Modular » G2 Building Blocks
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Forum with support of Syndicator RSS
Powered by phpBB © 2001, 2005 phpBB Group
Copyright © 2003 through 2009 by electro-music.com - Conditions Of Use