Instrument patches / modules

87 views
Skip to first unread message

Rune Lund Sørensen

unread,
Apr 30, 2015, 1:12:07 PM4/30/15
to analo...@googlegroups.com
This thread is for discussing different techniques of instrument creation, sharing and explaining instrument modules (as opposed to JamBots).

First off, Keith asked me to explain my string section from PercusiOne on the basic osc level. So, I'm attaching a few modules here.

The one called Strings is directly attachable to a pitch quantizer + a time constant, and will behave like you can hear it in the PercusiOne circuit. It has two submodules- the one called Strings Sub here, which is basically just envelope and filtering - use this one as a single monophonic string instrument. Within the sub module there's the core OSC circuit, which I will endeavour to explain here:

In old school substractive synthesis stringer sounds are done by mixing ramps, pulse modulated squares and noise, subsequently setting your filter to taste. The old Juno60 (one of my faves) had some really nice string patches done like this. I figured more layers and some randmization of pitch and pulsewidth would create a richer sound, so that's basically what's going on in this circuit.

The randomology is handled by one noise generator and a shft registry with 8 outputs. It produces 8 random values every second. For of those are passed to the pitch of the main ramp oscs through an RC filter. Each ramp osc is run through a comparator, which is fed another random signal (totaling eight random control voltages now), effectively producing a variable pulsewidth.

In total this gives us 8 noisy and edgy tone generators: 4 ramps and 4 pulses. Now each pulses will share the pitch of the ramp it's derived from, so I figured panning those away from each other would 'hide' that. And this is the last stage: panning out the generators, producing a very rich synth-string sound :)

One could add some pink noise to the mix for that Juno sound, but it's already quite 'noisy' as is...

Now, if Keith would step forward and initiate us into the mysteries of synthesizing a realistic acoustic bass, I'm sure that I'm not the only one who would be grateful...
Strings.ABox2
Strings Core.ABox2
Strings Sub 1.ABox2

Keith Blackwell

unread,
May 1, 2015, 1:44:45 AM5/1/15
to analo...@googlegroups.com
On 4/30/2015 11:12 AM, Rune Lund Sørensen wrote:
Now, if Keith would step forward and initiate us into the mysteries of synthesizing a realistic acoustic bass, I'm sure that I'm not the only one who would be grateful...

I would be happy to try to explain that little box you are referring to, but I have to understand it myself first.  I think the core was probably a happy accident that got some extra complexity tacked onto it in order to get some additional needed functionality for the jambot it is in.  It may take me a bit of time to clean it up, reorganize it, label it with explanations, and so on.  So I'll get back to that later.

Tonight I spent quite a bit of time trying to understand what I was doing just in those envelopes.  I might have gotten the gist of it, but when trying to play with it a bit, it is way too easy to push the unstable oscillator part into a state that it can't recover from until you reload the file (stopping and restarting play doesn't do it).

screen shot of the envelope I was studying, with
      oscilloscopes to help me understand it

Envelope shaping is like a whole study in itself.  And for some instruments, it can make or break the realism.  In the case of that "acoustic bass" module, I find that the slightest change to the overall envelope shape has a huge effect on the result.  In this case, it mostly uses 3 ADSR's, as shown in the screen shot (except the screen shot shows it after I modified it for several minutes).  The ADSR envelope module that ABox2 provides is often a good starting point, but I find myself very often modifying its outputs in multiple ways.  The most common are

(0) the obvious approach of using multiple ADSR's and mixing their outputs together to get more complex shapes than any one ADSR can provide, especially when you have one using the nominal time duration (T input) and another that is more spread out by having it use a much longer time duration (and since the time is really represented by its inverse, frequency, you have to divide the nominal T value down, perhaps by multiplying it by a fraction -- 20% gets you 5 times the duration), and perhaps another providing an initial transient at a shorter duration (perhaps by doubling the nominal T value),

(1) to multiply it by itself (square it) so that you get some curvature to what would otherwise be straight lines (very useful for controlling added harmonics with faster decay than the fundamental), or similarly you could use any Function block to map it mathematically some other way, or you could even use an Oscillator with Phase input to give the overall levels a bit of a boost while still rounding out the peak;

