Closed gogins closed 3 months ago
Some shaders to look at:
I ran into a roadblock. The vst3plugin opcodes won't load a Cardinal .vcv file. Not sure why.
Solution: Load .vcv files in Reaper from the Cardinal menu, then save as .vstpreset files from the Reaper menu.
Here's the problem:
auto tuid = vst3_plugin->classInfo.ID().data();
auto classid = Steinberg::FUID::fromTUID(tuid);
memory_stream.seek (0, Steinberg::IBStream::kIBSeekSet, &position);
log(csound, "vst3presetload: stream_size: %d\n", stream_size);
auto result = Steinberg::Vst::PresetFile::loadPreset(&memory_stream, classid, vst3_plugin->component);
if (result == false) {
log(csound, "vst3presetload: failed to load: %s\n", preset_filepath.c_str());
return NOTOK;
}
The .vcv files are just JSON, and don't have the component ID.
Doing this:
cat "/Library/Application Support/Cardinal/patches/examples/DRMR_-_Gabberswing.vcv"
prints out JSON for the patch.
The following shows that Rack is what is actually loading the preset.
[0.000 info CardinalCommon.cpp:578 Initializer] Cardinal VST3 23.10, compatible with Rack version 2.3.0
[0.000 info CardinalCommon.cpp:579 Initializer] Mac 14.1
[0.000 info CardinalCommon.cpp:580 Initializer] Binary filename: /Library/Audio/Plug-Ins/VST3/Cardinal.vst3/Contents/MacOS/Cardinal
[0.000 info CardinalCommon.cpp:582 Initializer] Bundle path: /Library/Audio/Plug-Ins/VST3/Cardinal.vst3
[0.000 info CardinalCommon.cpp:588 Initializer] System directory: /Library/Application Support/Cardinal
[0.000 info CardinalCommon.cpp:589 Initializer] User directory: /Users/michaelgogins/Documents/Cardinal
[0.000 info CardinalCommon.cpp:590 Initializer] Template patch: /Users/michaelgogins/Documents/Cardinal/templates/main.vcv
[0.000 info CardinalCommon.cpp:591 Initializer] System template patch: /Library/Application Support/Cardinal/patches/templates/main.vcv
[0.001 info CardinalCommon.cpp:605 Initializer] Initializing plugins
[0.118 info CardinalCommon.cpp:608 Initializer] Initializing plugin browser DB
[0.123 info CardinalCommon.cpp:625 Initializer] OSC Remote control is not available on plugin variants
[0.125 info Rack/src/patch.cpp:273 load] Loading patch /Users/michaelgogins/Documents/Cardinal/templates/main.vcv
[0.127 info Rack/src/patch.cpp:273 load] Loading patch /Library/Application Support/Cardinal/patches/templates/main.vcv
[0.128 info Rack/src/patch.cpp:339 loadAutosave] Loading autosave /var/folders/tc/x44lyz_j7bn468tgvvb352t40000gn/T/Cardinal.0003/patch.json
In Reaper, there are [1..24] unnamed parameters. Perhaps one of these does the job.
At any rate, there has to be some way that the host tells Cardinal or Rack which preset file to load!
Cardinal is now working with .vstpresets.
I think that with the full 'Cardinal' unit it may be necessary to use the 8 channel host audio output.
Not so.
I got the preset file loading to work as a variant of vst3init
that loads the preset before performance starts, vst3initpreset
.
Looks like a very good resource here: https://patchstorage.com/.
Nothing for Csound here, except for a few Cabbage patches. VCV Rack has by far the most. There are so many plugins and applications to run these patches that I did not know about. Cardinal has quite a few, competitive with many other software synthesizers.
Does Csound 6.19 support LV2 instrument plugins?
I can't find a way to connect a WebAudio Analyser to directly read the audio output from outside the JavaScript context.
Thus to stop and start recording audio I need to save it to the browser's private filesystem and then download it from there, as in Victor's tutorial, also see https://blog.logrocket.com/programmatically-downloading-files-browser/.
Added controls to No. 14.
I will need to bring in the WebAssembly version of Cardinal.
i keep going back to Postinia-v5e.html
which consistently holds my interest. But it's too similar to the piece that I already had in the NYCEMF. It does use ValhallaShimmer. I may clean this up a bit and then try changing the notes so it's actually a new piece.
The notes are different in Poustinia-v5g.html
but I do not like the way I use the SeidelHarmOsc instrument.
Poustinia-v5h.html
starts out better, but then gets too muddy and busy.
Poustinia-v5i.html
quite similar but a bit better. Except the Xing needs to go.
Poustinia-v5m.html
quite similar but more rhythmic variation and changes of tempo, not all of which I like. Also uses Cardinal (VCV Rack plugin). Effective crescendos. Weak ending.
Poustinia-v5n.html
introduces more texture but too muddy and confused.
Work on:
Postinia-v5e.html
, I have created a version of this that I am considering submitting to the Supersonique concert.Postinia-v5i.html
, I won't do this as it is too similar to the above.Regarding infrastructure, refactor with constant infrastructure plus conditional code and hooks:
generate_hook
create_dat_gui_hook
notes_to_visuals_hook
visuals_to_notes_hook
strudel_hook
I've been looking at the samples in the Strudel REPL and like Richter Chords quite a bit. Something in my line could be made from this. Of course the techno beat would have to go. I think this comes from Max Richter's progression in On the Nature of Daylight.
I have draft pieces Tishina-ChordLindenmayer.html and Tishina-Strudel.html. I need to bring the Record button into Tishina-Strudel.html (done) and otherwise update the infrastructure. I may also need a Tishina-CsoundAC.html draft piece.
Some of the Strudel users are pretty sophisticated. I just learned about Filtered Point Symmetry from the Strudel Discord, a live example is here: https://oscarbyrne.github.io/strudel/swatch/. See Music Theory Online here.
I have Tishina-Strudel.html rendering a copy of Richter Chords. I now need to change this to my own taste and so that it is not an infringement.
Tishina-ChordLindenmayer currently is implemented using ChordSpace.js in which arithmetic on tempo is possible.
Do I need a Tishina-IFS?
There is a subtle click in the Csound orchestra. I wll identify and fix it. A binary search. The instruments in Kolob are:
instr FMWaterBell uses instrument number 1
instr Phaser uses instrument number 2
instr Droner uses instrument number 3
instr Sweeper uses instrument number 4
instr Buzzer uses instrument number 5
instr Shiner uses instrument number 6
instr Blower uses instrument number 7
instr ZakianFlute uses instrument number 8
instr PianoteqNote uses instrument number 9
instr Bower uses instrument number 10
instr FilteredSines uses instrument number 11
instr Guitar uses instrument number 12
instr Kung2 uses instrument number 13
instr Kung4 uses instrument number 14
instr Plucked uses instrument number 15
instr SeidelHarmOsc uses instrument number 16
instr TubularBell uses instrument number 17
instr YiString uses instrument number 18
instr Xing uses instrument number 19
instr VcvNote uses instrument number 20
instr VcvOut uses instrument number 21
No, in Kolob I don't hear it. Trying Tishina-ChordLindenmayer-v3, but I don't unambiguously hear anything there as well.
In switching to CsoundAC's ChordLindenmayer, the file:///Users/michaelgogins/csound-ac/doc/html/classcsound_1_1ChordLindenmayer.html#details documentation does match the CsoundAC header file comments, so that's good.
The only HTML example using this is /Parachronic/CsoundAC-HTML-Demo.html, but the Lindenmayer system code in this example does not match the current ChordLindenmayer specification. However, the Python Scamper and Drone examples do use the current specification, so I'm starting with one of those. Indeed, notes are generated. But the PianoRoll3D does not work.
I will dump that in favor of using a Silencio Score object, or I can adapt the Silencio score display to also use a CsoundAC Score object.
It's working now. I will refactor the 3D display to work with CsoundAC Scores.
Now I'm planning to use a variation of the piece I submitted for the ICSC. No I'm not.
control_parameters_addon
, as these can control both Csound and shaders.<cloud5-piece>
. Only doing canon at this time.Seidel: Change visuals when tempo changes. Boulanger: Be very careful with tempo changes.
Look at:
Updated to dos: