Widen the deck row block to 1028 so the filter tie-line is exact, and accumulate the meter's block peaks instead of sampling one in 47
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
#include "core/instrument/engine/filter/filter_morph.h" // MorphLaw (the law toggle's state)
|
||||
#include "core/instrument/ui/knob_deck.h" // deck layout + kDeckKnobSize
|
||||
#include "core/instrument/ui/master_meter.h" // the bus meter's column interior + ballistics
|
||||
#include "core/instrument/ui/waveform_view.h" // waveformSurface (THE lane-split fold)
|
||||
#include "core/instrument/ui/waveform_view.h" // resolveLaneSplit (THE lane-split fold)
|
||||
#include "shell/instrument/editor_internal.h" // kit adapters + knob face
|
||||
#include "shell/instrument/reasampler_processor.h"
|
||||
|
||||
@@ -52,12 +52,11 @@ void paintMeterColumn(LICE_IBitmap* bmp, const Rect& column, const MasterMeterUi
|
||||
db -= static_cast<int>(kMeterTickStepDb)) {
|
||||
const int y = meterDbToY(m.field, db);
|
||||
const bool zero = (db == 0);
|
||||
const bool numeralled = zero || (db % 12 == 0);
|
||||
LICE_FillRect(bmp, m.field.x, y, m.field.width, zero ? 2 : 1,
|
||||
zero ? toLice(roleColor(Role::TextDim)) : hairline, 1.0f, 0);
|
||||
if (numeralled) {
|
||||
kitText(bmp, Rect::ltrb(m.labels.x, y - 5, m.labels.right(), y + 5),
|
||||
tickLabel(db).c_str(), Font::Micro, Role::TextDim, Align::Right);
|
||||
if (meterTickNumeralled(db)) {
|
||||
kitText(bmp, meterNumeralRect(m.labels, y), tickLabel(db).c_str(), Font::Micro,
|
||||
Role::TextDim, Align::Right);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,9 +77,7 @@ void paintMeterColumn(LICE_IBitmap* bmp, const Rect& column, const MasterMeterUi
|
||||
}
|
||||
};
|
||||
if (split == LaneSplit::Single) {
|
||||
const instrument::engine::MeterState& loudest =
|
||||
state.left.levelDb >= state.right.levelDb ? state.left : state.right;
|
||||
drawBar(m.barA, loudest);
|
||||
drawBar(m.barA, meterSingleLaneState(state));
|
||||
} else {
|
||||
drawBar(m.barA, state.left);
|
||||
drawBar(m.barB, state.right);
|
||||
@@ -102,14 +99,12 @@ void ReaSamplerEditor::paintDeck(LICE_IBitmap* bmp, const FaceLayout& fl) {
|
||||
const PlaySeconds& play = params_.play;
|
||||
const bool isMono = (voiceMode_ == VoiceMode::Mono);
|
||||
const LICE_pixel hairline = toLice(roleColor(Role::LineHairline));
|
||||
// The meter's bar count is the SAME resolved decision the waveform's lane split is — read
|
||||
// off waveformSurface rather than re-derived, so it can never become a second rule.
|
||||
const LaneSplit meterSplit =
|
||||
waveformSurface(fl.bands.waveform, channelMode_ == ChannelMode::Stereo,
|
||||
channelPcmFor(selectedId_).channelCount)
|
||||
.laneCount == 2
|
||||
? LaneSplit::Stereo
|
||||
: LaneSplit::Single;
|
||||
// The meter's bar count is the SAME resolved decision the waveform's lane split is —
|
||||
// resolveLaneSplit is the one home of it. Asked directly rather than read back off
|
||||
// waveformSurface, whose laneCount additionally folds in the waveform BAND's pixel height,
|
||||
// which decides nothing about how many channels the bus is carrying.
|
||||
const LaneSplit meterSplit = resolveLaneSplit(channelMode_ == ChannelMode::Stereo,
|
||||
channelPcmFor(selectedId_).channelCount);
|
||||
|
||||
// One compact-toggle draw (the Mono/Stereo segment grammar at Micro scale). Disabled
|
||||
// segments draw inert so the dependency (Retrig|Legato needs Mono) reads at a glance.
|
||||
|
||||
Reference in New Issue
Block a user