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

Here’s the revised UI I’m considering (most of it is not implemented yet). Trying to strike a balance between the most common requests I received, and wanting to keep it simple and backwards compatible with most existing patches, so I don’t have to make make a separate Mk.II version.

Since nobody liked Arcane, I’m shoving its LCD on Darius to force you to look at it :smiley:

In general I stick to my policy that μMap exists, so there is no reason to provide CV in for every single knob.

The LCD will give you info about the knob you’re currently turning depending the modes you’re in, so while quantized it’ll tell you which note you’re dialing. I’d also like to show you the relative and absolute probability of reaching a node, e.g.,

. . .
60% 9%
40% 6%

I’ll provide built-in scales and support for external scales using a poly cable, where any value above 0V enables a semitone (12TET only). I will make a separate module to turn custom scales to a poly cable, but you can also craft it like in the picture above. This should have all sorts of interesting musical implication.

Creating all these components is also laying some groundwork for a planned gesture sequencer, still in the design phase.

The UI is not set in stone yet, so please let me know if you have concerns or if something doesn’t seem intuitive.

5 Likes

Okies, now the quantizer is ready to play with! Tested on Windows only.

I’d like to know if it breaks any patch, and which scales you think would be good for the quantizer.

Since there will be support for arbitrary 12TET scales, I’m not adding every scale ever, just things I think will feel musical and fun to play with whether you know theory or not. I’m adding both the major scale and the natural minor, but I think adding other modes you can obtain by changing the key would be clutter. What do you think?

Note that currently the Slide knob, External input, and Gate output do nothing. Also, the LCD easily gets into broken states due to modes I haven’t implemented yet.

Download the automatic builds from the link in OP as always.

1 Like

I’d love major and minor blues scales.

It’s already in! Here’s the curation so far:

		case MAJOR:	 			return "Major";
		case NATURAL_MINOR:		return "Natural Minor";
		case MELODIC_MINOR:		return "Melodic Minor";
		case HARMONIC_MINOR:	return "Harmonic Minor";
		case PENTATONIC_MAJOR:	return "Pentatonic Major";
		case PENTATONIC_MINOR:	return "Pentatonic Minor";
		case BLUES_MAJOR:		return "Blues Major";
		case BLUES_MINOR:		return "Blues Minor";
		case BEBOP_MAJOR:		return "Bebop Major";
		case SPANISH_GYPSY:		return "Spanish Gypsy";

Anything added to Darius will be added to Arcane and will be part of future planned modules too. I’m focusing on instant satisfaction kinda settings rather than on providing every single scale someone gave a name to.

1 Like

Now with a visual representation of nodes that are impossible to reach, and absolute probability of reaching any node! I’ll add your binary tree idea as a right-click preset.

2 Likes

With the latest automatic build, external scale support was added, and it’s a great way to use Darius as an arpeggiator. Until I eventually make a dedicated module for this, here’s how you send it a chord or scale: on a 12 channel poly cable, anything over 0V enables the semitone.

And here’s my thinking how to implement Portable Sequences - tagging @Squinky for feedback on this. Since this module is very unorthodox, I don’t think any behavior can satisfy every use case.

On export: Export one random possible path, a different one each export, unless an external random seed is provided from the Rnd input. The length of the sequence is that of the Darius range - from 1.0 to 8.0. Each note is of length: 1.0. There is no way to export multiple loops at once - it’s up to other modules in the portable sequence ecosystem to offer concatenation if users want that. When in bipolar CV mode, still export the pitch in unipolar mode.

On import: Import to the selected range up to the first 8 events it sees, without regard for their length or start, since all bets are off if the user is trying to import polyphonic data anyway. Clone the value to every node of a step - e.g., on the third step, import the third event to all 3 knobs. It’s assumed the user will edit them.

One interesting implication of this possible implementation is that exporting and re-importing allows you to treat a random sequence as a new point of departure to edit.

4 Likes

I like that idea. I especially like the export idea. On import, if I understand Darius correctly, I think the result is that Darius would play the first 8 notes, but it would be up to the user to then add some interest by making some of the note options different? That seems nice and predictable, and maybe what a user would expect? It might be more “fun” to take the first 31 pitches and pour them into all the note slots (I’m guessing that there are 31)? But, as you say, no one answer is going to always be the right one, so I think our proposal would be great.

Some of the other “portable” people are a little more creative than I. Maybe @marc_boule or @Richie will have something useful.

1 Like

Yes.

I want Darius to be “easy to learn, impossible to tame”. I don’t want to overwhelm the user with too many esoteric import/export options.

The knobs are internally represented as follows (rotated CW):

Step 1:               00        
Step 2:             02  01            
Step 3:           05  04  03          
Step 4:         09  08  07  06        
Step 5:       14  13  12  11  10      
Step 6:     20  19  18  17  16  15    
Step 7:   27  26  25  24  23  22  21  
Step 8: 35  34  33  32  31  30  29  28

Despite having four directional trigger inputs, the up and down inputs do not move within the same step bud forward diagonally. E.g., from node 04, the Down input moves to 08. Arbitrary movement within the grid is impractical. By design it is about repetition, call & response structures. Most users move through the steps in sequence and disregard the “back” input.

Thus, importing 36 events means that:

  • I need 36 events to import, while many sequencers will have a multiple of 8.
  • The events would never be played in sequence, thus any melody would be unrecognizable.
1 Like

What a great seuencer! I dream of a Daruis ADSR: attack always the same, then two probable options for decay, 4 prob for sustain, 8 prob for decay :slight_smile:

