Skip to content

Controlling "Track: Set pan" with relative step size < 1% gets stuck at center #433

@helgoboss

Description

@helgoboss

Experiments showed a somewhat strange behavior when it comes to setting track pan (via CSurf_OnPanChangeEx) to a value which is very close to center (0.01 ... so not many decimal places). After doing this, GetTrackUIVolPan still reports 0.0. Interestingly, this happens only with extensions, not in ReaScript (Lua). As always, I use Rust for the extension, but floating point numbers are the same as with C++ so this shouldn't matter.

Lua:

track = reaper.GetSelectedTrack(0, 0);
reaper.CSurf_OnPanChangeEx(track, 0.0, false, false);
ret, vol, panBefore = reaper.GetTrackUIVolPan(track);
reaper.CSurf_OnPanChangeEx(track, 0.01, false, false);
ret, vol, panAfter = reaper.GetTrackUIVolPan(track);

Rust:

// Given
reaper.csurf_on_pan_change_ex(track, Absolute(ReaperPanValue::new(0.0)), DenyGang);
let pan_before = reaper.get_track_ui_vol_pan(track)?.pan;
assert_eq!(pan_before.get(), 0.0);
// When
reaper.csurf_on_pan_change_ex(track, Absolute(ReaperPanValue::new(0.01)), DenyGang);
// Then
let pan_after = reaper.get_track_ui_vol_pan(track)?.pan;
assert_eq!(pan_after.get(), 0.0);

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingrealearnRelated to ReaLearn

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions