Skip to content
tukkek edited this page Sep 8, 2024 · 16 revisions

This stub-page is a list of ideas for Project M's next-generation visualizer. Every-one with a Git Hub account is able and welcome to edit it!

For now, this page will be used to collect and organize pre-liminar ideas instead of pull-requests or proof-of-concept code.

See the read-me file for more information: https://github.com/projectM-visualizer/visualizer-ng-ideas/blob/master/ReadMe.md

Technical discussion

Engine and architecture

  1. While highly successful on its own merits, Project M has not seen wide-spread adoption as an embedded visualizer in music-players (even open-source ones to which anyone could contribute the integration). Clementine and Straw Berry are two players that have struggled to maintain support for Project M [1] [2]. The stand-alone Steam version is very out-dated [3]. A next-generation Project M should strive to excel where the current project has failed, as integration with popular audio players is the best way to promote the world-class work of any Project M's developers and visualization-artists.
  2. Interactive elements would be an interesting novel feature not seen previously in Project M or Milk Drop. With Java Script, Python and Lua being ubiquitously used as integrated scripting languages, the possibility of turning Project M as a base for creative developers to work from could be an interesting feature to consider. The possibilities range anywhere from live-interactions; mini-games; streaming; to art-exhibits...
  3. Project M is currently written in C++. Rust is the world's most-admired language today [4] and its creator described it as a C++ alternative [5]. As such, it seems that any next-generation of an older C++ project should include a due-diligence discussion and analysis of Rust as its potential new language. Since Rust is both a high-quality and an extremely popular language, it could also help in attracting more programmers to collaborate with development.

[1]: Clementine: Visualizations missing or broken https://github.com/clementine-player/Clementine/issues/7151

[2]: Straw-berry: Reintegrate Project M https://forum.strawberrymusicplayer.org/topic/1286/reintegrate-projectm-visualizer

[3]: Discord message https://discord.com/channels/737206408482914387/737206408948220057/1280712455965642752

[4] 2023 Developer Survey: Programming, scripting, and markup languages https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages.

[5]: Rust: Syntax and features https://en.wikipedia.org/wiki/Rust_(programming_language)#Syntax_and_features

Visualization file format

  1. Use JSON, YAML or another common text-based format for its familiarity, interoperability and support.

Audio analysis

(Currently empty).

User interface

(Currently empty).

Milk Drop compatibility

(Currently empty).

Creative discussion

Visuals and aesthetic

(Currently empty).

Clone this wiki locally