Aria's thread of barely working betas and bug squashing: Psychopump (in library soon)

Sounds good to me. Using Meander with QQQQ etc. via PES works fine right now. As long as PES still allows the scale root to be designated even if the info is thrown away, Meander will continue working fine with your modules that support PES input.

Basically my 3 options:

  • Qqqq silently infers the tonic. This behavior will trip up users
  • Qqqq overtly infers and let you program the tonic - but being a quantizer, it makes no use of it. It becomes a makeshift chord programmer - but it’s obviously not suited to the task
  • Qqqq discards the tonic. Another module is used to program chords and scales with a tonic. People might not understand why Qqqq can’t be used with modules requiring a tonic

None of the options satisfy my right now.

Yeah, when you throw chords on top of scales, your module data architecture has to totally change. This is especially true if you support other than heptatonic scales. As mentioned before, Meander once allowed arbitrary scales including pentatonic, hexatonic and octatonic on top of heptatonic. Trying to do a variety of chord types such as major, minor, diminished and 7th (which is pretty much the absolute minimum that has to be supported) with an arbitrary scale type is a near impossible task. I had an A.I. engine that tried to do all of this, but I was never satisfied with it, after years of messing with it. Thus, Meander for VCV Rack only handles heptatonic scales.

Of course I am no music theory expert and others may know how to do this where I failed.

The difference between a chord and scale is purely one we make as musicians anyway. I’m concerned with series of definite pitches, and positions on any scale that are allowed. Converting from the first to the second representation is lossless.

1 Like

For sure! Meander composes melody either based on the scale (scaler) or the current chord (chordal) for the allowed notes. Human composers and musicians then throw in accidentals, naturals and blues notes (for example) and others that are very hard to handle algorithmically and have it sound good. Accidentals are another thing I dropped from Meander for Windows.

Most of what I said can probably be ignored. I tend to think in terms of western heptatonic scales and keys or modes and roots and chord progressions based on the circle of 5ths within that parent scale.

Was anyone using Darius at audio rates? Using it as a waveshaper of sorts is a neat curiosity, but I never once got a half-decent sound out of it.

In the next version, by default, Darius will no longer operate at audio rates, which is a significant performance boost (3x faster). It also solves hard to debug issues that only happen at audio rates - I really don’t care to debug them as this was one of my first modules, and the code is really bad.

If people were using it at audio rates, I can add a right-click option to re-enable it. Otherwise it will process every 32 samples (so over once per millisecond).

2 Likes

Also, regarding my long-term plans with Poly External Scales & chords, to a significant extent I have in mind being able to play live songs written in the way I’ve discussed here:

Future plans will include a step sequencer and a random sampler that are aware of scale and chords.

2 Likes

I’m very interested in doing similar things, sequencing scales and chords, and am interested to see where you go with this. I’m not sure if this has any relevance to what you have in mind, but you might want to consider the “Octal Radix” scheme I came up with for sequencing Meander’s chords and melody within the scale. In the octal radix scheme, I represent both chord and melody sequence steps using harmonic and scale “degrees” and octaves in the octal radix (~decimal in base 8) format of Degree.Octave . The Degree component can take integer values from 1 to 7, corresponding to the circle of 5ths harmonic degrees I-VII or 1-7 for scale intervals (equivalent to 1st, 2nd, 3rd, 4th, 5th, etc. scale degrees or intervals) The Octave component can take integer values from 0-5 corresponding to octaves 0-5. There are “degree” input jacks in Meander inside the circle of 5ths widget and inside the Melody parameter panel. I coded this so that the inputs could come from a music keyboard white keys or from a CV sequencer module (in which case standard CV voltages are used for the octal radix degree.octave in decimal interpretation).

I doubt that anyone has played with this other than me. I still think it has possibilities as a semi-standard for communicating circle degree or scale degree steps between modules, but it is a bit of an oddball.

Within Meander, when controlling the harmony or melody using the octal radix degree input from a keyboard, the melody arpeggiator works properly. It is a bit weird though having the white keys on the keyboard representing degrees rather than notes.

Of course Meander already has everything represented internally by relative degrees.

My goal was similar to yours, to allow live performance. I’d be happy to expand on or answer any questions if you are interested.

2 Likes

Of course my octal radix degrees are based on heptatonic scales again, so probably would not work for you.

I submitted an update to the library, the fixes were not urgent but with a lot of changes under the hood, the sooner I know whether it causes people issues the better.

3 Likes