2 Likes

After many hours of research and a few private conversations with friends, I have settled on the following list of scales. Once I push it to the library, it’s set in stone forever for Darius and any future module I make. Otherwise I’d break people’s songs. So if you have remarks make them now! I am not very knowledgeable about theory and want to get it right the first time.

A few design considerations:

  • Except for the Major/Natural minor, and Major pentatonic/Minor pentatonic, no scales that are modes of another. Or in simpler words, when represented on a single piano octave, no scales that, when transposed, can be represented identically. I make an exception for the two pairs above for convenience of dialing in settings without having to look up the transposition rules.
  • Only 12 Tone Equal Temperament. So no scales that can only be approximated in 12TET, such as Balinese Pelog or Arabic 24TET scales minus the quarter tones.
  • When scales have multiple common names, I prefer the one that is the easiest to abbreviate on my LCD (which will definitely be reused on other modules in the future). That’s why I go for “Gypsy Major” rather than “Double Harmonic”.
  • The curation has to be limited! The more I add, the harder it is to operate the selection knob. I support arbitrary external scales anyway.
  • Prefer “instant satisfaction” presets to musical curiosities. So no Enigmatic scale, for example.
  • The scales should be sorted in a somewhat coherent order.

Here’s my current list, in order:

  • Chromatic
  • Major
  • Natural Minor
  • Melodic Minor
  • Harmonic Minor
  • Pentatonic Major
  • Pentatonic Minor
  • Whole Tone
  • Blues Major
  • Blues Minor
  • Dominant Diminished
  • Bebop Major
  • Bebop Minor
  • Gypsy Major
  • Eight Tone Spanish
  • Hirajōshi
  • In Sen
1 Like

Good point. would not be a very good default behavior.

haha - I was going to suggest the only ones missing from the list Seq++ has are those ones. And you’ve got a bunch I don’t have.

1 Like

And with the last automatic build, every user-facing planned feature (except portable sequences) was implemented, so be sure to give it a try! I’ll submit it to the library soon.

Learned a TON doing this update, about C++, synth design, and music theory. I was surprising myself at things I had working perfectly on the first attempt (for example, slide). And while the LCD might be a bit over the top, I plan to turn it into a reusable component for future modules.

If someone could tell me whether it works on OSX that would be useful! I know it compiles, so hopefully it will work.

As usual, automatic builds for every platform are here:

And here’s an unintended fun little trick I discovered:

Have two quantized Darii with identical settings, with the range set (integral values work well so it spans one or more octaves). Give them both the same clock and the same random seed. On the second instance, invert the Min and the Max value. Presto - you’ve inverted the melody! Use the -1 oct toggle, and you’ve got a bassline correlated to the melody.

I was trying not to copy other people’s selection, since I did not know if they had the same goals in their selection! It’s easy to find databases that give a name to all 4096 possible scales, but it’s way harder to settle on settings that will be fun to play with. Plus, it was educational for me, haha.

3 Likes

Nice list! I wonder if it would not be better to have all major scales together, then all “neutral scales” then minor scales, because major or minor is the first choice you make, and then you check if you want to go for pentatonic, or blues.

Also the simple fact of scrolling the scales becomes musical, as done in the 4ms resonator

3 Likes

What’s that piece of software with the cassette at 5:21 in the video?

Excellent, thank you for adding the last two. A few quantizers (mother and XOR one) have an option for Pelog but still using 12tet (as far as I know) and sound great. I don’t know how much difference it makes or if it has another name when 12tet though.

1 Like

Voicemeeter Banana, the virtual audio driver system I use to route stuff between programs.

All I gathered from researching the topic is that there is a huge amount of variation across gamelan ensembles, so I don’t feel confident offering the option, I’d rather leave it to module creators more versed in the topic. I see that Frozen Wasteland made a quantizer for Arabic music that seems very thoroughly researched, for example.

Plus, I’m trying to be kinda culturally respectful (without overdoing it), so I don’t want to name something “Balinese” or “Pelog” if I’m aware it’s just an approximation of the real thing. Also did a fair bit of research to figure out whether there is opposition to the term “Gypsy scale” in English, but the term seems generally well established and neutral in music (whereas many Roma people object to it as a demonym). I’m trying not to be that person still naming a synth preset “Ethnic Beats” in 2020, yknow, lol.

If I continue making modules, I think I’d like my collection to be a cohesive system that focuses on exploring the possibilities of live improvisation of generative / aleatoric techno with repetitive patterns in 4/4 & western scales.
I have various ideas where I want to take things next: a sequencer focusing on live performance of an evolving pattern, my own take on the turing machine, gimmicky live performance controllers.

6 Likes

Oh, also the word “Gypsy” is considered racist these days.

1 Like

Yeah, as I mentioned the pejorative connotation only seem to exist when you call people that, but I see the word remains commonly used to refer to the culture without it seeming to be an issue. But on the other hand, just showing the word on a LCD below a piano diagram might not establish sufficient context, especially if it’s seen by someone who can’t identify that what they’re seeing is a music synthesizer module. I guess it might be worth swapping it to something like “DbHARMO.” on the LCD.

1 Like

I had to find some term for a package of music my company was releasing. In that case it didn’t really matter what we called it, so I think I picked “Paris in the 1920’s”. You are correct I think that using the word to describe the scale is pretty safe. On another note, did you know the “Romany” people were Indians who moved north around year 1000?

1 Like