foo_vis_projectM icon indicating copy to clipboard operation
foo_vis_projectM copied to clipboard

projectM v4.0.0

Open redactedscribe opened this issue 2 years ago • 11 comments

https://github.com/projectM-visualizer/projectm/releases

Target Audience: Developers

This release is mainly aimed at developers integrating projectM into their applications. The main focus of this major release was to provide a new, stable API based on pure C functions, which will make it easier to create bindings for other languages as well as using it as a shared library. We also fixed many crashes and improved the overall visual quality and compatibility of presets to some degree.

The API will remain stable and forward-compatible until the next major release. Any changes made will only include new functions, so the ABI will always stay forward-compatible. This means an application built and linked against a specific 4.x version will build and run with any libprojectM with a major version of 4 and the same or higher minor version. If an application uses libprojectM as a shared library, no relinking is required at all - simply swap the library file with the new one and it should work.

redactedscribe avatar Jan 08 '24 08:01 redactedscribe

libprojectM 4.1.1 is out, with massive visual upgrades. Now is a good time to update!

kblaschke avatar May 03 '24 17:05 kblaschke

@djdron hello? Will projectM for Foobar2000 ever be updated or can we consider this project dead?

Kappa971 avatar Oct 02 '24 13:10 Kappa971

@djdron hello? Will projectM for Foobar2000 ever be updated or can we consider this project dead?

Hello @Kappa971 , it will be released after SDL2 frontend repaired & steam version released.

djdron avatar Oct 05 '24 20:10 djdron

Hello @Kappa971 , it will be released after SDL2 frontend repaired & steam version released.

Actually, there's no need to wait for the SDL2 frontend to be done. It's a completely separate project now and has no effect on the Foobar2000 plug-in, except for using it as a reference. libprojectM has a stable API since 4.0.

The only reason to wait a little more might be the additonal render-to-texture functionality we'll be releasing in v4.2 of libprojectM if that's easier than directly rendering to a native surface. It's already in master, so you could easily start using it already if you don't want to wait for the release.

kblaschke avatar Oct 07 '24 10:10 kblaschke

@kblaschke I need a good reference how to use new API)

djdron avatar Oct 10 '24 06:10 djdron

There are plenty of resources, not perfect, but given how simple the API is, it should suffice:

Most API functions are getter/setter functions replacing the previous settings struct.

If there's still something unclear, e.g. regarding OpenGL, just DM me on Discord, I'll surely be able to help.

kblaschke avatar Oct 10 '24 09:10 kblaschke

I'm using foobar2000 for Mac.

Foobar version: 2.24.1 Mac OS: 15.2, Apple Silicon M1

Unfortunately https://www.foobar2000.org/components/view/foo_vis_projectM doesn't work. I get the following error when I try to install this component:

Component installation error: This component does not support Mac OS.

According to https://github.com/projectM-visualizer/projectm?tab=readme-ov-file#macos it should also work on Mac OS.

nimo23 avatar Feb 01 '25 10:02 nimo23

The projectM library definitely works on macOS. I don't think that the foobar2000 projectM plug-in was ever built or released for macOS (I guess djdron is in the same boat as me and doesn't own a Mac to build and test it on), so someone else would possibly have to take this task. It's basically the same situation we have with projectM' frontends, that there's currently no one who can test, package and release it on macOS. Apple is really a bad vendor in that regard - you can't emulate or virtualize their stuff, neither easily nor legally. And you need a paid subscription to their developer program as well.

kblaschke avatar Feb 01 '25 16:02 kblaschke

I'm a Mac with M chip owner, but I have no time to re-build this plugin even for windows with newer projectM version. Because I added some features which was not exist in original projectM like reading visualizations files/textures from zip archive. And now after huge projectM refactoring/upgrade I need to re-implement this. Also all ARM binaries for MacOS with M chips must be signed (notarized). So I see only plugins compiled by foobar2000 author are exist (signed). Unsigned binaries only for x86-64 may be launched in latest MacOS'es.

djdron avatar Feb 01 '25 16:02 djdron

Because I added some features which was not exist in original projectM like reading visualizations files/textures from zip archive.

How about creating a new feature request or PR in https://github.com/projectm-visualizer to support your use case? After that, rebuilding would be easier and more appealing for you.

nimo23 avatar Feb 01 '25 20:02 nimo23

That's actually planned, but we didn't create a ticket for it yet.

I've done that now, but no ETA on when this will be released. I'll see if I can also squeeze it into the 4.2 release though.

https://github.com/projectM-visualizer/projectm/issues/870

kblaschke avatar Feb 04 '25 02:02 kblaschke