./audio/libopenmpt, Library to decode tracked music files into a raw PCM audio stream

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.5.2, Package name: libopenmpt-0.5.2, Maintainer: pkgsrc-users

OpenMPT based module player library and libopenmpt based command-line

libopenmpt is a cross-platform C++ and C library to decode tracked
music files (modules) into a raw PCM audio stream.

openmpt123 is a cross-platform command-line or terminal based module
file player.

libopenmpt is based on the player code of the Open ModPlug Tracker
project (OpenMPT, http://openmpt.org/). In order to avoid code base
fragmentation, libopenmpt is developed in the same source code
repository as OpenMPT.

Required to run:
[audio/libsndfile] [audio/mpg123] [devel/libltdl] [audio/pulseaudio] [devel/SDL2]

Required to build:
[pkgtools/x11-links] [converters/help2man] [x11/xcb-proto] [x11/fixesproto4] [pkgtools/cwrappers] [x11/xorgproto]

Package options: pulseaudio, sndfile

Master sites:

SHA1: b25a37b94db297ee0b64a7d823c381716ade71d9
RMD160: 90f8246e3c214c5cbf6df0a2c9f72a6e27b4df15
Filesize: 1432.578 KB

Version history: (Expand)

CVS history: (Expand)

   2020-08-31 17:03:53 by Frederic Cambus | Files touched by this commit (2) | Package updated
Log message:
libopenmpt: update to 0.5.2.


### libopenmpt 0.5.2 (2020-08-30)

 *  [**Change**] `Makefile` `CONFIG=emscripten` now supports
    `EMSCRIPTEN_TARGET=all` which provides WebAssembly as well as fallback to
    JavaScript in a single build.

 *  [**Regression**] `Makefile` `CONFIG=emscripten` does not support
    `EMSCRIPTEN_TARGET=asmjs` or `EMSCRIPTEN_TARGET=asmjs128m` any more because
    support has been removed from current Emscripten versions.
 *  [**Regression**] Support for Emscripten versions older than 1.39.7 has been

 *  PP20: The first few bytes of some files were not decompressed properly,
    making some files unplayable (depending on the original format).
   2020-08-18 19:58:18 by Leonardo Taccari | Files touched by this commit (549)
Log message:
*: revbump for libsndfile
   2020-07-28 14:44:18 by Frederic Cambus | Files touched by this commit (2) | Package updated
Log message:
libopenmpt: update to 0.5.1.


### libopenmpt 0.5.1 (2020-07-26)

 *  [**Bug**] `libopenmpt/libopenmpt.h` failed to compile with

 *  MPTM: Qxy now retriggers OPL notes if new compatibility flag is set in file.
 *  MPTM: Bring back old OPL note end-of-envelope behaviour for files made with
    OpenMPT 1.28.
 *  IT: Global volume slides with both nibbles set preferred the "slide up"
    nibble over the "slide down" nibble in old OpenMPT versions, \ 
unlike other
    slides. Such old files are now imported correctly again.
 *  IT: Fixed an edge case where, if the filter hit full cutoff / no resonance
    on the first tick of a row where a new delayed note would be triggered, the
    filter would be disabled even though it should stay active. Fixes trace.it
    by maddie.
 *  OXM: Some sample loops were not imported correctly.
 *  XM: Out-of-range arpeggio clamping behaviour broke in OpenMPT
    The arpeggios in Binary World by Dakota now play correctly again.
 *  S3M: Support old-style sample pre-amp value in very early S3M files.
 *  S3M: Only force-enable fast slides for files ST 3.00. Previously, any S3M
    file made with an ST3 version older than 3.20 enabled them.
 *  S3M: Only apply volume and middle-C speed on instrument change if the new
    sample slot has sample data.
 *  MOD: Fix an infinite loop in GamerMan by MrGamer by playing non-ProTracker
    MODs more like FT2 would.
 *  M15: Improve tracker detection heuristics to never assume SoundTracker 2.0
    if there is a huge number of Dxx commands, as that is a definite hint that
    they should be treated as volume slides. Fixes Monty On The Run by
    Master Blaster.
 *  MO3: Support OPL patches in MO3 files created from MPTM and S3M.
 *  DBM: If a global pattern command would be lost because both effect commands
    in a cell would have to go into the regular effect column (e.g. a speed and
    a tempo command), the lost command is now attempted to be written into a
    different cell on the same row. Fixes "Party-Question V" by grogon.

 *  mpg123: Update to v1.26.3 (2020-07-16).
 *  stb_vorbis: Update v1.20 commit b42009b3b9d4ca35bc703f5310eedc74f584be58
   2020-05-25 12:29:31 by Frederic Cambus | Files touched by this commit (2) | Package updated
Log message:
libopenmpt: update to 0.5.0.


### libopenmpt 0.5.0 (2020-05-24)

 *  [**New**] OggMod compressed FastTracker 2 XM (OXM) modules are now
 *  [**New**] The emulated Amiga type when Amiga resampler emulation is enabled
    can now be selected via ctl `render.resampler.emulate_amiga_type`. Possible
    values are: `"auto"`, `"a500"`, `"a1200"`, and \ 
an experimental option
 *  [**New**] libopenmpt: New API `openmpt::module::get_current_estimated_bpm()`
    (C++), and `openmpt_module_get_current_estimated_bpm()` (C) which provides
    accurate beats per minute information for module formats with time signature
    and an educated guess based on speed and tempo for others.
 *  [**New**] libopenmpt: New type-aware ctl APIs that do not require memory
    allocations and are thus realtime-safe:
    `openmpt::module::ctl_get_boolean()`, `openmpt::module::ctl_get_integer()`,
    `openmpt::module::ctl_get_text()`, `openmpt::module::ctl_set_boolean()`,
    `openmpt::module::ctl_set_floatingpoint()` (C++), and
    `openmpt_module_ctl_get_boolean()`, `openmpt_module_ctl_get_integer()`,
    `openmpt_module_ctl_get_floatingpoint()`, `openmpt_module_ctl_get_text()`,
    `openmpt_module_ctl_set_boolean()`, `openmpt_module_ctl_set_integer()`,
    `openmpt_module_ctl_set_floatingpoint()` (C).
 *  [**New**] libopenmpt C++ New API `openmpt::is_extension_supported2()` which
    takes a `std::string_view` parameter instead of `std::string`.
 *  [**New**] libopenmpt C++: New API
    `openmpt::module::module(std::vector<std::byte> data)`,
    `openmpt::module::module(const std::byte * data, std::size_t size)`,
    `openmpt::module::module(const std::byte * beg, const std::byte * end)`.
 *  [**New**] libopenmpt C++: New API
    `openmpt::probe_file_header(flags, const std::byte * data, std::size_t size, \ 
    `openmpt::probe_file_header(flags, const std::byte * data, std::size_t size)`.
 *  [**New**] libopenmpt_ext C++: New API
    `openmpt::module_ext::module_ext(std::vector<std::byte> data)`,
    `openmpt::module_ext::module_ext(const std::byte * data, std::size_t size)`,
    `openmpt::module_ext::module_ext(std::vector<std::uint8_t> data)`,
    `openmpt::module_ext::module_ext(const std::uint8_t * data, std::size_t size)`.

 *  [**Change**] std::istream based file I/O has been speed up.
 *  [**Change**] Dependency on iconv on Linux has been removed.

 *  [**Regression**] libmodplug: The libmodplug emulation layer has been removed
    from the libopenmpt tree. Please use the separate `libopenmpt-modplug`
    package instead.
 *  [**Regression**] foo_openmpt: foo_openmpt is discontinued. Please use
    Kode54's fork foo_openmpt54:
 *  [**Regression**] Support for building with C++11 or C++14 has been removed.
    C++17 is now required to build libopenmpt.
 *  [**Regression**] Support for client code using C++11 or C++ 14 has been
    removed. C++17 is now required to build libopenmpt client applications.
 *  [**Regression**] Support for Visual Studio 2015 has been removed.
 *  [**Regression**] Support for GCC 4.8, 4.9, 5, 6 has been removed.
 *  [**Regression**] Support for Clang 3.6, 3.7, 3.8, 3.9, 4 has been removed.
 *  [**Regression**] Support for Emscripten versions older than 1.39.1 has been
 *  [**Regression**] Building with Android NDK older than NDK r18b is not
    supported any more.
 *  [**Regression**] openmpt123: Support for SDL1 (but not SDL2) output has been
 *  [**Regression**] openmpt123: Support for SDL2 older than 2.0.4 has been
 *  [**Regression**] Windows XP and Windows Vista are no longer supported.
 *  [**Regression**] It is no longer possible to optionally use iconv for
    character set conversions.

 *  [**Bug**] openmpt123: openmpt123 now honors the current locale and outputs
    text appropriately.
 *  [**Bug**] openmpt123: Piping text output to other than console window
    targets on Windows has been fixed.

 *  Greatly improved MED import. Synthesized instruments are still not supported
    but support was added for: Multisampled instruments, delta samples, more
    pattern commands, Hold and Decay, VSTi and MIDI output, multiple songs and
    many other small changes.
 *  Improved OPL channel allocation when more than 18 notes are active, so that
    channels that have completely faded out are prioritized over channels that
    have already been released but have not faded out yet.
 *  Interactively triggering an OPL instrument could cause the first pattern
    channel to no longer be played back correctly.
 *  Fix some inaccuracies in OPL emulator.
 *  Fix overflow of OPL amplification happening at a synth volume level of 510.
 *  End-of-sample pop reduction of surround channels was applied to front
    channels instead, causing a pop on the front channels instead of removing it
    on the back channels.
 *  IT: Disable retrigger with short notes quirk for modules saved with
    Chibi Tracker, as it does not implement that quirk.
 *  IT: Instrument and sample panning should not override channel panning for
    following notes.
 *  IT: SBx is now prioritized over Bxx commands that are to the left of it.
 *  IT: Duplicate Check Type "Sample" should only be applied if the \ 
    match, too.
 *  IT: Duplicate Check Type "Note" should compare pattern notes, but \ 
it was
    comparing the new pattern note against the old translated note.
 *  IT: Various fixes for envelope resetting.
 *  IT / S3M: When combining SBx and EEx effects, don't skip the first row of
    the loop like in FastTracker 2.
 *  S3M: Empty pattern commands now affect effect memory as well.
 *  S3M: Offset beyond loop end wraps around to loop start like in
    Scream Tracker 3 + GUS (previously it just keep playing from the loop start,
    which is neither what GUS nor Sound Blaster drivers do).
 *  S3M: Notes cannot be retriggered after they have been cut.
 *  S3M: Fix portamento after note cut (fixes antediluvian_song.s3m).
 *  S3M / MOD: Previous note offset is no longer used for retriggered notes if
    there was no instrument number next to the Qxy effect.
 *  MOD: Sample swapping now also works if the sample that is being swapped from
    does not loop. Swapping to a non-looped sample now stops playback once the
    swapped-from sample reaches its (loop) end.
 *  MOD: Fix early song ending due to ProTracker pattern jump quirk
    (EEx + Dxx on same row) if infinite looping is disabled.
    Fixes Haunted Tracks.mod by Triace.
 *  MOD: Previous note offset is no longer used for retriggered notes if there
    was no instrument number next to the E9x effect.
 *  MOD: Vibrato type "ramp down" was upside down.
 *  XM: If a file contains patterns longer than 1024 rows, they are now clamped
    to 1024 rows instead of 64 rows.
 *  XM: Do not reset note-off status on portamento if there is no instrument
   2020-05-06 18:36:32 by Frederic Cambus | Files touched by this commit (2) | Package updated
Log message:
libopenmpt: update to 0.4.12.


### libopenmpt 0.4.12 (2020-04-13)

 *  IT: Vibrato was too fast in Old Effects mode since libopenmpt 0.3.
 *  XM: Treat 8bitbubsy's FT2 clone exactly like Fasttracker 2 with respect to
    compatibility and playback flags. For example, FT2 Pan Law was not applied.
 *  DMF: Some files had a wrong tempo since libopenmpt 0.2.5705-beta15.
   2020-03-08 17:51:54 by Thomas Klausner | Files touched by this commit (2833)
Log message:
*: recursive bump for libffi
   2020-01-02 10:23:58 by Frederic Cambus | Files touched by this commit (2) | Package updated
Log message:
libopenmpt: update to 0.4.11.

This fixes CVE-2019-14380 and CVE-2019-17113.


### libopenmpt 0.4.11 (2019-12-22)

 *  MOD: Fix initial instrument change with no note playing. Fixes first pattern
    of Beyond Music by Captain.

### libopenmpt 0.4.10 (2019-10-30)

 *  The "date" metadata could contain a bogus date for some older IT files.
 *  Do not apply global volume ramping from initial global volume when seeking.

 *  MTM: Sample loop length was off by one.
 *  PSM: Sample loop length was off by one in most files.

 *  mpg123: Update to v1.25.13 (2019-10-26).

### libopenmpt 0.4.9 (2019-10-02)

 *  [**Sec**] libmodplug: C API: Limit the length of strings copied to the
    output buffer of `ModPlug_InstrumentName()` and `ModPlug_SampleName()` to 32
    bytes (including terminating null) as is done by original libmodplug. This
    avoids potential buffer overflows in software relying on this limit instead
    of querying the required buffer size beforehand. libopenmpt can return
    strings longer than 32 bytes here beacuse the internal limit of 32 bytes
    applies to strings encoded in arbitrary character encodings but the API
    returns them converted to UTF-8, which can be longer. (reported by Antonio
    Morales Maldonado of Semmle Security Research Team) (r12129)
    ([CVE-2019-17113](https://cve.mitre.org/cgi-bin/cvename.c … 2019-17113))
 *  [**Sec**] libmodplug: C++ API: Do not return 0 in
    `CSoundFile::GetSampleName()` and `CSoundFile::GetInstrumentName()` when a
    null output pointer is provided. This behaviour differed from libmodplug and
    made it impossible to determine the required buffer size. (r12130)

### libopenmpt 0.4.8 (2019-09-30)

 *  [**Sec**] Possible crash due to out-of-bounds read when playing an OPL note
    with active filter in S3M or MPTM files (r12118).

### libopenmpt 0.4.7 (2019-09-23)

 *  [**Bug**] Compilation fix for various platforms that do not provide
    `std::aligned_alloc` in C++17 mode. The problematic dependency has been
    removed. This should fix build problems on MinGW, OpenBSD, Haiku, and others
    for good.

 *  J2B: Ignore notes with non-existing instrument (fixes Ending.j2b).

 *  mpg123: Update to v1.25.12 (2019-08-24).
 *  ogg: Update to v1.3.4. (2019-08-31).
 *  flac: Update to v1.3.3. (2019-08-04).

### libopenmpt 0.4.6 (2019-08-10)

 *  [**Bug**] Compilation fix for OpenBSD.
 *  [**Bug**] Compilation fix for NO_PLUGINS being defined.

 *  in_openmpt: Correct documentation. `openmpt-mpg123.dll` must be placed into
    the Winamp directory.

 *  Detect IT files unpacked with early UNMO3 versions.

 *  mpg123: Update to v1.25.11 (2019-07-18).
 *  minimp3: Update to commit 977514a6dfc4960d819a103f43b358e58ac6c28f
 *  miniz: Update to v2.1.0 (2019-05-05).
 *  stb_vorbis: Update to v1.17 (2019-08-09).

### libopenmpt 0.4.5 (2019-05-27)

 *  [**Sec**] Possible crash during playback due out-of-bounds read in XM and
    MT2 files (r11608).
    ([CVE-2019-14380](https://cve.mitre.org/cgi-bin/cvename.c … 2019-14380))

 *  Breaking out of a sustain loop through Note-Off sometimes didn't continue in
    the regular sample loop.
 *  Seeking did not stop notes playing with XM Key Off (Kxx) effect.

### libopenmpt 0.4.4 (2019-04-07)

 *  [**Bug**] Channel VU meters were swapped.

 *  Startrekker: Clamp speed to 31 ticks per row.
 *  MTM: Ignore unused Exy commands on import. Command E5x (Set Finetune) is now
    applied correctly.
 *  MOD: Sample swapping was always enabled since it has been separated from the
    ProTracker 1/2 compatibility flag. Now it is always enabled for Amiga-style
    modules and otherwise the old heuristic is used again.

 *  stb_vorbis: Update to v1.16 (2019-03-05).
   2019-11-02 22:09:18 by Roland Illig | Files touched by this commit (57)
Log message:
audio: align variable assignments and directives

pkglint -Wall -F --only aligned --only indent -r

No manual corrections.