(2) pass it through an RC filter to smooth out something, either the initial attack, or the final decay, or both; and of course you could combine multiple RC's with different time values and mix their outputs in various ways; a useful example is to have an ADSR that goes both positive and negative, but its output is squared and then that goes through an RC filter -- this can give multiple "humps" from a single ADSR (see example further down);

(3) recombine the raw output, squared output, and/or RC-filtered output with demux blocks (usually at 1/2+1/2 center function) whose mix amount is itself controlled by one of those signals -- an alternative is to use a GT or LT comparator to drive the demux block so that it always picks whichever of those signals is the greatest, so that the initial transient comes from the ADSR block but the decay comes from the RC filter it feeds;

(4) vary the time (T input) of the RC filter block mentioned above by one of the various signals being mixed -- this can allow you to have the RC output match the input by the first or second sample since it has the highest possible frequency (shortest time) as its T input at the start of the envelope, and then it changes (perhaps with the ADSR-squared) to the final time constant you want it to end up being (like several seconds, or a fraction of the time provided to the outer context).
screen shot of a portion of a circuit where an ADSR's
      output is processed in multiple ways including time-varying RC
      filter
I've even built a little alternative envelope block that uses the initial trigger itself to start an RC filter at an instant value of -1, after which it instantly drops to some desired time duration value to allow that -1 to exponentially decay to 0.  By combining a few of those and some of the techniques mentioned above, you can pretty much get the shapes you want for your envelope with a very natural exponential decay that never completely ends (until the "small" values essentially become equivalent to zero), and without using a single ADSR block.
Screen shot of a portion of a circuit including an
      envelope section that uses only RC filter on trigger with varying
      time

Instruments often have complex envelopes in their overall output, and their spectral content may be shaped by distinct envelopes with completely different timing and curvatures.  Sometimes you get a spikey initial attack that immediately drops to a more modest level, which then might rise a bit over time before it decays.  And you can also use some envelope or another to modify other things than just amplitude -- in the case of a plucked-string instrument it can be helpful to have a very short-duration envelope that controls a slight addition to the fundamental frequency being played (it starts out a little bit sharp and quickly settles down to the given value).

I'll come back to trying to explain what is going on with the acoustic bass module a bit later.  For now, be aware that the top-most ADSR (as you can see in my first screenshot above) is controlling extra amplitude from the pluck itself, and when it combines with the others, the result actually does exceed 1.0 for a moment.  That doesn't necessarily mean that the output is going to exceed 1.0 -- it all depends on how the envelope gets used in various places throughout the circuit.

--
Keith W. Blackwell

Keith Blackwell

unread,
May 3, 2015, 12:24:28 AM5/3/15
to analo...@googlegroups.com
Okay, back to the "acoustic bass" circuit.  I spent a lot of time going through it and dividing it out into sections, figuring out what they were actually doing in order to understand what they were intended to do, etc.  Unfortunately, I found that there were many places where demux blocks were in zero-center mode instead of the 1/2-and-1/2 mode that the circuit design obviously intended.  As a result, entire chunks of the circuit were basically doing nothing to the end result.  It's kind of embarrassing.  I had probably thrown much of the circuit together as a concept to start with, and then started tweaking it as it was playing, until it sounded okay -- but I never bothered to check each subcircuit to see what it was doing or to notice that they weren't doing what I had originally planned for them to do.

As I cleaned up a version with comments, I fixed many of these apparent defects and "improved" several things.  But in the end, the result didn't sound nearly as good as the original.  That's because I had tuned the original to sound good as I modified it in its original form.  But I haven't had time to really tune the cleaned-up version.  Much of it might be accounted to the changes to the envelope shapes resulting from my edits.

In all that experimentation, I think I discovered that most of the realistic sound comes from just the basic four components:  original FM oscillator sub-circuit, the filtering of its output, then the resonant post-processing that was intended to create the sound of the instrument body, and of course some sort of envelope to drive it all that gives a reasonable drop-off rate (for the provided timing constant in the original jambot it was in).  But the specifics of how it is being done in the circuit are far from optimal.

Most importantly, the circuit uses a concept I used a lot back when trying to get "brass" sounds to sound right -- it is a separate circuit that is apparently supposed to give a completely different set of instrument-body resonances that are then fed back into the FM (modulating the frequency) and into some of the post-processing filters (along with the main oscillator output).  Is this even needed?  I don't think so.  It adds a lot of complexity and makes it hard to understand, but what it provides is questionable at best.  I had discovered that a delay-based, fed-back FM component was the only way I could get the initial "burble" of brass attack to sound right, so I probably started with that idea when creating this circuit.  But it was a waste, I think.

In the new, cleaned-up circuit (which doesn't sound as good), you can more easily find and isolate the various components, which are assigned to a few busses (w*) such that the final output pin can be set to a different bus to solo it.  There are oscilloscopes showing you the various envelope components, and there are more read-outs to show what various things are (frequencies, etc.).  So you can experiment with it and see for yourself what is going on.  But the original circuit had zero-centered demux blocks all over the place, whereas in the cleaned-up version, I have switched them to half-and-half mode.  If you try switching some of them back (but not those in the final mix section), then you might get it to sound good again.

--
Keith W. Blackwell

Keith_AcousticBass.ABox2

Keith Blackwell

unread,
May 4, 2015, 12:41:52 AM5/4/15
to analo...@googlegroups.com
Today I managed to work through the rest of the acoustic bass circuit, cutting out stuff that was not actually used (to simplify the original circuit) and then I experimented a lot with changing things around.  The FM feedback side-circuit, which is the part where body sustain and resonance and other mechanical noise gets injected back into the string (just a simple 2-osc FM arrangement), was truly not necessary at all, but I still put a new one into the reworked circuit just to see what it might do.  If fed too much signal, there is too much wavering ultra-low-frequency content that throws the pitch all over the place, so it's kind of unstable and dangerous.  But the main thing that gives it its sound is what I had said before -- I'm just more sure of it now. 

Anyway, if you really want to prove it to yourself, take a listen to these different modules and reconnect the output pin (on the inside of whichever one you're testing) to the different signal points along the way to see/hear how it all comes together.  I think that's the best way to understand it.  I'll keep the earlier versions in this same file for reference, but I think the last one in the "list" (Keith's Reworked Acoustic Bass) is the one to use.

--
Keith W. Blackwell



Keith_AcousticBass.ABox2

Rune Lund Sørensen

unread,
May 11, 2015, 1:19:05 PM5/11/15
to analo...@googlegroups.com
I still think the original sounds best - but the circuitry is way too complex for me to grasp (or maybe I'm just too lazy).

I've been messing around with my own acoustic bass model for a while. The idea of reverbation fed back into the tone generator is really good, but getting something that sounds like the body of a contrabass is not easy. I'm attaching my results so far, using the Karplus-Strong algorithm (exciting a resonant delay line with a noise burst to emulate the picking of a string) and a simple Shcroeder reverbator which is then both fed back to the resonator and added to the output. It sounds decent, but could be improved upon without a doubt.

I had to invent a way of producing resonant delay lines that can do both less and more than one sample frame for both the resonator and the combs in the reverbator. Check out the 'Delay' module in the resonator section to see how it works.
Runes Acoustic Bass.ABox2

Keith Blackwell

unread,
May 23, 2015, 10:47:49 PM5/23/15
to analo...@googlegroups.com
On 5/11/2015 11:19 AM, Rune Lund Sørensen wrote:
I had to invent a way of producing resonant delay lines that can do both less and more than one sample frame for both the resonator and the combs in the reverbator. Check out the 'Delay' module in the resonator section to see how it works.


That's brilliant.  I'm amazed.

I think the feedback sounds better if you do it into the frequency being converted to a number of samples.  You have to attenuate it, of course, and I think the pluck-start-sharp thingie needs to be multiplied by f0 (which you have forgotten to do), so you could add the feedback in before that multiplication (I just did it separately myself, as I modified your circuit).  Of course, you can still feedback into the activation input of the resonator, but I think they need separate level controls.  I like to limit the activation signal feedback and the resonator's R levels based on the filtered RMS of the resonator output, but that's really not easy to do well.  I added an exponential-decay that I multiplied the feedback by to ensure that it does go away over time even if it tries to run away at first.  But try the FM approach.  If you raise the filtering of that reverb's output (that gets fed back) to a higher range, like around 500 Hz or so, you get a bit more of that fretless yawn sound.

I tried various things, most of which were not particularly helpful, but limiting the feedback with a decay over time and letting the feedback become FM both seemed to help a bit.  One thing I think you might have done for the body sound instead of the reverb is to just a few anti-comb filters to produce more noticeable body frequencies.

--
Keith


Keith Blackwell

unread,
May 24, 2015, 1:11:05 AM5/24/15
to analo...@googlegroups.com
On 5/23/2015 8:47 PM, Keith Blackwell wrote:
I think the feedback sounds better if you do it into the frequency being converted to a number of samples. 

Well, maybe not.  I like your original better than any of my variations.  :-)

--
Keith

Keith Blackwell

unread,
May 28, 2015, 1:44:29 AM5/28/15
to analo...@googlegroups.com
A certain amount of the FM feedback works, but I think a lot depends on its spectral character and its envelope.  I like certain aspects of what I can get with my mods to your circuit, but still like the purity and cleanliness of sound from your original.  Both can sound too reverby, and yet the decay on the original is so abrupt that it begs for some adjustment, methinks.  Anyway, I think that in many circumstances, it might be good to just blend them together, though ideally I would just put the two separate resonators and feedback circuits into the same module.  :-)

