Recent

Author Topic: Extended Module Player  (Read 10146 times)

Lulu

  • Sr. Member
  • ****
  • Posts: 362
Re: Extended Module Player
« Reply #45 on: October 16, 2024, 07:47:00 pm »
Hi, I was able to compile libxmp.dll 32b with no libgcc dependancies  8-)
but size is now 759k

Code: Pascal  [Select][+][-]
  1.         ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ff8633d0000)
  2.         KERNEL32.DLL => /c/Windows/System32/KERNEL32.DLL (0x7ff862080000)
  3.         KERNELBASE.dll => /c/Windows/System32/KERNELBASE.dll (0x7ff861040000)
  4.         msvcrt.dll => /c/Windows/System32/msvcrt.dll (0x7ff8632f0000)
  5.         libxmp.dll => /c/Pascal/TestLibXmp/libxmp-libxmp-4.6.0/build/libxmp.dll (0x657c0000)
  6.  

Tested on Win7 32b
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Fred vS

  • Hero Member
  • *****
  • Posts: 3734
    • StrumPract is the musicians best friend
Re: Extended Module Player
« Reply #46 on: October 16, 2024, 08:30:05 pm »
Excellent!

Did you try to strip it' ?
Code: Bash  [Select][+][-]
  1. > strip.exe libxmp.dll
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Lulu

  • Sr. Member
  • ****
  • Posts: 362
Re: Extended Module Player
« Reply #47 on: October 16, 2024, 08:58:08 pm »
I didn't know the strip command. After some research I understand it remove some info from compiled file.
Thank you fred, I've learn something new!

After the 'strip', the size of the file is 642k
Attached the 'stripped' version.
wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Fred vS

  • Hero Member
  • *****
  • Posts: 3734
    • StrumPract is the musicians best friend
Re: Extended Module Player
« Reply #48 on: October 16, 2024, 09:38:17 pm »
I didn't know the strip command. After some research I understand it remove some info from compiled file.
Thank you fred, I've learn something new!

After the 'strip', the size of the file is 642k
Attached the 'stripped' version.

Thank you Lulu.  ;D

Strip remove some unused data for the executable, mainly used for debugging
But it can also have bad result so it is better to test it deeply.
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Lulu

  • Sr. Member
  • ****
  • Posts: 362
Re: Extended Module Player
« Reply #49 on: October 17, 2024, 09:54:53 am »
Strip remove some unused data for the executable, mainly used for debugging
But it can also have bad result so it is better to test it deeply.

Thank for the precision. To be sure, I've re-tested the stripped dll on my 32b machine (because I applyed 'strip' command with my 64b machine).
All is ok with UOS SimplePlayer and the three music modules.  :)

wishing you a nice life!
GitHub repositories https://github.com/Lulu04

Fred vS

  • Hero Member
  • *****
  • Posts: 3734
    • StrumPract is the musicians best friend
Re: Extended Module Player
« Reply #50 on: October 17, 2024, 02:00:33 pm »
Strip remove some unused data for the executable, mainly used for debugging
But it can also have bad result so it is better to test it deeply.

Thank for the precision. To be sure, I've re-tested the stripped dll on my 32b machine (because I applyed 'strip' command with my 64b machine).
All is ok with UOS SimplePlayer and the three music modules.  :)

Hello Lulu,
Your libxmp-32.dll was added in uos.
Many thanks.
Fre;D
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Gigatron

  • Sr. Member
  • ****
  • Posts: 352
  • Amiga Rulez !!
    • Gigatron Shader Network Demo
Re: Extended Module Player
« Reply #51 on: July 12, 2025, 02:16:15 pm »
Hi

Since XMPlayer 4.6.0 this library was updated 3 times and reach now V 4.6.3.

https://xmp.sourceforge.net/

Regards

Change logs:

