PS-PurrSoftware Plugin Modules

I’d be really interested in hearing people’s thoughts on the comparison, gaps and overlaps between Meander and the NDLR. For the latter, see:

Just started playing with Meander a few days ago, then came across the NDLR this morning and saw quite a bit of overlap in their concept. Wondered if Meander might benefit from anything in NDLR’s capabilities/UI.

1 Like

Seems to have some similarities. Haven’t gotten around to learning meander myself, just being very lazy and waiting for an amazing tutorial video. :wink:

Hi,

As @Coirt mentioned, I began developing Meander for DOS/Windows~32 years ago. Meander for Rack is a faithful port of that application to the Rack plugin architecture. As such, I have no interest doing anything that relates to the NDLR hardware. If someone is interested in doing a plugin/module that is based on NDLR, it will need to be someone else and not part of the Meander plugin/module project. Of course, I have released my code as opensource GPL v3+, so technically anyone could do anything they want with the sourcecode in their own fork.

2 Likes

I had a math error in my Windows QueryPerformanceCounter() 0.1us timer usage in profiling. With the correction I am achieving an average of 0.00045 seconds per frame draw(), rather than the 0.00015 I reported earlier. This is still the equivalent of ~2000 FPS so should still be fine.

Since QueryPerformanceCounter() is a Windows function, I’ll have to take it out after I’m finished profiling and before releasing for distribution. Too bad, it is neat having the UI CPU time displayed on the panel above the Rack CPU meter text.

image

1 Like

Oh, I still had some DEBUG() enabled. Without that, I’m getting 0.00030 seconds per frame draw. That’s better.

image

hello

first of all thanks a lot for your module, very interesting and very good to understand deeper the musical theory!

And secondly, i’m on a linux debian 10, and before i install the graphical driver for my GPU, it wasn’t possible to use it, even if it was the only module in the patch. All was very very slow, a bit like if the framerate was deep under 12kz. And it was the first module were i have this problem. But on the same machine, on windows, it was working perfectly.

So now with the driver install it is perfect.

thanks a lot !

1 Like

draw() doesn’t do any actual computation. It just adds GPU instructions to a buffer managed by NanoVG. Profiling it is mostly meaningless, unless you’ve added a lot of computation there.

2 Likes

Ah, vindication. Looks like it was indeed MS who broke my sound on the 15th, and broke several other things in the patches to fix what they broke. Be sure to read the news today if you are a Windows user and experiencing problems with sound, booting, network access or Cortana search, or…

I get your point. In the past I had modules that drew a simple SVG on every draw call. Those profiled as “too slow”. Have told to other devs who do a lot of drawing and have heard similar. I guess at the very least a module whose draw call seems to take longer might a least be a hint that your need to do less drawing per frame.

For the next release of Meander, I have added the ability to “sequence” the melody in addition to the current ability to sequence the harmony. This is a scale relative interval sequencing where 1V plays the 1st note in the mode-root scale, 2V plays the 2nd scale note, up to 7V plays the 7th scale note. In western mode music, all scales have 7 notes. With such relative degree sequencing, the same sequence can be applied to any mode and root scale directly.

My question is whether anyone knows if there are any sequencer modules that use degrees rather than notes. Currently for testing, I am using SEQ-3 and MarkovSeq for generating degree sequences and input to Meander via CV and that works great. It would be fun to test with a fully featured 1-7 degree sequencer.

Here is a SoundCloud demo of this as it currently stands.

6 Likes

After @contemporaryinsanity asked me what a degree sequencer would look like, I messed around and came up with an approach that works with any sequencer that allows the notes CV to be entered as 0-10V. I’m now using an octal radix (decimal) number to represent degree and octave as degree.octave where the degree radix place can be from 0-7 with 0 meaning “don’t play” and with the octave radix place being from 0-7 representing the octave. This works great! The key was thinking of this as a CV or CC sequencer rather than a note sequencer. So, I’ll have to play with some of the more complex sequencers to see what all I can do.

This method is still compatible with MarkovSeq also.

Here is a SoundCloud demo of the the octal radix degree and octave sequencing of Meander. In this one track of SEQ-3 is sequencing the harmony and one track is sequencing the melody. Sorry about the recording level clipping distortion. I did not notice at the time of recording. At least I got the Plateau reverb in the loop for this recording.

2 Likes

Powerful and very interesting module! And exciting to see both the open sourcing of such a long and complex work, and the community support to the original author to make it easier… :+1:

1 Like

I uploaded a new song to SoundCloud. I created this today using Meander. It is all generative with no actual sequencing going on. I had fun with this. The instruments are primarily an Arturia Vox Continental V Collection and Spitfire LABS Fender Rhodes (sort of) bass piano in Host as VST plugins.

4 Likes

Here is my latest Meander performance. In this, Meander conducts 16 HOST modules, each hosting a Spitfire BBC Symphony VST instrument ensemble. This is a Markov Chain harmonic progression in the style of Bach, sort of, in C Mixolydian. Everything is automated and I did not intervene after starting recording. 15 minutes long with no repeating measures. I tweaked the module code a bit to better handle CV parameter control. That will be in next release, but is minor.

13 Likes

This is really beautiful, @k-chaffin. Just what I needed right now. Thanks.

I haven’t used Meander yet but am definitely going to give it a try. Is this a first-order chain? If so, have you experimented with higher-order chains?

1 Like

That’s great. Is there a chance to share the patch (or at least a complete picture) so that it can be better understood?

Yes, this is a first order chain. I’ve flirted with higher order Markov chains, but have not coded anything on it. In some of my previous incarnations, I combined finite state machines with Markov chains, particularly in gaming A.I. for character behavior, including 3D IK and FK animation. But, that is another story.

In a roundabout way, Meander’s fractal Brownian motion (fBm) combines Markov chains with time coherency (memory of previous states), which sort of results in a 2nd order chain, or even higher depending on the coherence depth. That shows up more in the melody though. I also used this technique in game engine development to have 4D fBm procedural textures which behave like 4th order Markov chains. But that is another story also:)

Here is the full sized image of the patch. You can ignore the Entrian Timeline module in this patch as I have not yet implemented any CV automation with it in this patch.

Note, several proprietary commercial modules are used in this patch.

2 Likes

I should probably explain this patch at the highest level in case anyone is trying to understand it in more depth.

  • Meander has 3 main note sequencing outputs: Harmony, Melody and Bass. Each of these outputs is going to multiple HOSTs.
  • Each HOST audio outputs go to a track on the MindMeld MixMaster mixer.
  • The STS POLY LFO module has 16 very low frequency sine wave outputs with different phases that are split and used to automate the mixer tracks volume, so instruments come and go during the piece.
  • The BGA LLFO are used to control several Meander melody parameters via CV.
  • All of the HOST VST plugins are set up to accept volume control on the first HOST channel and the Meander “Volume” outputs control these.
  • Meander is running off of its internal clock. CLOCKED is there for the Entrian Timeline which is not used in this patch.
  • OCT modules were added for several HOSTs so that the Meander output could be transposed to the best octave for the BBC Symphony VST instruments.
  • The Submarine TD-202 modules were added primarily to label what instrument each HOST is hosting, since it is difficult to determine that from the image only.

My intent with this was primarily to inspire what is possible using Meander.

Have fun!

3 Likes