You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fixes issue #130
Adds functionality of writing a rendered frame to file
as requested by the issue #130.
Keyhandler.cpp has been updated to handle the keydown of 'd',
which triggers writeNextFrameToFile to be set to true, which means
at the end of Renderer::FinishPass1 we write the texture contents to file.
Renderer::debugWriteMainTextureToFile() const contains the functionality
of writing the contents of the main texture.
* Addition to commit that fixes#130
Safe file write, making sure we don't overflow while creating
the filename. If c++20 features was enabled, this could
look so, so much better.
* Added keybinding to README doc
* Formatting
Fixed snake_case to camelCase
Changed delete to delete[]
Turned magic constant to a named variable
## projectM - The most advanced open-source music visualizer
@@ -12,54 +11,67 @@ projectM is an open-source project that reimplements the esteemed [Winamp Milkdr
12
11
Its purpose in life is to read an audio input and to produce mesmerizing visuals, detecting tempo, and rendering advanced equations into a limitless array of user-contributed visualizations.
13
12
14
13
### Available For
14
+
15
15
##### Windows
16
-
*[Standalone](https://github.com/projectM-visualizer/projectm/releases) ([latest build](https://ci.appveyor.com/project/revmischa/projectm/build/artifacts)) - (Requires the latest [Visual C++ redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads))
-[Standalone](https://github.com/projectM-visualizer/projectm/releases) ([latest build](https://ci.appveyor.com/project/revmischa/projectm/build/artifacts)) - (Requires the latest [Visual C++ redistributable](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads))
*[Qt5](https://www.qt.io/)-based [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) and JACK desktop apps in [source code](https://github.com/projectM-visualizer/projectm/)
-[Qt5](https://www.qt.io/)-based [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) and JACK desktop apps in [source code](https://github.com/projectM-visualizer/projectm/)
The preset files define the visualizations via pixel shaders and Milkdrop-style equations and parameters. Included with projectM are the bltc201, Milkdrop 1 and 2, projectM, tryptonaut and yin collections. You can grab these presets [here](http://spiegelmc.com/pub/projectm_presets.zip).
45
58
46
59
You can also download an enormous 41,000 preset pack of presets [here](https://mischa.lol/projectM/presets_community.zip) (123MB zipped).
* N or P: next or previous preset (hard transition)
94
-
* Shift-N or Shift-P: next or previous preset (soft transition)
95
-
* L: lock current preset
96
-
97
-
* H or F1: show help (if supported)
98
-
* M: Open preset navigation menu (if supported)
99
-
* F3: show preset (if supported)
100
-
* F4: show stats (if supported)
101
-
* F5: show FPS (if supported)
104
+
105
+
- Up: increase beat sensitivity (max 5)
106
+
- Down: decrease beat sensitivity (min 0)
107
+
- Y: toggle shuffle enabled
108
+
- R: jump to random preset
109
+
- N or P: next or previous preset (hard transition)
110
+
- Shift-N or Shift-P: next or previous preset (soft transition)
111
+
- L: lock current preset
112
+
- D: Save current frame to file
113
+
114
+
- H or F1: show help (if supported)
115
+
- M: Open preset navigation menu (if supported)
116
+
- F3: show preset (if supported)
117
+
- F4: show stats (if supported)
118
+
- F5: show FPS (if supported)
102
119
103
120
#### Only ProjectM SDL:
104
-
* Cmd/Ctrl-Q: *q*uit
105
-
* Cmd/Ctrl-I: select next audio *i*nput device
106
-
* Cmd/Ctrl-S: *s*tretch monitors
107
-
* Cmd/Ctrl-M: change *m*onitor
108
-
* Cmd/Ctrl-F: toggle *f*ull screen
109
-
* Mouse Scroll Up / Down: next or previous preset (hard transition)
110
-
* Return: search for preset (RETURN or ESCAPE to exit search)
111
-
* Space: lock current preset
112
121
122
+
- Cmd/Ctrl-Q: *q*uit
123
+
- Cmd/Ctrl-I: select next audio *i*nput device
124
+
- Cmd/Ctrl-S: *s*tretch monitors
125
+
- Cmd/Ctrl-M: change *m*onitor
126
+
- Cmd/Ctrl-F: toggle *f*ull screen
127
+
- Mouse Scroll Up / Down: next or previous preset (hard transition)
128
+
- Return: search for preset (RETURN or ESCAPE to exit search)
129
+
- Space: lock current preset
113
130
114
131
# Using the library
132
+
115
133
At its core projectM is a library, [libprojectM](src/libprojectM). This library is responsible for parsing presets, analyzing audio PCM data with beat detection and FFT, applying the preset to the audio feature data and rendering the resulting output with openGL. It can render to an OpenGL context or a texture.
116
134
117
135
To look at a simple example way of using the library see the [libSDL2 sample code](src/projectM-sdl/projectM_SDL_main.cpp).
118
136
119
137
There are many other applications that make use of libprojectM and that can be found in the [src](src/) directory.
120
138
121
-
***
139
+
---
122
140
123
141
# Todo
124
-
* Steal cool stuff from the recently-released Milkdrop source.
125
-
* Finish [emscripten support](https://github.com/projectM-visualizer/projectm/pull/307) for building to wasm/webGL for the web.
126
-
* Update the [various implementations using libprojectM](src).
127
-
* Update downstream projects with new versions.
128
142
129
-
***
143
+
- Steal cool stuff from the recently-released Milkdrop source.
144
+
- Finish [emscripten support](https://github.com/projectM-visualizer/projectm/pull/307) for building to wasm/webGL for the web.
145
+
- Update the [various implementations using libprojectM](src).
146
+
- Update downstream projects with new versions.
147
+
148
+
---
130
149
131
150
## Help
151
+
132
152
Report issues on [GitHub](https://github.com/projectM-visualizer/projectm/issues/new)
133
153
134
154
[Chat with us on Discord.](https://discord.gg/tpEuywB).
135
155
136
156
If you would like to help improve this project, either with documentation, code, porting, hardware or anything else please let us know! We gladly accept pull requests and issues.
137
157
138
158
## Maintainers
159
+
139
160
If you maintain packages of libprojectM, we are happy to work with you! Please note well:
140
-
* The main focus of this project is libprojectM. It's a library that only really depends on OpenGL. The other applications are more like examples and demos.
141
-
* Most of the applications (e.g. `src/projectM-*`) are likely outdated and of less utility than the core library. If you desire to use them or depend on them, please file an issue so we can help update them.
142
-
* The "canonical" application for actually viewing the visualizations is now projectM-sdl, based on libSDL2 because it supports audio input and is completely cross-platform.
143
-
* This is an open source project! If you don't like something, feel free to contribute improvements!
144
-
* Yes, you are looking at the official version. This is not a fork.
161
+
162
+
- The main focus of this project is libprojectM. It's a library that only really depends on OpenGL. The other applications are more like examples and demos.
163
+
- Most of the applications (e.g. `src/projectM-*`) are likely outdated and of less utility than the core library. If you desire to use them or depend on them, please file an issue so we can help update them.
164
+
- The "canonical" application for actually viewing the visualizations is now projectM-sdl, based on libSDL2 because it supports audio input and is completely cross-platform.
165
+
- This is an open source project! If you don't like something, feel free to contribute improvements!
166
+
- Yes, you are looking at the official version. This is not a fork.
0 commit comments