4.6.3 (20250511):
   Changes by Alice Rowan:
   - Fix crashes when xmp_set_position is used to set a negative position.
     Negative positions now correctly return -XMP_ERROR_INVALID.
   - Fix crashes when xmp_set_row is used to set a negative row.
     Negative positions now correctly return -XMP_ERROR_INVALID.
   - Fix hangs when xmp_prev_position is used on the first position of
     a sequence which is preceded by an S3M/IT skip marker.
   - Fix out-of-bounds reads when xmp_next_position is used at the end of
     a 256 position module.
   - Fix hangs when seeking to an end-of-module marker caused by these
     positions getting assigned a non-existent sequence.
   - Document xmp_set_position/xmp_next_position/xmp_prev_position
     interactions with xmp_stop_module/xmp_restart_module.
   - Fix stack underflow in Pha Packer loader (CVE-2025-47256).
   - Slight performance improvements for the Oktalyzer and SFX loaders.
   - Fix broken conversion of ProRunner 2.0 pattern data.
   - xmp_set_tempo_factor no longer alters frame time calculation for
     xmp_get_frame_info. Frame time is now updated to account for the
     new time factor after calling xmp_scan_module.
   - Fix loading XMs with some types of harmless pattern truncation.
     See: Jazztiz/ta-da-da-da.xm, Sonic (UK)/phuture.xm, et al.
   - Fix Poly Tracker pattern break hex parameter.
   - Fix Digital Tracker broken instrument finetune.
   - Fix Digital Tracker 2.03 position jump effect for 4 channel DTMs.
   - Fix pattern loop jump interactions with same row pattern jump/break:
     Scream Tracker 3.03b+; Impulse Tracker 1.00 to 1.06 IT;
     Impulse Tracker 2.00+ IT/S3M; Modplug Tracker 1.16 IT/XM/S3M;
     Imago Orpheus IMF/S3M; Liquid Tracker LIQ/S3M; Poly Tracker;
     Digital Tracker <=2.02 DTM/MOD; Digital Tracker 2.03 (partial);
     Digital Tracker 1.9 (partial); Octalyser.
   Changes by Thomas Neumann:
   - Fix the pattern loop effect in Astroidea XMF loader.
   - Fix loading of Extreme Pinball modules.

4.6.2 (20250224):
   Changes by Alice Rowan:
   - Fix MED effect 1Fxy (delay and retrigger). The new implementation
     supports both delay and retrigger at the same time and repeats.
   - Fix MED effect FF3 (revert change from 4.6.1). The buggy version
     of this effect prior to OctaMED v5 is not currently supported.
   - Fix MED3 and MED4 time factor and tempos 1-10.
   - Fix MED4 effect 9xx (set speed).
   - Add support for MED3 and MED4 song files.
   - Better MED MMD tracker version fingerprinting.
   - Fix loading external instruments from the current directory.
   Changes by Thomas Neumann:
   - Fix oxm modules with empty samples (e.g.: The Four Ages.oxm)
   - Fix some modules would be misidentified as Scream Tracker 2.
   - Handle IT modules with edit history but no midi configuration
   Changes by Ozkan Sezer:
   - Revert a bad CVE fix to the miniz inflate code
   - Add missing HAVE_DIRENT definition to Android makefile.

