💾 Archived View for gemini.ctrl-c.club › ~synth › topics › orca-experiment-02.gmi captured on 2024-09-29 at 02:12:39. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-11-04)

-=-=-=-=-=-=-

🝕 The Synthesis Zone

Experiment II

After the unbridled success of my first experiment with intervals, I decided to have a go at a slightly more complex mechanism. Initially I wanted to create some kind of chord-o-matic which would, given the scale degrees to include, play the indicated notes simultaneously - thus building a chord. I wanted it to be built such that the user/player could also choose the key from a list.

I'm hoping to build on this to produce a sort of rhythm player thingy which can run down through a list of key/scale degree pairs and essentially play a chord progression or maybe arpeggiate or select from the set of notes. But that's for another time.

.....................................................................
...................................86O66O46O.........................
.n4Ol4Oj4O.........................hVCiVDjVE.........................
.aV0bV1cV0.........................b4O94O74O54O......................
.q2Oo2Om2Ok2O......................kVFlVGmVAnVB......................
.dV1eV0fV1gV1......#key:.#.zV0....................Vz.................
...........................0101011...............507Q....#CDEFGAB#.0.
..............................................CDEFGAB....#GABCDEf#.1.
.........................................................#DEfGABc#.2.
....7Kabcdefg............................................#ABcDEfg#.3.
......0101011..........Va.........Vb........Vc...........#ABCDEFG#.4.
.......................0..........1.........0............#EfGABCD#.5.
....7Khijklmn..........J.Vh.......J.Vi......J.Vj.........#DEfGABc#.6.
......CDEFGAB.......Vh.0AC.....Vi.1AD....Vj.0AE..........#.......#.7.
....................CYCFC..Vh..DYDFE..Vi.EYEFE..Vj.................8.
.......................*:13C3......:13D3....*:13E3.................9.
...................................................................a.
........................Vd........Ve........Vf........Vg...........b.
........................1.........0.........1.........1............c.
........................J.Vk......J.Vl......J.Vm......J.Vn.........d.
.....................Vk.1AF....Vl.0AG....Vm.1AA....Vn.1AB..........e.
.....................FYFFG..Vk.GYGFG..Vl.AYAFB..Vm.BYBFC..Vn.......f.
.........................:13F3....*:13G3.....:13A3.....:13B3.........
.....................................................................

The main challenges I found in this were in reading and writing to the variables representing the notes in the scale and the notes to be included in the chord. There is a way to read an arbitrary number of variables simultaneously with (K)onkat, but I couldn't figure out a way to write multiple variables simultaneously - that's something I'll have to think more about.

Mostly the solution I have here feels ham fisted, but I don't really mind. The general gist is to read out the letters in a key (the column on the right), and the set of switches corresponding to the scale degrees to use. For simplicity in the implementation, I used 0 to mean *include* and 1 to mean *exclude*. Not user friendly but it made things a little easier for me.

The blobs on the center left are basically just displays so we can see what's in our "registers" while things are going. The vast majority of this was just setting up the 7 note-generating blocks which play a note when the corresponding bit is set (to 0) in the flags. I forgot to label the flags, but it's the little binary looking junk just below the key selector.

I don't know how to make this one play slower, and I don't know if there's a way to get notes to sustain - I believe that's what the ADSR stuff is for but I haven't played with it yet.

Overall, I'm pleased with how this turned out, and it was actually pretty fun to play with.

Thanks for reading.

Experiment II

Up.

To the top.