Open ModPlug Player

Started by sunshine, February 08, 2020, 20:48:00

Previous topic - Next topic

sunshine

#60
It is very nice to see your nice comments dear friends. I am planning to add VST effects support on plugins section of ModPlug Player. After then releasing the first final version and adding oscilloscope display, I am planning to support VST effect plugins instead of MPP's internal DSP section.
Perhaps I may replace DSP section with VST effect selection section (its name will still remain DSP) and multiple DSP plugins will be able to be selected and their order will be able to be specified. I may also replace one button of ModPlug Player with Equalizer button (maybe either Delete, Clear or Remove button), and that button will bring the specified VST effect plugin window (such as API 560 Equalizer) to the screen. Eq button specification will be made on the DSP section of "ModPlug Player Setup" window.
I may do these modifications on one of the alpha versions of ModPlug Player as non-functional just for showing how it will be like.

sunshine

I can also convert ModPlug Player's internal DSP to a VST plugin. In that case, I may release it as a standalone VST plugin and may also be used on DAW applications.
The name of the VST plugin may be "ModPlug DSP".

Saga Musix

Quote from: Merlyn6175 on January 10, 2022, 21:54:55
Don't forget to add .C67 file types to the load box . just tested the original Amnesia demos CDFM tracks  and they work. wasn't sure if the Adlib tracks would show on the spectrum analyser but they did.

The player should really be using openmpt::get_supported_extensions() instead of hardcoding an extension list that will change with practically every major release of libopenmpt.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

sunshine

I have updated it on git repository now. Thanks Saga Musix.

sunshine

Current file extension list is as like on the screenshot below. I added mod.* and nst.* at the end of the all modules and protracker modules as hardcoded (for Amiga file naming convention compatibility), and all the other extensions (including *.mod and *.nst) come from openmpt::get_supported_extensions().

sunshine

ModPlug Player 2 Alpha 2 can be downloaded from https://sourceforge.net/projects/modplugplayer/files/
Changelog:
* Default colors are now loaded correctly on the first run.
* Sound output device can now be selected, but MPP should be restarted to use the selected sound device (it will be immediate on one of the next alpha versions)
* Sound interruption problem was solved.
* File extensions come from libopenmpt on file opening dialog.
* About window was arranged.
* Version info window was added, it can be accessed from about window.

Saga Musix

Out of curiosity, why do you host the binaries on Sourceforge? I know their reputation is better these days than 10 years ago (when their owners did shady things with the site), but you can just create a tagged release on GitHub instead and attach the binaries there. This has the advantage that the binaries are clearly linked to a specific git commit.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

sunshine

#67
I have never used GitHub's release system. Thanks for the information Saga Musix. I will use this system from now on.

Saga Musix

Being able to upload a release on GitHub is completely independent of what you describe, nevertheless the whole process can be improved by using git correctly: From the looks of it you are currently manually mixing & matching the latest versions of the various git repositories, which is error-prone and makes it difficult to know what exactly is being used to build the final product. It would make much more sense if you used git submodules to vendor the various git repositories into the main repository. That way, you can specify exactly which version of which git repository is used. When you're ready to make a release, you'd create a git tag for that version, and you can then create a release on GitHub based on that tag. There's no need for all the aforementioned submodules stuff for that to work (you can attach any binaries you like, no matter if they are buildable with that git repository on its own), but it is very helpful because it allows everything to be built automatically.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

sunshine

I don't know how git submodule system works, so firstly I need to understand git submodules system. Step by step the automation can be done as you mentioned, but firstly I need to understand how git submodule system works, and then I will modify the project to make it compatible with git submodules system.
Thanks again for the information Saga Musix. I added binaries to the release manually on GitHub now, but I will do the configurations you mentioned. We can discuss it later when I understand the things you mentioned. I need to read some documents to understand it.

sunshine

I learned git submodules, and applied submodules mechanism to ModPlug Player main project. When I change somethings on submodules, before pushing the main project, git client (I use SourceTree) asks to commit and push the changes on submodules, too. It is very handy system, thanks again for your recommendation Saga Musix.
It is also easier to prepare packages such as Debian package, and much easier for a user to clone and build the source codes.
By the way, I completed CMake build script of ModPlug Player. I will remove qmake based build scripts in the future.
I am learning preparation of github workflows.
Alpha 3 version of ModPlug Player 2 will be built automatically by GitHub workflow system, so ModPlug Player will be more open and transparent in terms of security; therefore, nobody will have to trust my computer anymore.
I am also preparing a MSYS2 package for portaudiocpp, so ModPlug Player will be able to be compiled without compiling any other library.
On all the operating systems, required packages will be installed and ModPlug Player will be cloned from the git repository (without cloning any other components of it, they are cloned automatically by git's submodules mechanism), after then installing required packages, ModPlug Player will be able to be compiled just using cmake's build command.
GitHub's workflows also support homebrew (for macOS) and MSYS2 (for Windows), so all builds (for Linux, Windows and macOS) will be done by just one workflow yml file.

sunshine

From now on, ModPlug Player will be built automatically with GitHub workflows. Currently I prepared workflows for Windows and macOS versions, but I will also prepare workflows for Debian and Ubuntu packages.
Windows binaries are 3 versions now, that are UCRT64, MinGW64 and CLANG64 versions. I will also add workflows for Microsoft Visual Studio version binaries in the future. Since Microsoft released a package manager called vcpkg, it is possible to add Visual Studio support with package management.

You can download auto-generated binaries from GitHub by visiting https://github.com/ModPlugPlayer/ModPlugPlayer/releases/
Alpha2 version was also rebuilt with GitHub workflows automatically.

macOS version now has a better DMG package, it is also generated by GitHub workflows. Its screenshot is below.
I am also planning to add workflow for installer of Windows version in the future.

sunshine

#72
ModPlug Player 2 Alpha 3 release can be downloaded from https://github.com/ModPlugPlayer/ModPlugPlayer/releases/tag/Alpha3

Changelog:
Bug that causes deletion of the dropped file on the player was fixed.
Dragging by titlebar works.
Always on top, snap to viewport and keep in viewport features work.
Snapping threshold for snap to viewport feature can be modified on the setup window.
Long filenames that don't fit to the titlebar are shortened with three dots on player window's title bar.

Merlyn6175

Yes, a bit more usable on a PC now I can move the window round the screen.

I had my HDMI sound bar off at first which caused the player to crash when trying to play anything, once I switched it on all was fine. not sure of the cause. PC audio work as normal through the TV with the HDMI sound bar off.

these a little bug in the time, once a track loops to the start it jumps between 2 time. sometimes it fixes itself after a few seconds.

I think once the Playlist is added and I can switch interpolation off and change to 24bit 9600Hz it will be the only player I will use or need.

Keep up the good work.

sunshine

If the player crashes when clicking the play button, please change sound output from the setup window, and set the sound output you want. I will fix this bug on the next alpha version.

Previous versions could be moved from anywhere except for titlebar, buttons and sliders. I didn't want to fix this bug because the solution would make player don't snap to the edges of the screen. This version has full implementation of snapping to the viewport and keeping inside the viewport (with full customizations).

Before playlist there are so many things to do but if playlist is more important than the other features, I can implement playlist feature. If everybody wants playlist firstly, please write here, so I will implement it as soon as possible.