View Issue Details

IDProjectCategoryView StatusLast Update
0000779OpenMPTlibopenmptpublic2022-06-21 12:57
ReporterSaga Musix Assigned To 
Status newResolutionopen 
Product VersionOpenMPT 1.?? (long term goals) 
Target VersionOpenMPT 1.?? (libopenmpt 1.0) (goals) 
Summary0000779: Allow certain playback-related flags to be set as load-time ctl or during playback

Some internal flags should be able to be chosen by the user (e.g. the currently unimplemented flag for playing Amiga MODs as mono, force-enabling VBlank timing for ProTracker MODs or super-smooth ramping for XM files).
It would be rather simple to allow those things to be specified through ctl values, but ultimately it would be very useful to also be able to get and set them in real-time (e.g. through openmptmodule*_render_param), as e.g. a module player should be able to change some of these settings in real-time.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)


has duplicate 0001605 closed Add a control for VBlank 
related to 0001173 resolved MOD file playing wrong with latest libopenmpt 




2016-05-04 18:24

administrator   ~0002359

I think basically all of enum PlayBehaviour could be exposed as ctls. ctls are settable even after loading by using ctl_set(). Unless implemented load-time specific explicitly, ctls will also and are supposed to work during play time by default.
I dont think it would make much sense to define render_params for those (and thereby make them completely realtime-safe that way), at least at first (especially as the expected use of these ctls should be rather rare as libopenmpt is supposed to do the best guess right thing by default).

Saga Musix

Saga Musix

2016-05-04 19:56

administrator   ~0002360

I don't think it is really necessary to expose all of PlayBehaviour - most of it can be accurately determined at load-time and should never be changed by the user. The amount of (sometimes rather insufficiently documented) behaviour flags there would probably just confuse any library user (both developer and end-user). The number of play behaviours that are actually relevant to be settable via ctls is really low.

Saga Musix

Saga Musix

2020-05-16 20:10

administrator   ~0004330

An interesting approach could be to have different "player types" which could be queried. For example, for S3M files, player types could be "ST3 with GUS", "ST3 with SoundBlaster", "Impulse Tracker", and these player types would be associated with certain sets of playback flags. For MOD, different ProTracker versions and other tools could define certain playback flags in the same way. This would be easier to understand than the 100+ playback behaviour flags that are currently available.

Issue History

Date Modified Username Field Change
2016-05-04 17:46 Saga Musix New Issue
2016-05-04 17:47 Saga Musix Category Feature Request => libopenmpt
2016-05-04 17:47 Saga Musix Description Updated
2016-05-04 18:24 manx Note Added: 0002359
2016-05-04 19:56 Saga Musix Note Added: 0002360
2018-11-24 10:48 Saga Musix Relationship added related to 0001173
2020-05-16 20:10 Saga Musix Note Added: 0004330
2020-05-17 08:05 manx Target Version => OpenMPT 1.?? (libopenmpt 1.0) (goals)
2022-06-21 12:48 Saga Musix Relationship added has duplicate 0001605