gogins / michael.gogins.studio

Studio of Michael Gogins: computer music, photographs, writings.
4 stars 0 forks source link

Piece for Supersonique 2024 #74

Closed gogins closed 7 months ago

gogins commented 7 months ago

SUPERSONIQUE 2024 Electroacoustic music concert - September 7th - Midday Midnight - Comptoir de la Victorine - Marseille (F) - Submission deadline April 14th midnight Call for works A non-stop 12 hour electroacoustic music concert. An eclectic program. An extension of summer. SUPERSONIQUE. We’re looking for creations or already composed works, aimed to be played on an acousmonium. The program will be international. The jury will listen to works anonymously. Our final selection will pay attention to ensuring an equal representation of male/female composers. SUPERSONIQUE is organized in partnership with le Grand Comptoir, l’Art de Vivre, la Cité de la Musique de Marseille and le Conservatoire de Marseille. Details – Works with a maximum duration of 25′, shorter pieces are more than welcome – Only one submission per composer – Works that are either stereo or multichannel (8 points in rectangle. Join a stereo reduction and routing plan to your submission) – .wav 48kHz 24 bits – Deadline April 14th, midnight. Link to the submission form Uncomplete/over the deadline sends will not be considered.

gogins commented 7 months ago

I'm considering a rework of Poustinia for this opportunity. This could be spatialized to the acousmonium's 8 channel rectangle.

The venue appears to be an old match factory that has been more or less rehabilitated as a cultural space.

gogins commented 7 months ago

To do:

gogins commented 7 months ago

Are these the same on YouTube as the same titles on my MacBook?

To get older pieces to run:

  1. Create a symbolic link to ~/csound-ac/silencio/js in the piece's directory.
  2. Make an async function that is assigned towindow.onload.
  3. In it, immediately call await get_csound(handler).
  4. Port vst opcodes to vst3 opcodes.

All variants are in:

  1. ~/michael.gogins.studio/music/Poustinia
  2. ~/michael.gogins.studio/music/Poustinia-v6
  3. ~/michael.gogins.studio/music/Poustinia-v7
  4. ~michael.gogins.studio/music/NYCEMF-2024

Pieces not clearly better than a related piece should go into the attic.

So far v3 through v5d have essentially the same notes. The others differ. Roughly in descending order of quality:

gogins commented 7 months ago

These are the variants on my MacBook:

89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 51869 | Dec | 18 | 16:15 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5c.html
89676234 | 192 | -rw-r--r-- | 1 | michaelgogins | staff | 97567 | Dec | 27 | 17:14 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5e.html
89676234 | 264 | -rw-r--r-- | 1 | michaelgogins | staff | 133396 | Jan | 15 | 21:08 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5g.html
89676234 | 264 | -rw-r--r-- | 1 | michaelgogins | staff | 133476 | Dec | 26 | 19:15 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5h.html
89676234 | 272 | -rw-r--r-- | 1 | michaelgogins | staff | 137498 | Dec | 29 | 14:32 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5i.html
89676234 | 280 | -rw-r--r-- | 1 | michaelgogins | staff | 141527 | Jan | 9 | 17:03 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5m.html
89676234 | 280 | -rw-r--r-- | 1 | michaelgogins | staff | 141528 | Jan | 10 | 14:04 | /Users/michaelgogins//michael.gogins.studio/music/NYCEMF-2024/Poustinia-v5n.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50487 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia-v6/Poustinia-v5a.html
89676234 | 120 | -rw-r--r-- | 1 | michaelgogins | staff | 57687 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia-v6/Poustinia-v6-7-2.html
89676234 | 136 | -rw-r--r-- | 1 | michaelgogins | staff | 69481 | Jun | 1 | 2023 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia-v7/Poustinia-v7-1.html
89676234 | 80 | -rw-r--r-- | 1 | michaelgogins | staff | 38327 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v2.html
89676234 | 80 | -rw-r--r-- | 1 | michaelgogins | staff | 37660 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v3.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 49867 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v4.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50117 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v4a.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50114 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v4b.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 49977 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v4c.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 49842 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v4d.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 49945 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v5.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50402 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v5a.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50416 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v5b.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50482 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia-v5c.html
89676234 | 24 | -rw-r--r-- | 1 | michaelgogins | staff | 9736 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Poustinia/Poustinia.csd.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50467 | Jan | 18 | 21:18 | /Users/michaelgogins//michael.gogins.studio/music/Supersonique-2024/Poustinia-v5a.html
89676234 | 80 | -rw-r--r-- | 1 | michaelgogins | staff | 39213 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Tzimtzum/Poustinia_Variation_2/Poustinia-v2.html
89676234 | 104 | -rw-r--r-- | 1 | michaelgogins | staff | 50563 | Jan | 16 | 2022 | /Users/michaelgogins//michael.gogins.studio/music/Tzimtzum/Poustinia_Variation_5a/Poustinia-v5a.html
gogins commented 7 months ago

