First few empty pages, standalone app config docs added.

Kai Blaschke 2021-11-16 20:39:09 +01:00
parent 8b052bbebf
commit 2b34a5ce47
No known key found for this signature in database
GPG Key ID: B014B6811527389F
7 changed files with 399 additions and 1 deletions

30
Home.md

@ -1,8 +1,35 @@
Welcome to the projectm wiki!
[![Build Status](https://travis-ci.org/projectM-visualizer/projectm.svg?branch=master)](https://travis-ci.org/projectM-visualizer/projectm)
![Logo](https://github.com/projectM-visualizer/projectm/raw/master/web/logo.png)
## projectM Wiki
Welcome to the projectM documentation Wiki!
Here you'll find important resources about both using and developing for and with projectM.
The Wiki is organized into three main sections:
- For projectM users, anyone using the official projectM applications released on different platforms.
- For developers using/integrating projectM in their applications.
- For developers interested in supporting projectM's core development.
## projectM user manuals
If you're using one of the "official" projectM applications maintained by this project, you can find documentation for
those applications on the following pages. If you're unsure whether your application is actually affiliated with us,
please check the [applications list](projectm-applications) first. Only those listed as "provided by the projectM
team" are covered here and can be supported by the maintainers. For all other applications, please refer to their
respective project pages or contact their authors directly for support inquiries.
- [Standalone and Steam applications](user-manual-standalone)
- [EyeTune (Windows Store)](user-manual-eyetune)
- [Music.app Plug-In](user-manual-musicapp)
Quick access to the hotkeys:
# Keyboard Controls:
* Up: Increase beat sensitivity (max 5)
* Down: Decrease beat sensitivity (min 0)
* Y: Toggle shuffle enabled
@ -22,6 +49,7 @@ Quick access to the hotkeys:
* F5: Show FPS (if supported)
#### Only ProjectM SDL:
* Cmd/Ctrl-Q: *q*uit
* Cmd/Ctrl-I: select next audio *i*nput device
* Cmd/Ctrl-S: *s*tretch monitors

16
files/config.inp Normal file

@ -0,0 +1,16 @@
Aspect Correction = 1
FPS = 60
Hard Cut Sensitivity = 1
Menu Font = /PATH/TO/PROJECTM/fonts/VeraMono.ttf
Mesh X = 192
Mesh Y = 144
Preset Duration = 60
Preset Path = /PATH/TO/PROJECTM/presets
Shuffle Enabled = 0
Smooth Preset Duration = 40
Smooth Transition Duration = 3
Soft Cut Ratings Enabled = 0
Texture Size = 1024
Title Font = /PATH/TO/PROJECTM/fonts/Vera.ttf
Window Height = 800
Window Width = 800

BIN
images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

54
projectm-applications.md Normal file

@ -0,0 +1,54 @@
# Applications using projectM
This page contains a (non-exhaustive) list of applications either directly being developed by the core projectM team or
provided by third-party developers.
**Important:** Please note that the core projectM developers can only provide support for applications that are part of
the main project. We cannot give you any advice or technical support for third-party apps.
## Applications provided by the projectM team
These applications are developed by the core projectM team as open-source projects and supported via the gitHub project
pages:
- [Standalone Application](https://github.com/projectM-visualizer/projectm/releases)
Available for Windows, macOS and Linux. Requires the latest
[Microsoft Visual C++ redistributable package](https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist)
to run on Windows.
- [Steam Release](https://store.steampowered.com/app/1358800/projectM_Music_Visualizer/)
Available for Windows, macOS and Linux. It's free and doesn't require Steam to be running. This app is basically the
same as the standalone version.
- [Standalone Qt Application](https://github.com/projectM-visualizer/projectm/releases)
An alternative user interface built with Qt that has a preset playlist manager, preset rating support and a
configuration dialog. Currently only works on Linux using PulseAudio for retrieving audio data.
- [EyeTune](https://www.microsoft.com/store/apps/9NDCVH0VCWJN) - For Xbox, Windows tablets and mobile devices, also
works on desktops. Due to UWP limitations, this app doesn't allow to add/change presets and only supports microphone
audio recording.
- [Music.app Plugin](https://github.com/projectM-visualizer/projectm/releases/)
A visualization plug-in for the macOS Music app.
## Applications by third-party developers
This is a list of applications, players and plug-ins using projectM for visualizing audio content, either as a
standalone visualizer or part of a larger application. All these sources are maintained by people not (directly)
involved in projectM core development and some of these apps might even be closed source or commercial products.
- [Brew](https://formulae.brew.sh/formula/projectm)
Homebrew package for macOS. Contains the standalone version above. Also comes with the development files.
- [Android Standalone App](https://play.google.com/store/apps/details?id=com.psperl.prjM)
Available in the Google Play Store, this app can visualize audio played on most modern Android devices. It is
available as an ad-supported free version, an ad-free paid versions and there is a
special [Android TV app](https://play.google.com/store/apps/details?id=com.psperl.projectMTV) as well. The apps are
being developed and published by one of the original projectM authors, Peter Sperl.
- [VLC Media Player](https://www.videolan.org/vlc/)
Open-source media player for many formats and devices. Uses projectM as a visualization plug-in (not included on all
platforms though).
- [Kodi](https://kodi.tv/)
On most platforms, Kodi comes with a projectM plug-in in the official add-on repository.
- [Silverjuke](https://www.silverjuke.net/)
An open-source jukebox application that uses projectM for added visual appeal, but hasn't seen much activity in the
last years.
- [Clementine Music Player](https://www.clementine-player.org/)
Qt-based cross-platform music player inspired by Amarok 1.4 using projectM to visualize played audio.
If you know of any other application using projectM that's missing in the list, feel free to add it.

@ -0,0 +1,300 @@
# projectM user manual for standalone applications
This manual covers the following standalone applications developed by the projectM core team:
- The SDL-based, UI-less application available on the GitHub releases page.
- The Steam version of projectM, which is identical to the above.
- The Qt-based frontend for Linux.
## Installing
### Steam
To install the Steam version, simply add
the [app](https://store.steampowered.com/app/1358800/projectM_Music_Visualizer/) to your Steam account and install/run
it. Editing the configuration is identical to the other releases.
### Windows Standalone
Download the latest available release ZIP (e.g. `projectM-sdl-x64-win.zip`) from the projectM
[Releases page](https://github.com/projectM-visualizer/projectm/releases). Unpack the archive somewhere and
run `projectMSDL.exe` from the main directory.
### macOS Standalone
Download the latest available installer PKG (e.g. `projectM-macOS.pkg`) from the projectM
[Releases page](https://github.com/projectM-visualizer/projectm/releases). Run it in Finder to install projectM on your
Mac.
Note: Future releases will use DMG files and the more convenient drag and drop installation.
### Linux Standalone
Currently, projectM does not provide a binary Linux version on the Releases page due to the heterogeneous Linux
environment. You can either look in your distribution's package manager if there is a projectM package available for
installation or try to [compile it yourself](https://github.com/projectM-visualizer/projectm/blob/master/BUILDING.md).
The projectM team is currently evaluating options to provide a binary version that works on most recent Linux (x86_64)
variants.
### Linux Qt UI
The Qt UI might also be available in your distribution package manager, but as it is an optional component, you'll
mostly be out of luck. If you want to give it a try, you'll need
to [compile it yourself](https://github.com/projectM-visualizer/projectm/blob/master/BUILDING.md).
The projectM team is working on bringing this UI to other platforms as well as providing ready-to-use releases.
## Configuring projectM
The Qt UI comes with a configuration dialog that lets you edit and save the projectM configuration. While this is the
easiest way, this application is probably not available to you. For all other releases, you need to change the
configuration file.
**Important note:** Be aware that the projectM applications will overwrite the file and during this process remove any
comments and emtpy lines from the file. If you want to switch between different settings, it's better to keep multiple
copies of the file and replace the `config.inp` file before starting projectM.
### Windows
On Windows, you will find projectM's configuration file ` config.inp` in the following locations:
- Past/current releases (up to 3.x): `%USERDIR%\.projectM\ `
- Future releases (4.0+): `%APPDATA%\projectM\ `
Chances are high neither the directory nor the `config.inp` file exist. In this case, create the directory and
copy [this template](/files/config.inp) into it.
### Linux and macOS
On Linux and macOS, the configuration file will be located in each user's home directory in a hidden
directory `~/.projectM`. If this directory doesn't exist, you can create it with your favorite file manager or using the
following terminal command:
```shell
mkdir ~/.projectM
```
If the configuration file is not already there, you can download and copy [this template](/files/config.inp) into it.
### Configuration reference
The configuration file uses a very simple "Name = Value" syntax. Most parameter names contain spaces, so this is the
valid syntax:
```
Preset Path = /usr/share/projectM/presets
```
Comments can be placed in separate lines or after any setting using the hash `#` character:
```
Mesh X = 244 # Per-pixel mesh horizontal resolution
# Another comment
```
If "Value" says "Boolean", a (case-insensitive) value of `0`, `N`, `NO`, `F`, `FALSE` or `NONE` is interpreted as "not
set" or "disabled". Any other value, _including an empty value_, is considered as "set" or "enabled".
#### Aspect Correction
**Value:** Boolean
**Default:** True
**Example:** `Aspect Correction = yes`
Enabled aspect correction in presets that support it. This is generally used to make shapes not appear stretched, e.g.
circles or squares not being squished in one direction.
#### Beat Sensitivity
**Value:** Any decimal number >= 0.0
**Default:** 1.0
**Example:** `Beat Sensitivity = 0.8`
#### Easter Egg Parameter
**Value:** Any decimal number >= 0.0
**Default:** 0.0
**Example:** `Easter Egg Parameter = 1`
Being the most mystic and opaque parameter in projectM, this value will be fed as "sigma" or "standard deviation" value
into a gaussian-distributed random number generator that determines (and randomizes) the actual display time of a preset
between 1 and 60 seconds. The "mean" value of the function is the `Preset Duration` documented below.
If in doubt, leave it at 0.
To put it in simple words: If the easter egg parameter is 0.0, the random number generator will always return the value
preset duration. For any higher value, it flattens the distribution curve, so the actual duration will always be less
than the set duration.
If interested, you can read more about
[Normal Distribution on Wikipedia](https://en.wikipedia.org/wiki/Normal_distribution).
#### FPS
**Value:** Any integer number >= 1
**Default:** 35
**Example:** `FPS = 60`
Sets the target/maximum FPS value projectM should render at. The real FPS may be lower, either because rendering isn't
fast enough to reach the requested framerate or due to vertical syncing.
#### Fullscreen
**Value:** Boolean
**Default:** False
**Example:** `Fullscreen = yes`
If true, the application will start in fullscreen mode. If false, it is displayed as a resizable window.
This setting might have no effect if the OS or application doesn't support either windowed or fullscreen modes.
#### Hard Cuts Enabled
**Value:** Boolean
**Default:** False
**Example:** `Hard Cuts Enabled = yes`
A hard cut is a beat-induced immediate transition to the next preset that might happen before the preset display
duration is reached. Also see `Hard Cut Duration` and `Hard Cut Sensitivity`to fine-tune the behaviour.
#### Hard Cut Duration
**Value:** Any decimal number >= 0.0
**Default:** 60.0
**Example:** `Hard Cut Duration = 10.5`
Minimum number of seconds before a "hard cut" is performed. Only used if hard cuts are enabled.
#### Hard Cut Sensitivity
**Value:** Any decimal number >= 0.0
**Default:** 1.0
**Example:** `Hard Cut Sensitivity = 0.8`
Beat sensitivity value to perform a "hard cut". It will be performed only after the number of seconds set
in `Hard Cut Duration` have passed. Only used if hard cuts are enabled.
#### Menu Font
**Value:** Path to a TTF file
**Default:** OS-dependent path, VeraMono.ttf
**Example:** `Menu Font = /usr/share/projectM/fonts/VeraMono.ttf`
TrueType font used for rendering the built-in on-screen menu.
Menu rendering with custom fonts is currently not implemented in projectM. The setting is ignored.
#### Mesh X
**Value:** Any integer number >= 1
**Default:** 32
**Example:** `Mesh X = 192`
Horizontal resolution of the per-pixel equation drawing grid.
This grid basically splits the rendering area into this number of columns and each grid field is then calculated and
drawn individually. Setting the value too high will drastically decrease rendering performance.
This setting does _not_ affect the actual rendering resolution.
#### Mesh Y
**Value:** Any integer number >= 1
**Default:** 24
**Example:** `Mesh X = 144`
Vertical resolution of the per-pixel equation drawing grid.
This grid basically splits the rendering area into this number of rows and each grid field is then calculated and drawn
individually. Setting the value too high will drastically decrease rendering performance.
This setting does _not_ affect the actual rendering resolution.
#### Preset Duration
**Value:** Any decimal number >= 1.0
**Default:** 15.0
**Example:** `Preset Duration = 60.0`
The time in seconds a presets should be displayed before switching automatically to the next in the playlist.
In the current version, the maximum display time is 60 seconds, no matter how high this value is set to. This might
change in future releases, removing the upper limit.
#### Preset Path
**Value:** Path to the projectM presets
**Default:** OS-dependent path, `/usr/local/share/projectM/presets` on most Linux installations.
**Example:** `Preset Path = C:\Users\Administrator\Documents\projectM Presets`
The given path is scanned recursively for both presets and textures.
Having too many files under this path will increase startup time. Also make sure not to place too many or large images
under this path as projectM currently loads all images into memory on startup, which can consume large amounts of memory
in addition to long load times.
#### Shuffle Enabled
**Value:** Boolean
**Default:** True
**Example:** `Shuffle Enabled = NO`
If set to a true value, projectM will choose the next preset randomly from the playlist instead of skipping to the next
item in the list.
#### Smooth Preset Duration
**Value:** Any decimal number >= 1.0
**Default:** 10.0
**Example:** `Smooth Preset Duration = 0.5`
Time it takes to smoothly blend between two presets on soft cuts.
**Note:** Was named `Smooth Transition Duration` in earlier versions.
#### Soft Cut Ratings Enabled
**Value:** Boolean
**Default:** False
**Example:** `Soft Cut Ratings Enabled = 1`
If enabled and shuffle is on, preset ratings are used to prefer highly rated presets and display low rated presets ledd
frequently. Only has an effect if the integrating application supports preset ratings.
#### Texture Size
**Value:** Any integer number >= 1 and a power of 2
**Default:** 512
**Example:** `Texture Size = 2048`
The size of the internal texture projectM renders to.
**Note:** This setting is currently not used as projectM currently renders directly into the current OpenGL window,
using the window size.
#### Title Font
**Value:** Path to a TTF file
**Default:** OS-dependent path, Vera.ttf
**Example:** `Menu Font = /usr/share/projectM/fonts/Vera.ttf`
TrueType font used for rendering the song title on screen.
Title rendering is currently not implemented in projectM. The setting is ignored.
#### Window Height
**Value:** Any integer number >= 1
**Default:** 512
**Example:** `Window Height = 1080`
Initial height of the projectM window, including title bar and borders.
#### Window Width
**Value:** Any integer number >= 1
**Default:** 512
**Example:** `Window Width = 1920`
Initial width of the projectM window, including borders.