4.6.1 (20250101):
   Changes by Claudio Matsuoka:
   - The full library is now under MIT license
   Changes by Alice Rowan:
   - Add stereo sample loading support for IT, S3M, XM, MED, LIQ, and
     Digital Tracker (partial).
   - Add sample preamplification to filter mixers for high sample rates.
   - Add support for Ultra Tracker tempo commands.
   - Load Ultra Tracker comments instead of skipping them.
   - Implement support for Protracker instrument swapping.
   - Implement retrigger effects for MED, OctaMED, and Liquid Tracker
     where only one retrigger occurs. Liquid Tracker (new format) and
     Digital Symphony now allow retrigger values larger than 15.
   - Fix XM envelope sustain points that exist on a zero-length loop.
   - Fix XM extra fine portamento effect memory.
   - Fix XM portamento up and portamento down memory (only for modules
     where FT2 bug compatibility is enabled, for now).
   - Fix loading edge case STMs with an EOF byte of 2.
   - Fix loading Imago Orpheus modules with null instrument magic
     strings, bidirectional samples, and disabled default panning.
   - Faster IT loading by buffering pattern, sample, and comment reads.
   - Fix loop detection edge cases broken by S3M/IT marker scan bugs.
   - Add fix for IT break to module scan (was missed in libxmp 4.5.0.)
   - Fix restart position for >64k sample and Digital Tracker MODs.
   - Reset Invert Loop position when a new instrument is encountered.
   - MOD: make presence of invert loop override tracker ID guesses.
     M.K. modules within Amiga limits which use EFx invert loop are
     now IDed as Protracker.
   - Multiple Digital Tracker bug fixes:
     * Support for loading Digital Tracker 2.03 DTMs (MOD patterns).
     * Support for loading Digital Tracker 1.9 DTMs (VERS/SV19).
     * Better Digital Tracker version fingerprinting.
     * Fix Digital Tracker 2.03 global sample rate and bit depth fields.
     * Fix Digital Tracker 2.04 pattern note loading (was off-by-one).
     * Fix Digital Tracker instrument loops (loop end was off-by-one).
     * Allow patterns up to 396 rows in Digital Home Studio DTMs.
     * Support for Digital Tracker 1.9 "MIDI note" transpose.
     * Simulate Digital Tracker effects bugs where possible.
     * Fix loading of Digital Tracker module names (not always 32 bytes).
   - Liquid Tracker bug fixes:
     * [Old] Fix loading of module and instrument names (fixes the old
       format version of WASTETIM.LIQ).
     * [Old] Fix loading of instrument lengths/loops (32-bit, not 16-bit).
     * [Old] Fix loading of pattern notes and volumes (off-by-one).
     * [Old] Fix initial panning.
     * [Old] Most effects are now supported. H70/H6A is not yet supported.
       Fxx, if it was ever implemented, is not yet supported.
     * [New] Fixed Pan Control, Retrigger, Global Volume effects, and
       vibrato/tremolo waveform 3. P70/P6A is not yet supported.
     * [New] Fix incorrect bounding of notes that caused several LIQs
       to fail to load.
     * [New] Fix loading of pattern volumes (off-by-one).
     * [New] 16-bit samples with loops no longer cause a failed load.
     * [New] Fix loading of instrument global volumes.
     * [New] Add support for ping pong loops.
     * [New] Fix initial channel volume/pan tables for 0.00 LIQs.
     * [New] Support channel volume and instrument global volume gain
       functionality by doubling the mix volume once for each (4x total).
     * [Both] Stopped incorrectly applying QUIRK_S3MLOOP, QUIRK_VOLPDN,
       QUIRK_S3MRTG, and QUIRK_MARKER.
   - Fix loading of Poly Tracker (PTM) empty sample names.
   - Fix Real Tracker loader on targets where char is unsigned by default.
   - Fix out-of-bounds reads in His Master's Noise Mupp instruments.
   - Fix slow ProWizard testing.
   - Fix Paula mixer state leak after changing XMP_PLAYER_MODE.
   - Replace rand() with a built-in reentrant alternative.
   - xmp_set_tempo_factor now returns -XMP_ERROR_STATE when called prior
     to xmp_start_player (instead of causing crashes).
   - Fix mixer crashes caused by previously valid tempo factors after
     sample rate or BPM changes.
   - Passing NULL to xmp_set_instrument_path() now unsets the instrument
     path instead of crashing.
   - Merge song file instrument path detection routines.
   - Fix module scan pattern delay counting.
   - Add compatibility for non-standard Pattern Loop implementations:
     Scream Tracker 3.01b; Scream Tracker 3.03b+; Impulse Tracker 1.00;
     Impulse Tracker 1.04 to 2.09; Modplug Tracker 1.16; Digital Tracker
     <=2.04; Digital Tracker 1.9; Octalyser; Imago Orpheus; Liquid Tracker;
     Poly Tracker. (MOD, FT2, and IT 2.10+ were already supported.)
   - Fixed numerous defects found by fuzzing.
   Changes by Thomas Neumann:
   - Fix XM envelope handling
   - Bug fixes to DSMI loader
   - Fix 16-bit sample check in MultiTracker loader
   - Fix finetune in MultiTracker loader
   - Fix XM restart position, so that it is possible to play
    "10 Days Of Abstinence.xm"
   Changes by Saga Musix:
   - S3M: Detect PlayerPRO, Velvet Studio and old MPT versions
   Changes by ds-sloth:
   - Optimize scan code for common case of no effects
   Changes by Misty De Méo:
   - Filter off html files when reading archives.
   Changes by Ozkan Sezer:
   - Change lha depacker to use a stripped down version of lhasa.
   - Merge several CVE fixes to depackers stb_vorbis backend.
   - Make the lite version buildable from git or full distribution.
   - Build system fixes and clean-ups. Misc code clean-ups.




I have compiled this .dll with VS 2022 for Win X64.

Coding faster than Light !

Gigatron

  • Sr. Member
  • ****
  • Posts: 352
  • Amiga Rulez !!
    • Gigatron Shader Network Demo
Re: Extended Module Player
« Reply #52 on: July 12, 2025, 02:27:09 pm »
In addition

Here's a equalizer demo project with fastcanvas library V1.052;

tuf4.zip is a soundtracker module.
tex.zip  include Copper_23.png   to run this projet;

Regards

** Edit Forgot the module .. now it's ok tuf4.zip
« Last Edit: July 12, 2025, 04:42:39 pm by Gigatron »
Coding faster than Light !

 

TinyPortal © 2005-2018