Perhaps an expander for selecting &/or displaying the tonic? Those that want it can use it, while those that have no need of it are untroubled by the complexities you describe.

An expander doesn’t solve the main problem unfortunately: because there are 5 different sources that can change the status of QQQQ, the behavior would feel unpredictable. Plus, UI-wise, QQQQ is established as forwarding data to the right, so it would not be intuitive on which side an expander should go.

I was thinking about flipping the problem around with a separate collection of scale & chord programmers. It helps you pick chords that work with the scale, but you can program anything you want. You can also input chords via text. There are multiple variants to suit different needs. The devices can output both V/Oct chords and PES with a defined tonic.

Either chords or scale can be used to drive the QQQQ series. They are best used with Quack or Q<, while QQQQ is more of an all-in-one solution when you don’t want to use multiple parts of the system.

Two consumers are planned. The first is a step sequencer that operates more like an arpeggiator than a sequencer, and can take both a chord and a PES as input. It’s programmed via mouse gestures (explained here: https://aria.dog/modules/plans/ )
The other one would be my own take on the Turing Machine. A kind of black box you can feed chords and PES that improvises and mutates repeating patterns.

4 Likes

That make sense. Hopefully the new modules will satisfy the use case I wasn’t able to meet with this demo patch (notes inside):

darius_is_my_bassist.vcv (31.1 KB)

(Basically, the idea was to enter a chord and try to generate a tonic-aware bassline from it.)

Edit to add: Upon further exploration, I realized that this can be achieved by having Darius output unquantized voltages to a sequential switch which holds the notes for my bassline. Pretty cool, but also pretty far from the topic at hand, as I’m not even using a quantizer at that point. Still interested to see what you come up with for the new modules, though.

3 Likes

My thinking about this whole root note thing so far:

  • Silent behavior is a bad thing
    • Silently having a root note in PES without making it explicit is bad
    • Silently discarding existing root note info is bad
  • Having visual feedback for something that’s not used is a bad thing
    • Giving feeedback only when PES Out is connected would be possible, but when forwarded via expander, there’s no way to know whether it’s consumed
  • Almost everyone will try out the key/scale knobs: if visual feedback is provided, there’s an easy path to discover what it means
  • There’s very little space left on the module to add more feedback what’s the root note
    • Changing the size of a released module should be avoided when possible
    • Adding an overlay on the piano would interfere with the notch provided for colorblind users
  • There’s unused space on the LCD, but Quack and Q< have no LCD
  • A better scale/chord programmer will be provided, but it’s bad that QQQQ can’t be used for that
  • Right-click on the piano notes for manual setup of root notes is an option, but once I make a better device it will have a different - thus inconsistent - UI

So, there’s a lot of modules that can be used as many different percussive voices. For example Psi Op:

Now, I could do this easily by using multiple instances of it! Except for one little detail…

image

So I thought this technique could be made easier to patch. Here’s my plan:

  • Monophonic operation:
    • The triggers switch the currently active row
    • The gates are summed & passed through so they arrive at the same time for modules that snapshot on trig
  • Poly operation:
    • Multiple styles of polyphony depending the modules worth supporting, rotating channels to use fewer than 8… need to experiment on that one
  • 8 knobs per row with +/- random offset (S&H on trigger) set at the bottom, and unipolar/bipolar switch
  • 2 CV pass-thru with random offset
  • 1 pitch pass-thru with optional quantization & offset in scale degrees & PES support
  • Mute/Solo
  • Randomize row
  • Assign names to rows and columns shown on LCD

It’s probably not very clear yet but lemme know what you think.

6 Likes

I just want to say the Psi-Op patch in your video is absolutely killer. What filter is it going out through?

So, could I use Psychopump to sequence a chord progression, or a series of arpeggios, or to transition an anatine quantizer through a series of different scales?

If so, sign me the quack up!

Disjoint! It’s what I use in my fixed rack to play in lieu of actually using the mixer.

Not sure! Pitched operation is not the focus, and quantization is more thrown in because hey why not, let’s hear what happens.

My thinking is that it’s gonna be used mostly with Psi Op, Plaits, Elements/Rings, and normal oscillators that can do percussion.

Still missing the master controls and output, but here’s what it’s gonna look like. Does it seem intuitive?

My thinking is that when you click a Label button, it pops up a submenu with a text field, so you can name the rows and columns. When you turn a knob, you see something like “Snare Resonance” on the LCD.

Hopefully this is gonna be the kinda module that lends itself to a lot of unintended uses.

Do not bother grabbing builds, there’s only UI code for now.

4 Likes