Support

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

String Orchestra Synthesis

Post any examples or modules that you want to share here

Re: String Orchestra Synthesis

Postby k brown » Sun Dec 22, 2019 10:25 am

Spogg wrote:I can’t pretend to understand your explanation unfortunately

Glad I'm not the only one :? :oops: :D
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: String Orchestra Synthesis

Postby martinvicanek » Sun Dec 22, 2019 11:05 am

Spogg wrote:I can’t pretend to understand your explanation unfortunately

Then I did a terrible job explaining it. Let me try again.

Suppose you work at a company that makes regular deliveries to some destination. You meet monday morning and plan for the week. Let's say item A is due every other day, item B is due twice a week and item C is due every day. Your schedule could look like this:

Code: Select all
Monday     ABC
Tuesday      C
Wednesday  A C
Thursday    BC
Friday     A C
Saturday     C
Sunday     A C


The rest of the week you just deliver according to your schedule.
Not sure the analogy is clear. If you prefer (simplified pseudo-)code;
Code: Select all
float position[k];  // next spike from voice k
float period[k];    // period for voice k
float wav[index];   // wavetable

every 512 samples do{          // prepare schedule for next frame

  for all voices k do{         // schedule all spikes from this voice
    p = position[k]
   
    while p < index + 512 do{  // add spike and increment position
      wav[p] = wav[p] + 1
      p = p + period[k]
      }
   
    position[k] = p            // store new position
    }
  }
}

every sample do{               // read wavetable
  output = wav[index]
  index = index + 1
  }
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: String Orchestra Synthesis

Postby adamszabo » Sun Dec 22, 2019 12:28 pm

Very cool Martin! Can one convert this to poly or its designed for mono only?
adamszabo
 
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: String Orchestra Synthesis

Postby Spogg » Sun Dec 22, 2019 1:34 pm

Please be patient with an old fool (me).

The impression I get reminds me of wavelet granular synthesis:

-There is a defined 512 sample waveform table.
-Information as to how this is read comes from within a “spike”. This determines the readout rate of the index and the start value of the index.
-The spike happens once per desired cycle period and is just to initiate one complete cycle. In between spikes the oscillator gets on with reading out the waveform.
-In this way the spike is a single sample data word which is, in effect, being sampled and held for one cycle by the oscillator.

How far off the mark am I? In kilometres please. :lol:

If I have indeed got the idea right, what is the waveform in the waveform table?

Cheers

Spogg
User avatar
Spogg
 
Posts: 3358
Joined: Thu Nov 20, 2014 4:24 pm
Location: Birmingham, England

Re: String Orchestra Synthesis

Postby martinvicanek » Sun Dec 22, 2019 9:03 pm

Yes, essentially it is a wavetable, however one that is constantly being (over)written. The resulting waveform is an overlay of hundreds of spikes, so quite random looking and constantly changing. Here is a snapshot:
Attachments
capture.png
capture.png (16.85 KiB) Viewed 16390 times
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: String Orchestra Synthesis

Postby martinvicanek » Sun Dec 22, 2019 9:08 pm

adamszabo wrote:Can one convert this to poly?

Good question. My intention was to provide a poly version of this, however so far I haven't found a way how to do it.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: String Orchestra Synthesis

Postby k brown » Mon Jan 20, 2020 8:39 am

I was a little unsure if 'Randy 2' is intended to supplant 'String Orchestra' or what - Martin said back in Nov. that he was 'adding stuff'; is that what became 'Randy 2'?

Anywho, I did a third version of SO, with a second 'generator' that can be tuned to semitone intervals with the first and has it's own Phat and Width controls. With this tuned to say a fifth above, it's Phat and Width at near minimum, one gets almost a soloist-with-orchestra effect. Also added a LoCut to the wet of MVerb 7b; keeps things from getting muddy with bass-heavy sounds - also sounds more like a real world concert hall. Most good halls have much less reverberation at lo freq than high.

StringOrchestra2 copy.jpg
StringOrchestra2 copy.jpg (141.16 KiB) Viewed 16113 times

SOS_arpGUI_d2.fsm
(2.06 MiB) Downloaded 1172 times

I really love this thing. Haven't explored Randy2 yet.
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: String Orchestra Synthesis

Postby k brown » Mon Jan 20, 2020 10:27 am

Martin - just noticed, inside Randy2 the verb is called MVerb 8B; is this an update or a typo?
Website for the plugins : http://kbrownsynthplugins.weebly.com/
k brown
 
Posts: 1198
Joined: Tue Aug 16, 2016 7:10 pm
Location: San Francisco, CA USA

Re: String Orchestra Synthesis

Postby martinvicanek » Tue Jan 21, 2020 9:23 pm

k brown wrote:Martin - just noticed, inside Randy2 the verb is called MVerb 8B; is this an update or a typo?

It is supposed to be an update, basically making the echo build-up softer. Not sure if I shold keep it - it is quite CPU hungry.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Previous

Return to User Examples

Who is online

Users browsing this forum: No registered users and 67 guests