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

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: 1319
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: 657
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: 3324
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 14862 times
User avatar
martinvicanek
 
Posts: 1319
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: 1319
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 14585 times

SOS_arpGUI_d2.fsm
(2.06 MiB) Downloaded 1075 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: 1319
Joined: Sat Jun 22, 2013 8:28 pm

Previous

Return to User Examples

Who is online

Users browsing this forum: No registered users and 50 guests