Tuesday, October 03, 2023

Christmas Rumblings, Prometheus v3.20

A frenetically busy couple of days with much stress. So much to do, so little time.

Yesterday I started to put together an idea for a Christmas themed charity album. It's early days yet, but I've had lots of interest from musician friends and groups. I expect this will be something special, socially and artistically.

Much of the day was spent updating Prometheus, adding a new Stats (statistics) render path. Stats were part of an older version, it returned peak levels, but for some time peak levels have been returned as standard so those stats were redundant. My much faster machine now permits more complex stats, and these might help with mastering. RMS and peak RMS are calculated on average and per-channel, but more usefully spectrum analysis takes place on the result and compares this with a 'standard candle' level to give a guide to the overall song balance.

A 'target' spectrum can be gleaned from existing music, so I could instruct the program to analyse a song like Wuthering Heights, then balance my music to match its EQ profile. A sticking point in the maths was how to equate source and target of different volumes. I didn't want to normalise source and target; it would be silly to have one band peak at 1.0, one trough at 0.0, and everything in between. This may appear to be an ideal representation of a spectrum, but it's too extreme. Most songs will have more subtle balances and the contrast between frequency bands should be preserved.

In the end, I set the average of both spectra to match. Whether it 'works' will be a matter of subjective experience rather than mathematical calculation. Here's an example of some stats:

Song Name: Cycles III Perpetual Change
Version: 2023 Version
Author: Mark Sheeky
Created: 27 December 2016 20:54
Last Updated: 29 September 2023 10:12

Render Type: 2D (Stereo)
Output File: D:\Audio\Albums\Inuse\R28B-CyclesAndShadows\Tracks-CDMaster\T04-CyclesIII-PerpetualChange.wav
Render Completed: 03 October 2023 14:11
From Tick: 144
To Tick: 19473
Channel Format: Stereo (Left, Right)
Depth Format: 32-bit FLOAT
Render Took: 00:00:36.040

Song Length: 4:12.357
Song Length (Samples): 11128960
Song RMS (Stereo) (dB): -18.344
Song Max Peak (1/Peak): 0.975 (1.026)
Song Max Peak (dB): -0.220

Channel L
RMS (dB): -18.679
Max Peak (dB): -0.220
Samples Clipped: 0
Peaks -ve/+ve: -0.899/0.975
28hz: Peak 0.163337 Target (dB) -3.297
56hz: Peak 0.247985 Target (dB) -0.229
113hz: Peak 0.379043 Target (dB) -0.311
225hz: Peak 0.404601 Target (dB) -0.594
450hz: Peak 0.514534 Target (dB) -1.638
900hz: Peak 0.497288 Target (dB) -1.490
1800hz: Peak 0.271260 Target (dB) +1.142
3600hz: Peak 0.157141 Target (dB) +3.513
7200hz: Peak 0.073190 Target (dB) +5.070
15000hz: Peak 0.032030 Target (dB) +3.778

The aim of these changes is to speed up and improve the quality of my music making. Whether this is true, time will tell. I add lots of features to my software constantly, and, as it becomes more sophisticated, delete lots too. Everything must be as efficient and practical as possible. One upshot of these changes (which have taken about 2 days) is the removal of an older spectrum analysis feature. This one trumps that.

Now, I must finish the Cycles remaster, create a Christmas song, and keep notating the Testing The Delicates scores. The week already feels too short!