View Issue Details

IDProjectCategoryView StatusLast Update
0000803OpenMPTGeneralpublic2017-06-14 11:31
ReporterSaga Musix Assigned ToSaga Musix  
Status resolvedResolutionfixed 
Target VersionOpenMPT / libopenmpt 0.3.1 (upgrade first)Fixed in VersionOpenMPT / libopenmpt 0.3.1 (upgrade first) 
Summary0000803: Add BLEP synthesis resampler

For best playback of Amiga modules, BLEP synthesis should be added as a new resampler type.

Additional Information

TODO: Find good BLEP implementation that is compatible with the BSD license.

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


Saga Musix

Saga Musix

2017-05-15 00:40

administrator   ~0003020

@manx this will also require some thinking on the libopenmpt side. The BLEP-based resampler is implemented as an interpolation template in the mixer, as that's where it belongs conceptually. However, this is technically not an interpolation with a fixed kernel width that would fit into the current scheme how interpolation is set up in the library interface. Maybe it could also be implement via a ctl instead. Any suggestions are welcome.



2017-05-15 07:18

administrator   ~0003021

I wanted to add some additional API regarding filter selection anyway in order to make it more future-proof with regard to the ability to select filter anti-aliasing on/off. (Which would allow to select between the 8tap kaiser (which does apply crude anti-aliasing lowpass (current default in libopenmpt)) and the 8tap XMMS filter (which does not (currently not available in libopenmpt))).
With regard to anti-aliasing, I was thinking of a ctl, like mixer.interpolation.anti-aliasing=[1|0] (with 1 being default as it's the current behaviour). This would not do anything when applied to filter lengths which do not support it.
For BLEP, I think the setting could be named mixer.interpolation.blep=[1|0] (with 0 being default), which would just override all other interpolation settings in case they do not apply to the BLEP resampler.
The complicated aspect of any such ctl and implementation in general is, how it would interact with per-instrument interpolation filter settings.

Saga Musix

Saga Musix

2017-05-15 12:37

administrator   ~0003022

I think I would only want to allow the BLEP filter to work with Amiga-based formats anyway - so per-instrument interpolation would not apply. It could be a per-song setting (that can be enabled through a checkbox in OpenMPT and through a ctl in libopenmpt) that effectively replaces the "no interpolation" setting, since that's what it basically is - no interpolation with a reconstrution filter. Another possibility would of course be to make it a choice in the song-specific resampler dropdown list and only show it for those module types.

Saga Musix

Saga Musix

2017-06-08 12:48

administrator   ~0003060

r8292 adds support for the Amiga resampler.

Issue History

Date Modified Username Field Change
2016-05-22 17:39 Saga Musix New Issue
2017-05-15 00:36 Saga Musix Assigned To => Saga Musix
2017-05-15 00:36 Saga Musix Status new => assigned
2017-05-15 00:36 Saga Musix Target Version => OpenMPT / libopenmpt 0.3.1 (upgrade first)
2017-05-15 00:40 Saga Musix Note Added: 0003020
2017-05-15 07:18 manx Note Added: 0003021
2017-05-15 12:37 Saga Musix Note Added: 0003022
2017-06-08 12:48 Saga Musix Status assigned => resolved
2017-06-08 12:48 Saga Musix Resolution open => fixed
2017-06-08 12:48 Saga Musix Fixed in Version => OpenMPT / libopenmpt 0.3.1 (upgrade first)
2017-06-08 12:48 Saga Musix Note Added: 0003060