Beta Preview: tcArpGen - algorithmic arpeggiator

VST, AU, AAX, CLAP, etc. Plugin Virtual Instruments Discussion
RELATED
PRODUCTS

Post

Here is a first look (public beta) at my latest mad machine, tcArpGen, an algorithmic arpeggiator. Like other arpeggiators it steps through the notes of a chord, one by one, but unlike other arpeggiators it uses a set of rules to determine the note order and direction.

Zip file with DLLs and Support Files available here: tcArpGen_v01b.zip

** You will need to manually copy the support files to the Documents\ToneCarver folder for now. Installer is planned for later version. Plugin is available as 32 bit or 64 bit, Windows only (sorry Mac users :()

User Manual (first draft .. needs much more fleshing out) is available here: tcArpGen_UserManual.pdf

Image

The rules are a form of L-System (https://en.wikipedia.org/wiki/L-system) whose terms control when a note is played, when a note interval is increased or decreased, etc. You can load rules from the Rules folder (Documents\ToneCarver\tcArpGen\Rules) by dragging and dropping a file onto the plugin, or by clicking the Rules button to open the Rules panel and clicking the Load File button to load a rules file.

In addition to the notes received at the input, tcArpGen can produce up to 3 'harmony' notes whose intervals are also controlled by the arp rules. Notes and harmony notes can be delayed so they are staggered on output.

This beta version has minimal documentation (more coming soon) but does have a few presets to get you started. The GUI is fully skinnable so look and feel can be changed easily.

Issue: may not work well on systems older than Windows Vista.

Issue: Immediate Quantization mode does not work now but I hope to have that fixed soon.

Happy to receive feedback on this. I have more features planned but want to make sure the foundation works before proceeding.

(Previous version is here in case latest version is not working for you: tcArpGen_v01a.zip)
Last edited by ToneCarver on Sat May 21, 2016 6:24 pm, edited 3 times in total.

Post

looking forward to trying this ...
i've quite enjoyed your previous work , w/ nova3 , and mbiragen ...
Image

Post

like many people responding to new releases on kvr,

i'm reading online stuff, god knows when i'll ever actually open a daw and try a plugin,

but will say, your plugs are "algorithmic" releases i feel offer unique audio expression in vst, development worth taking note of (and making notes with :p ).
you come and go, you come and go. amitabha neither a follower nor a leader be tagore "where roads are made i lose my way" where there is certainty, consideration is absent.

Post

xoxos wrote:like many people responding to new releases on kvr,

i'm reading online stuff, god knows when i'll ever actually open a daw and try a plugin,

but will say, your plugs are "algorithmic" releases i feel offer unique audio expression in vst, development worth taking note of (and making notes with :p ).
Thanks muchly :) I appreciate that coming from a fellow explorer of the algorithmic VST arts. Your Hyperion plugin was quite inspired ...

Post

Slightly updated version here: tcArpGen_v01a.zip

- added increment step size control
- move semi-bounds strategy control closer to note-bounds strategy
- fixed reject/trim collision strategy display
- added first draft of user manual

Post

Fantastic to see new stuff from you! Nova is amazing, looking forward to test this one tonigth :)

Post

Had a very brief play with this last night; it made the boring notes going in sound nice coming out but not sure what was going on... :)

Will spend quality time with it later for sure, thanks.

Post

Well I couldn't wait until evening, and sure it's even better than expected. It'll take me a while to get to grips with the L-system, but there's an ocean of depth with just using the included rules.

I didn't find any bugs and the interface is functional and easy to use. I wouldn't mind a numerical display for Rate?

Like Nova, this succeeds in expanding the composition process via maths, but does it in a way that remains intuitive and controllable. I feel this balance is crucial for these kinds of tools, so that they can be played like instruments and not some alien tech with a will of it's own.

Thank you very much for your work!

Post

This looks real nice, and seems to produce musically useful results. The L-Systems wiki is intimidating, however. How seriously must we study it before we can create promising rules? (I loved algebra in school, calculus was more challenging.)

Thank you!
Studio One 3.5.6 Pro
Win 7 x64
Core i7 3770 3.4 GHz
Behringer UMC404HD
No talent.

Post

redplum wrote:(I loved algebra in school, calculus was more challenging.)
Me too :)
redplum wrote:This looks real nice, and seems to produce musically useful results. The L-Systems wiki is intimidating, however. How seriously must we study it before we can create promising rules?
The wiki link was for the general concept of L-Systems, turtle graphics, etc. The tcArpGen rules description doc is what you really need but that is a few days away. In the meantime here are some tips to get you started:

- A rules file contains a set of productions.
- Each production has a left-hand side and a right-hand side, separated by an '='
- The left-hand side of the production is the production name
- the right-hand side of the production are the production terms
- There is a special production, call the start production whose name is S
- The terms of a production define how the arpeggiator behaves. Some common terms are:

Code: Select all

  N      play a note (and harmonies if active)
  +      pick the next note in the chord
  -      pick the previous note in the chord
  _      play a rest 
  C      play the notes as a chord
  G      play the notes as a gliss (like a strum) 

  $h1+   pick the next scale interval for harmony 1  (use $h2 for harmony 2, $h3 for harmony 3)
  $h1-   pick the previous scale interval for harmony 1
  $h1*   pick a random scale interval for harmony 1
  $h1!   set interval for harmony 1 to nominal (0)
  $h1=4  set scale interval for harmony 1 to given value
  
  $s+    pick the next scale interval for the semitone offset
  $s-    pick the previous scale interval for the semitone offset
  $s*    pick a random scale interval for semitone offset
  $s!    set scale interval for semitone to nominal (0)
  $s=5   set scale interval for semitone to given value
  
  $v+    increase velocity zone
  $v-    decrease velocty zone
  $v*    pick a randome velocity zone
  $v!    set velocity zone to nominal (96?) 
  $v=7   set velocity zone to given value
  
  $o+    pick next octave offset
  $o-    pick prev octave offset
  $o*    pick a random octave offset
  $o!    set octave offset to nominal (0) 
  $o=-2  set octave offset to given value
  
  [      save context 
  ]      restore context 
  
  {      begin expression
  }      end expresssion
- so a production like 'X = N + N + _' would be interpreted as: play a note, pick next note in chord, play a note, pick next note in chord, play a rest'. Not too interesting on its own but can be combined and interwoven with other productions (or itself!) through recursion and expansion.
- Expansion starts with a sequence of terms and creates a new sequence (typically a longer sequence but not always) by replacing each term with the terms from the production that matches the name of the term (if one exists). For example, if the rule is this:

Code: Select all

   S = N + X
   X = N - X
The expansions at the first few depths are this:
depth 0: N + X (expansion always starts with production S)
depth 1: N + N - X (the X term is replaced by the terms from the X production)
depth 2: N + N - N + X (the X term is replaced by the terms from the X production)
...
Resulting in a sequence of alternating note up, note down actions

That's a basic overview .. just keep in mind that
- expansion always starts with the S production
- expansion at each depth level replaces each single term with the entire sequence of terms from the production with matching name (if one exists).
- the arp interpreter 'performs' the action for the terms that have meaning to it (e.g., N,+,-,$h2,etc.) and ignores the rest.

You can use the term detail report (click the little empty square next to the Exp Len readout) to view the expanded term sequence. And tcArpGen will be getting an update to be more informative if it finds an error in the rules file.

Post

Thanks for another cool plugin ToneCarver ... will try it out later. :tu:

Post

I should point out that I tend to use this as a kind of "bubbler" to produce sequences with some subtle randomness and unpredictability to keep the sequence interesting. It can do predictable but my interest leans more towards the not-quite-predictable 'happy accident' side of the spectrum.

Quite often, for me, depending on the rule set, using 1, 2 or 3 notes as input is sufficient to get some interesting results. Adding a dotted-eight delay after the synth/sampler can really fill out the sound space when using staggered harmonies. Slower tempos work well when feeding synths/samplers using sounds with longer/slower attack curves. Try sending the output to a drum instrument/sampler for creating rhythm beds. Send each harmony to a different channel/instrument, etc, etc .. most of all, have fun :)

Post

Awesome to see something new from you! :tu:
Looking forward to give it a try :-)

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Thanks for the rules clarification!

Post

.jon wrote:hanks for the rules clarification!
Seconded.

But, each time I sit down to try making some simple rules (the equivalent of "Hello, World"), I instead start playing with the included presets and the various parameters, and get drawn into the sequences it produces.

You may have outdone yourself with this plugin. :)
Studio One 3.5.6 Pro
Win 7 x64
Core i7 3770 3.4 GHz
Behringer UMC404HD
No talent.

Post Reply

Return to “Instruments”