Comparison with a sequencer just for the purpose of demo'ing/testing these...

--
Keith

AcBassExploration.ABox2

Rune Lund Sørensen

unread,
May 28, 2015, 7:14:55 AM5/28/15
to analo...@googlegroups.com
Some really good ideas in there. The envelope control of the resonance for example (although I have no idea what the weird R formula does exactly). There is some noticeable distortion here and there though. Especially the high notes. I suspected the FM feedback, but minimizing it didn't eliminate the distortion. My circuit on the other hand does suffer from unstabillity, and certain notes resonating crazily. Regarding scaling pluck env. time with frequency, (and initial noise burst time too), I deliberately chose not to do so. It does create a more uniform sound, regardless of pitch, but I find that less realistic to the ear. My rationale is this: A string doesn't get thinner when you put your finger on a higher fret. Nor is the pluck movement of your fingers dependant on the fret.

I want to try out different reverbs for the body though. The schroeder verb does the job, but I am sure better results can be obtained with other reverbation techniques. I've been fooling around with scattering junctions and (sometimes nested) allpass series, making pseudo 2D meshes for reverbation purposes, and had some amazing results. I'm attaching one recent experiment, with little explanation (sorry). A longer post will be made in the reverb thread in the near future. Suffice to say, the scattering junctions, while not working like they theoretically should (the 1024 samples feedback latency), they do provide a decent way to simulate wave propagation in space. Practically speaking, they provide a sort of nesting frame for the AP series.
JunkVerb-Simple.ABox2

Keith Blackwell

unread,
May 29, 2015, 3:38:45 AM5/29/15
to analo...@googlegroups.com
On 5/28/2015 5:14 AM, Rune Lund Sørensen wrote:
I want to try out different reverbs for the body though. The schroeder verb does the job, but I am sure better results can be obtained with other reverbation techniques.
To my ear, the reverb can sound too roomy, which is quite different from an instrument body.


I've been fooling around with scattering junctions and (sometimes nested) allpass series, making pseudo 2D meshes for reverbation purposes, and had some amazing results. I'm attaching one recent experiment, with little explanation (sorry).

