43#ifndef RGBX_AUDIO_BARS_H
44#define RGBX_AUDIO_BARS_H
55#define RGBX_AUDIO_BAR_FLOOR_DB (-36.0f)
59#define RGBX_AUDIO_BAR_RANGE_DB (36.0f)
63#define RGBX_AUDIO_BAR_TILT_DB_PER_OCTAVE (3.0f)
66#define RGBX_AUDIO_BAR_POWER_FLOOR (1e-9f)
76 0.0000f, 1.0995f, 1.5850f, 1.8931f, 2.1468f, 2.3626f, 2.6521f, 2.9206f, 3.1234f, 3.3424f,
77 3.5677f, 3.7318f, 3.8791f, 4.0000f, 4.0753f, 4.1584f, 4.2907f, 4.4500f, 4.5935f, 4.7240f};
91 return 4.3429448f * logf(energy);
105 float range_db,
float tilt_db_per_octave) {
106 float tilt, range, h;
109 if (!(energy > 0.0f)) {
115 range = (range_db > 0.0f) ? range_db : 1.0f;
SPDX-License-Identifier: MIT Copyright (c) 2026 Stuart Alldritt.
#define RGBX_AUDIO_NUM_DISPLAY_BUCKETS
Number of fine-grained audio display buckets (bar-graph style).
Definition rgbx_api.h:62
static float rgbx_audio_bar_height(float energy, size_t bucket, float floor_db, float range_db, float tilt_db_per_octave)
Bar-height fraction for one bucket under a dB window.
Definition rgbx_audio_bars.h:104
static float rgbx_audio_bar_power_db(float energy)
Bucket power to dB, floored at RGBX_AUDIO_BAR_POWER_FLOOR.
Definition rgbx_audio_bars.h:84
#define RGBX_AUDIO_BAR_POWER_FLOOR
Power below this reads as -90 dB, so a silent bucket stays finite.
Definition rgbx_audio_bars.h:66
static const float rgbx_audio_bar_octaves[RGBX_AUDIO_NUM_DISPLAY_BUCKETS]
log2(centre_b / centre_0) for each display bucket.
Definition rgbx_audio_bars.h:75