Do close soundfile comparisons in Audacity, using headphones, of:

gogins commented 7 months ago

I'm going to finish these for Supersonique and pick the best:

gogins commented 7 months ago

5e has:

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 ParametricEQ uses instrument number 11
instr ValhallaShimmer uses instrument number 12
instr MasterOutput uses instrument number 13
instr Controls uses instrument number 14
gogins commented 7 months ago

5e-ss has:

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 Bower uses instrument number 9
instr FilteredSines uses instrument number 10
instr Guitar uses instrument number 11
instr Kung2 uses instrument number 12
instr Kung4 uses instrument number 13
instr Plucked uses instrument number 14
instr SeidelHarmOsc uses instrument number 15
instr TubularBell uses instrument number 16
instr YiString uses instrument number 17
instr Xing uses instrument number 18
instr VcvNote uses instrument number 19
instr VcvOut uses instrument number 20
instr Shimmer uses instrument number 21
instr MasterOutput uses instrument number 22
gogins commented 7 months ago

The piece does not have all its dat.gui controls hooked up to all its global control variables.

I need to try removing all notes with duration zero before rendering. I don't know why there are zero durations.

gogins commented 7 months ago
gogins commented 7 months ago
gogins commented 7 months ago

Wiring up:

gogins commented 7 months ago

Note, 'revert' restores parameters to first-saved values, and 'remember' saves current values. What I have been doing is a perverse and fragile workaround. The 'Save' button saves current values to a named preset.

This is all messed up. Design for controls:

  1. Start with a fixed parameters dictionary.
  2. Make a copy of the fixed dictionary that is editable and will actually drive the performance.
  3. After csound.Start send the editable parameters to the data.gui and to Csound.
gogins commented 7 months ago

I'll try implementing some much more clearly named and usable helpers, bypassing all existing implementation of similar functionality:

// Sets all state of dat.gui including styling and all presets.
// Values for keys optionally come from Csound channels of the same name.
gui_set_state(gui, json [, csound])

// Gets all state of dat.gui including styling and all presets.
// Values optionally are sent to Csound channels of the same name.
json = gui_get_state(gui [, csound])

// Sets the value of one parameter in dat.gui.
// The value optionally comes from a Csound channel of the same name.
gui_set_value(gui, key, value [, csound])

// Gets the value of one parameter in dat.gui.
// The value optionally is sent to a Csound channel of the same name.
value = gui_get_value(gui, key [, csound])

// Sets the values of all parameters in dat.gui from key_values.
// The values optionally come from Csound channels of the same name.
gui_set_values(gui, key_values [, csound])

// Gets the values of all parameters in dat.gui.
// The values optionally are sent to Csound channels of the same name.
key_values = gui_get_values(gui [, csound])

// Sets the parameters for the named preset.
// The parameters optionally come from Csound channels of the same name.
gui_set_preset(gui, name, key_values [, csound])

// Gets the parameters for the named preset. 
// The parameters optionally are sent to Csound channels of the same name.
key_values = gui_get_preset(gui, name [, csound])

Not using this, but trying it taught me what is really going on.

gogins commented 7 months ago

The live values of all dat.gui Controllers are the current properties of the parameters object passed to dat.gui.add.

The load property contains preset names, not the data for those presets. Saved data is contained in the dat.gui __rememberedObjects property except for the name of the current preset, which is just the value of dat.gui.preset.

I think all I need to do is use the parameters object for everything. If I want to replace the coded values with the values of a preset in dat.gui, I can just replace the value of the parameters object with the intended value from the preset.

I will adapt some of my experimental code to do just that.

gogins commented 7 months ago

The presets dropdown and buttons don't work unless the parameters for each named preset have been remembered. If there are 3 presets and 1 is not remembered, the not remembered one won't swap with the others and won't revert.

In addition, preset data in local storage can mess things up. It's best to clear local storage and then not use it at all. Similarly, if Controllers are created with one parameters object and then another object is passed to the remember function, that can mess things up.

gogins commented 7 months ago

I still don't completely understand this, but I think I can use it this way:

  1. Start out with a predefined parameters object.
  2. Do not ever use local storage.
  3. To save time, it's possible to tweak dat.gui parameters while performing, and then copy all the text in the Here's the new load parameter dialog and paste that code into the piece. Then assign the data of the current preset to the existing parameters object, in effect replacing it, e.g.
    parameters = default_dat_gui_state.remembered.Default[0];

    This must be done before creating any Controllers.

gogins commented 7 months ago

I have a draft of a piece, and have improved the infrastructure as well with saving to clipboard as well as to dat.gui memory.

gogins commented 7 months ago

Before submitting:

gogins commented 7 months ago

This is as done as I can make it at this time. I will submit this.

gogins commented 7 months ago

Here is the submission form: https://framaforms.org/supersonique-2024-1670537607

gogins commented 7 months ago

Having trouble removing the metadata... Finally did it with trial version of Mp3Tag.

gogins commented 7 months ago

Submitted.