Aria Salvatrice Signature Series 1.3.0 BETA 2: Arcane, Atout & Aleister - Today's Fortune ★

Have you tried path> “Object to Path” / “Stroke to Path”

Thanks for the screencaps everyone! While it looks much better on a high-dpi screen, it doesn’t look nasty enough on any platform to make me reconsider the idea.

Yup, in fact that’s why you see multiple variations in this test picture. They look similar but each one tests a different failure mode I thought might give me trouble.

Here is the piece I refer to above featuring Darius being controlled by CV-Map a Seriously Slow LFO (https://www.youtube.com/watch?v=IUQFZnt4-7c).

2 Likes

i like the dog playing a saxophone :+1:

3 Likes

Hi @Aria_Salvatrice !

Congratulations to your first modules and especially the Darius! When I listened to the demo, I was surprised about how much sense the concept makes: It establishes that balance between repetition and variation that contributes to making melodic patterns interesting for us humans.

Here is a suggestion for the generalization of Darius: Instead of a triangle (always starting at the same point), make it a square (a matrix) and maybe make future probabilities dependend on what happened in the past. That way, for instance, the end of a cycle can influence where the next cycle is going to begin. This makes sense from a musical standpoint because the human ear expects progressions that are not completely arbitrary. That way, our brains are encouraged to act out their obsession with finding patterns because they sense that there is some kind of order there.

This might be an interesting read: https://en.wikipedia.org/wiki/Aleatoric_music and https://de.wikipedia.org/wiki/Random_Walk

1 Like

Woof, heyo friends.

Because of the fantastic reception of Darius, my first serious module, I was emboldened to try out implementing a very bold and unusual idea.

Despite having nagging doubts people might not understand my concept at all, I spent a lot of time this week implementing this module, and learned a lot about C++, module creation, and Tarot traditions (yup) in the process.

Instead of writing a long blurb to explain my thinking… I’ll just release it, copy-paste the docs, and trust you to appreciate the idea on its own terms.

Since I have rigged up Azure Pipelines, I have automatic builds for all platforms now! However, I have not tried it on Linux or on Mac OS X, so the first person who tries them should please let me know whether they work at all.

Beta downloads a few posts below

We’re gonna have a (hopefully short) beta period before I submit it to the library.

And now, for the documentation (also available on the GitHub page)


Arcane, Atout & Aleister - Today’s Fortune ★

I hope luck is on your side. Every day, you will share together the fortune I shall grant you. It is your task to interpret what my augury means to you.

Modules in the Arcane series are comprised almost only of output jacks, sending today’s fortune as CV. Those values are the same for every Arcane user, and nobody can predict or influence them. I pronounce a new oracle every day at 12:00 AM UTC without fail.

I will draw the following cards, and impart the following knowledge:

  • Arcane Majeur - a major arcana of the Tarot of Marseilles.
  • Bâtons (Wands), Coupes (Cups), Deniers (Coins), Épées (Swords) - a different 16 step binary pattern for each suit of the Tarot.
  • Scale pattern - The notes of a music scale comprised of 5, 6, 7, or 8 notes, often scales common in popular Western music, and sometimes less common ones. Which note is the root of the scale isn’t specified, only which notes are part of the scale.
  • 8 note pattern - Every note from the selected scale, sorted in a random order. If the scale has fewer than 8 notes, up to 3 different notes will be repeated at the end, an octave higher.
  • BPM - Integer ranging from 60 to 180 BPM, with values between 90 and 150 twice as likely.
  • My sincerest wish of luck, love, health, and prosperity.

How to interpret my fortune is up to you and your friends. You can make use of a single output jack of the module, or all of them. You can craft an ephemeral song that will no longer exist tomorrow. You can create an unchanging patch that will grace you with a new song every day. There are no rules but the ones you choose to follow.

All I can do is reveal some mundane obscura to get you started scrying the will of the jacks:

  • Quantizer - A pair of polyphonic ports quantizing input to the nearest scale note.
    Try to combine it with the Split and Merge series, the ability to sort by voltage might prove useful.
  • Scale notes - Polyphonic ports sending every note of the scale on the fourth octave (0V~0.9166667V), in the order of the 8 note pattern.
    The left jack named “Scale” sends as many notes as there are in the scale (between 5 and 8). The second jack named “Padded” sends the entire 8 note pattern, with any repeated note being one octave higher than normal.
    If you combine them with ML_modules sequential switch 8->1, they can become a melody.
  • Arcane Majeur - The number of the arcana, divided by 10.
    Thus, The Fool is 0V, The Magician is 0.1V, and so on up to 2.1V for The World. Following the conventions of the Tarot of Marseilles, the 8th arcana is Justice, and the 11th is Strength, unlike the ordering popularized by the Rider-Waite-Smith deck, which swaps those two arcana around.
    You can multiply this signal by 4.76 with an offsetter such as Bogaudio’s to obtain a 0V~9.99V signal, if you wish.
  • BPM - Follows the VCV Standard for clocks and LFOs where 0V stands for 120BPM.
    You can send that signal to a compatible clock module such as Impromptu Modular’s Clocked if you require a clock (for example, for swing, or other time signatures than 4/4).
  • Reset and Run - They control all the outputs below them. Operate them manually using the button, or synchronize multiple devices by sending them a trigger from a single source, for example the Little Utils Button.
  • Gate/Ramp on the 32nd note, 16th note, 8th note, 4th note, Bar - Sends, depending on the position of the Gate/Ramp switch, either a gate synchronized to the BPM at the corresponding interval in 4/4 time, or a 0V-10V ramp corresponding to that phase.
    While Arcane can serve as a master clock, the ramp can be used to drive the ZZC Clock, if you’d prefer to use it.
  • Bâtons, Coupes, Deniers, Épées. The four patterns, sent as gates on each 32nd note, 16th note, 8th note, 4th note, or bar.
    Don’t limit yourself to drums, you can use them in many different ways! Want to visualize the patterns, or to use them as something different than a rhythm? Try out the Aleister expander.
  • The Pulse Width knob lets you select how long the gates are, proportionally to their note length. It affects every gate output. Need more granular control over pulse widths? An external clock or a pulse generator such as Submarine’s will help.

The module’s LCD will show you the date of the fortune, the BPM, the name of the arcana, and the notes of the scale. However, it cannot unambiguously name the scale, since your fortune doesn’t stipulate on which note the scale starts.

The LCD will also tell you whether today I am wishing you luck, love, health, or prosperity (displayed as MONEY due to the size of the LCD). You cannot access that information via CV, as it is only a personal wish that might not manifest, unlike my oracles, which are always accurate.

There are two available form factors of the same module:

  • Arcane: the full 24hp version displays today’s arcana, from Nicolas Conver’s 1760 Tarot of Marseilles.
  • Atout: the smaller 9hp version doesn’t display the arcana, but includes all the functionality and every jack from Arcane. To conserve space, the Gate/Ramp switch is at the bottom.

The third module, Aleister, gives you access to the Bâtons, Coupes, Deniers, and Épées binary patterns as series of 16 outputs sending continuously either 0V or 10V, rather than as a rhythmic pattern of gates. If you connect only the first output of a group, it will instead be a polyphonic cable outputting the entire group. Aleister takes 14hp of space. You can employ Aleister’s services as a standalone module, but when placed directely the right of either Arcane or Atout, the module will act as an expander, lighting up the jacks in sync with the rightmost connected output of the corresponding pattern on the parent module. Try it out, you’ll understand what it does immediately.

If the module is active at the time a new fortune is drawn, the values will not change, but a notification a new fortune is available will appear on the LCD. Using the right-click menu, you can Initialize the module to download the newest fortune. Remember to also initialize Aleister if in use (whether standalone or in expander mode).

The tarot deck used is the Conver – Ben-Dov (CBD) version. The CBD deck was restored in 2008-2011 from the original 18th century deck by tarot expert Dr. Yoav Ben-Dov’s. It was chosen for its traditional significance, the quality of its imagery, and the simplicity of its broad lines being well suited to VCV’s limited vector rendering engine.
While there is great variety in decks across many different Tarot traditions, Tarot of Marseilles imagery does not vary significantly across decks. The exact same subjects are drawn from the same angle, leaving very little room for the artist to re-interpret the themes. A few figures are generally depicted nude, and while the style of the CBD deck is obviously neither graphic nor intended to titillate, I took the liberty to slightly alter a few cards to remove details, in particular the Devil’s codpiece, as most users will download my plugin without being forewarned about contents a small minority would find upsetting. I hope you will understand my decision.

Upon activation, this module will connect to the internet, and fetch today’s numbers on a GitHub repository via HTTP. The fortunes are not generated locally to make it possible for all users to share the same numbers every day, while also making it impossible to cheat fate and predict the next oracle (which a local deterministic implementation would necessarily entail).

If the repository is unreachable, the module will will output 0V on all ports, except the quantizer, which will forward input as-is. You can find more information about Arcane server and API, and their source code, on their GitHub repository.

There is no offline mode, and no built-in way to load older fortunes, by design. These are multiplayer-only oracles. But I won’t prevent you from editing the .json files in the AriaSalvatrice/Arcane/ directory of your VCV Rack user directory, if you really must. Every downloaded fortune is archived locally, a full archive is available from GitHub, and if a local file exists for today, it will not be checked against the server.
(Quick tech remark about JSON API cache spoofing: such self-deception will never alter your true destiny, and it is unwise to cling to the past instead of living for a future you can yet change.)

Using this series of modules to their full extent requires a bit of creative patching, a bit of lateral thinking, but most importantly, friends to share your different interpretations of the same fortune with.
If you treat my oracles as a mere random number generator, you will never gain any wisdom from them.

11 Likes

So cool! Just tried Darius. Will post something soon featuring this! Merci merci Aria !

1 Like

Hey Aria, on Linux I could compile from source but Rack crashes when I click one of the Arcane modules. I also tried your Linux binary, but the result is the same.

1 Like

Aw. Thanks. Can you tell me if there’s a new folder in (rack user folder)/AriaSalvatrice/Arcane and whether it contains anything, so i can figure out if the module went this far before crashing?

1 Like

no problem, the Arcane folder is only in the folder res, which is the only one in the main folder

Crowley makes it to Modular. Good stuff :slight_smile:

2 Likes

There’s a dozen things that could go wrong causing that crash, I’ll try to look into it ASAP. The source is up on the master branch if anyone’s feeling adventurous, I’ll get a VM rigged up or something.

Anyone tried it on Mac? Does it work for everyone on Windows?

Working on Windows 10. Have it about 50% figured out thus far. I tip my hat to your creativity and imagination !

Edit: Working on Mac (Mojave) too.

1 Like

Same here compiles fine on windows.

1 Like

Glad to hear, since I don’t have easy access to OS X to fix things.

Reload the patch tomorrow and listen how it sounds now to understand the remaining 50% :smiley:

1 Like

What I meant is that I only got half way through following your suggestions on Tarot reading :slight_smile:

I envisage building a patch or two for background listening and will see what gets generated by the cards each day.

[I think I’ve got a Crowley Thoth deck from about 40 years ago in a box in the loft somewhere.]

1 Like

Oh yeah, you mean those recommendations about potential uses? I thought it’d be neat to use my docs to give pointers to new users how the various pieces of the kit can fit together, but I’m also trying not to constrain people’s understanding what it means or how it should be used, especially since it has a social aspect.

1 Like

I could reproduce a crash on a Linux VM. I’ll look into the issue. Logs indicate that readTodaysFortune() is our suspect, if anyone got a hunch what’s wrong (warning: very rude cowgirl coding in there)

Too lazy to take the time to craft a real song today, but I wanted to at least make a patch with the very first fortune, so I quickly threw together a 10 minutes patch to give you a few ideas of things you can try out with Arcane.

Today the arcana was The Devil, the tempo was 72 BPM, and the scale A harmonic minor. I’ll post how it sounds tomorrow, after a new fortune is drawn.

2 Likes

And today’s oracle is up! It’s 158 BPM, almost the upper bound. The scale can be read as C# major, or other modes (oracles do not specify where the scale starts). The major arcana is The Magician (I just realized I misspelled it on the LCD, it will be corrected).

Here’s how the patch I quickly threw together yesterday sounds today:

Of course, making a patch that changes every day is only one of the many possible ways to use Arcane.

2 Likes

I rigged up a Linux VM, and figured out the problem. The crash should be gone now! (Tagging @the1andonlydrno )

(There was a stray fclose() closing a non-existent file. Other OSes cope, but Linux crashes on this).

Here’s a new build: https://aria.dog/upload/2020/01/Arcane-Beta-Linux-20200128.zip

Since there isn’t any other bug report and not many downloads of the beta builds, I guess I’ll submit it to the library soon.

2 Likes