That reminds me of an experiment I did once with scattering junctions arranged in somewhat of a 2-dimensional pseudo-rectangle.  I called it the "mesh verb" (attached).  I can't remember if it ever sounded good, but I probably didn't try to tune it well, and I never considered stacking multiple all-passes within the delays (or at least, I don't remember ever thinking of it).  Maybe that could be done here.  You'll see here that this goes 3 layers deep, at least: the overall wrapper module, which contains some control circuitry and extra-long delays around the inner mesh itself, and that in turn holds some junctions.  Probably buggy, as most of my circuits are.

Anyway, I'll plan to listen to your circuit sometime this weekend...

--
Keith

Keith_MeshVerb.ABox2

Keith Blackwell

unread,
May 31, 2015, 2:38:27 AM5/31/15
to analo...@googlegroups.com
On 5/28/2015 5:14 AM, Rune Lund Sørensen wrote:
I want to try out different reverbs for the body though. The schroeder verb does the job, but I am sure better results can be obtained with other reverbation techniques. I've been fooling around with scattering junctions and (sometimes nested) allpass series, making pseudo 2D meshes for reverbation purposes, and had some amazing results. I'm attaching one recent experiment, with little explanation (sorry). A longer post will be made in the reverb thread in the near future. Suffice to say, the scattering junctions, while not working like they theoretically should (the 1024 samples feedback latency), they do provide a decent way to simulate wave propagation in space.
It's a nice result. You usually don't see just the all-passes alone, but in this case, the feedback aspect of the scattering junctions throws in the additional 1024 sample delay, so you get at least that. 

For a more room-like reverb, it seems you only need some multi-comb in there somewhere.  Just for fun, I threw in a multi-comb block between the unused in's and out's of the final junctions, and then duplicated the whole thing to form a stereo series (with some edits to every delay amount), then used yet another junction block *and* another multi-comb (blended) to help bridge the two channels.  I'm sure it would need additional tuning for more general use, but it sounds pretty smooth and yet still very natural and roomy for this one little jambot that uses the standard 3-ramp guitar voice [with added envelope].  I'll just attach my test jambot as a demo so you can see what I mean.  But for just handling instrument body sustain, I think your original AP series without any additional comb filters would be better.

By the way, the little multi-comb block I threw in there still has a built-in test circuit for seeing how impulses line up as you adjust delays, and how the spectral results change (of course, you have to turn "on" the scopes and the snapper feed, but with that in place, you don't need an external signal being fed in).  The current delay sizes with full spread (Dx input of 1.0) still have some ringing, the worst of which I damped out (and I killed one strong peak with a band-reject, though I hate having to resort to that), but depending on the source material you might have problems with a Rf (reverb feedback) input > 50%.

--
Keith W. Blackwell
StereoizedJunkVerbDemo.ABox2

Keith Blackwell

unread,
May 31, 2015, 11:47:48 PM5/31/15
to analo...@googlegroups.com
While working with this idea of instrument-body feedback into the oscillator, I wanted to revisit the polyphonic instrument, where the instrument-body effect can be shared and fed-back into multiple independent voice oscillators.  I thought it could be interesting to use Rune's JunkVerb (scattering junctions forming a loop/network of 4 stages of 4 all-pass filters each).

I've already done something like this many times in the past.  Here is a relevant piece of such a thing that had about 8 piano voices summed up and sent through a piano-body resonator (but oddly, I see that the feedback came from the summing block, *before* the resonator, instead of after):


The circuit that drives the multiple voices for a polyphonic instrument can be simple, like this 3-bit binary multiplexer used in the same piano stack shown above:


But that can be wasteful, because you can end up with multiple oscillators all independently playing the exact same note.  I tried long ago to make a "smart" stack driver that would not cycle to the next overwrite if the note to play was already stored, but that first attempt failed.  Recently, I came up with a better way, but it requires that the final outputs include triggers as well as frequencies.

This new way (to get a polyphonic stack-driver to re-use existing notes already held in the S&H blocks) involves having the initial trigger ripple through all the sample-and-hold sub-circuits for the various output feeds -- only if no match is found does the trigger come out at the end, and then force the mechanism to move on to the next one to be overwritten.  If any of those sub-circuits already has the new frequency, then it will simply retrigger on its normal trigger output, but not pass on the query trigger to the next sub-circuit.  Here is a look at that key part -- the t0 initial trigger goes in at the top, ripples down through the blocks, and comes out at the bottom only if none matched, kind of like a query:



I first made this a size-8 stack driver, but today cut it down to a size-4 to cut back on some waste in a demo circuit.  But before that, I found a defect, I think, in Analog Box.

The "8Stack with Reuse" driver had been working just fine, and then today I started getting a bizarre defect showing up in it.  There is this first S&H block that capture the F (frequency input) with the external trigger, and then a second S&H block that takes from that one only if the query trigger gets all the way through the sub-units, meaning that none of them already had that frequency in storage.  Well, what I am seeing here is that the frequency gets corrupted slightly when captured by that first S&H block.  You can see with read-outs that the input frequencies are always pure notes (no +xx or -yy cents).  But what shows up after that first S&H block is almost always way off, with noticeable sharpness or flatness.  I can't figure out any good reason that this should ever happen.

Here is a screen shot showing this defect, though by the time I got the screen shot the input F had already changed to the next note:



The point is, the input through F should never be anything but a pure intonated frequency (like the +00 shown here), but once it comes out of that first "sh" block, it often has a seemingly-random about of deviation, many cents sharp or flat.

When I first encountered this, I tried changing the trigger of the first S&H block to take either edge, and that fixed the problem.  But that's not the way the circuit is intended to be used.  And later, once I added two other blocks containing this same 8Stack driver and with that workaround in place, all of them began showing the defect again!

About this defect, is this a known problem?  And if so, is there a work-around?

In this case, the resulting cacophony of out-of-tune notes is almost comical.

Here is a piece of the relevant polyphonic module:


By the way, the "ki" means "kill", which in this demo circuit is fed by a trigger occurring any time there is a change in the chord chosen by the sequencer.  That is to prevent having notes linger on indefinitely after they might not fit the rest of what is being played.

I'll post the actual analog box demo circuit with all this stuff in a separate post, but here is the 4-deep stack driver module, which also shows the same defect (perhaps not in all circuits, since I only saw this defect for the first time today):

--
Keith W. Blackwell


Keith_4StackDriver.ABox2

Keith Blackwell

unread,
May 31, 2015, 11:51:42 PM5/31/15
to analo...@googlegroups.com
On 5/31/2015 9:47 PM, Keith Blackwell wrote:
I'll post the actual analog box demo circuit with all this stuff in a separate post

Here it is.  Tell me if it plays in tune on your system.  Because on mine, it sounds absolutely horrible, with about 2/3 of the notes being as much as nearly a quarter-tone sharp or flat.


--
Keith W. Blackwell

Keith_S+H_Defect_Demo.ABox2

Rune Lund Sørensen

unread,
Jun 1, 2015, 4:11:12 AM6/1/15
to analo...@googlegroups.com
First, great work on the junkverb! There was one muxer not set to crossfade though :P - Regarding ringing and delay lengths, I stick to primes to avoid that- ensuring no common denominators between any of the delay modules. Depending on feedback structure you can still run in to resonant frequencies when the delays add up in various ways, but keeping all delay lengths prime numbers should minimize that.

The junkverb was indeed intented for instrument body resonance - no pre-delay or early reflections by choice. If you want that you can achieve very realistic room mimicry by nesting each of the allpass series within another allpass filter - using a delay > 1024, you can make use of abox' feedback latency (you need to compensate in the feedforward loop - i.e. add one delay module set to 1024).

Your piano circuit suffers the same detuning on my end. Have you tried delaying the trigger one sample? Otherwise, I'd stick to midi values and use an INT function or the midi quantizer to bypass it.

Andy Turner

unread,
Jun 1, 2015, 12:11:37 PM6/1/15
to analo...@googlegroups.com
Solution: Inside RampStack4 we see a Random object setting the delay
time for two Delay objects. The Random object's 'n' trigger is set to
'neg edge' -- change that to 'pos edge' and the problem goes away.

The source of the problem is the one sample where the delay time is
changing. During the delay change time, the delay interpolates between
samples. The interpolation effects both the 'tn' and the 'F' signal --
neither value will be pure during the one sample transition. Setting
the Random's 'n' trigger to pos-edge moves the time of the change away
from the neg-edge sample and holds further down stream.

Rune's suggestion of adding one sample delay seems to work as well.

--A
> --
> You received this message because you are subscribed to the Google Groups
> "Analog Box" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to analog-box+...@googlegroups.com.
> To post to this group, send email to analo...@googlegroups.com.
> Visit this group at http://groups.google.com/group/analog-box.
> For more options, visit https://groups.google.com/d/optout.
>

Keith Blackwell

unread,
Jun 1, 2015, 11:23:03 PM6/1/15
to analo...@googlegroups.com
On 6/1/2015 10:11 AM, Andy Turner wrote:
The source of the problem is the one sample where the delay time is
changing. During the delay change time, the delay interpolates between samples. 
Aha.  That of course is *before* the 4-stack driver block, and I never got to see the interpolated value within the block because it probably only lasted for 1 sample.  Duh.  Nice catch, Andy.  Fortunately, the problem being outside of the driver block, the driver block (both the 4stack and the 8stack) should be fairly okay, methinks.

I didn't know that the delay block would interpolate when you don't tell it to always interpolate.  It's what you don't know that always gets you.

Now that the demo circuit plays in tune, it still isn't particularly worth listening to.  I think I liked the original "violin-like" instruments I built that sequencer for, though they actually sounded more like wind instruments (oboes or something) with the bow noise sounding more like breath, and without any stacks.  :-)

--
Keith

Reply all
Reply to author
Forward
0 new messages