- Notifications
You must be signed in to change notification settings - Fork39
rocket/rocket
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rocket is an intuitive new way of... bah, whatever. It's a sync-tracker, atool for synchronizing music and visuals in demoscene productions. Itconsists of a GUI editor (usingQt5), and an ANSI Clibrary that can either communicate with the editor over a network socket,or play back an exported data-set.
The Rocket editor uses qmake as a build-system abstraction, which can beused to output Makefiles, Microsoft Visual Studio project files or can bebuilt directly from QtCreator. See theqmakedocumentation for details.
Rocket contains an example client calledexample_bass
. This is a simpleOpenGL, SDL 1.2 and BASS audio library application, that demonstrates how touse the Rocket API.
Before compiling the example, you need to make sure you have recentSDL andBASS librariesand includes.
If you're using Microsoft Visual Studio 2013 or above, this should happenautomatically, as these libraries are consumed through NuGet.
The header files and libraries can be installed local to the project bycopying all .lib-files toexamples/lib/
, all .h files toexamples/include/
, and all .dll files toexamples/
.
Once the prerequisites are installed, the example can be compiled either byopening examples.sln and selectingBuild
->Build Solution
from VisualStudio 2008 or 2013, or by doingmake examples/example_bass
on Unix-basedsystems.
Thanks to the excellent work ofmog, there's nowJavaScript support. Have a look atjs/README.md for moreinformation.
Rocket should work out-of-the-box usingdevkitPPC. However, beforecallingsync_create_device
, you should init the FAT filesystem and thenetwork interface, eg. by calling respectivelyfatInitDefault
andif_config
.Make sure DNS is also set up correctly when testing on real hardware.
The Rocket editor is laid out like a music-tracker; tracks (or columns) androws. Each track represents a separate "variable" in the demo, over the entiretime-domain of the demo. Each row represents a specific point in time, andconsists of a set of key frames. The key frames are interpolated over timeaccording to their interpolation modes.
Each key frame has an interpolation mode associated with it, and thatinterpolation mode is valid until the next key frame is reached. The differentinterpolation modes are the following:
- Step : This is the simplest mode, and always returns the key's value.
- Linear : This does a linear interpolation between the current and the nextkey's values.
- Smooth : This interpolates in a smooth fashion, the exact function is whatis usually called "smoothstep". Do not confuse this mode withsplines; this only interpolates smoothly between two differentvalues, it does not try to calculate tangents or any such things.
- Ramp : This is similar to "Linear", but additionally applies anexponentiation of the interpolation factor.
Some of the Rocket editor's features are available through the menu and somekeyboard shortcut. Here's a list of the supported keyboard shortcuts:
Shortcut | Action |
---|---|
Up/Down/Left/Right | Move cursor |
PgUp/PgDn | Move cursor 16 rows up/down |
Home/End | Move cursor to begining/end |
Ctrl+Left/Right | Move track |
Enter | Enter key frame value |
Del | Delete key frame |
i | Enumerate interpolation mode |
k | Toggle row-bookmark |
Alt+PgUp/PgDn | Go to prev/next row-bookmark |
Space | Pause/Resume demo |
Shift+Up/Down/Left/Right | Select |
Ctrl+C | Copy |
Ctrl+V | Paste |
Ctrl+Z | Undo |
Shift+Ctrl+Z | Redo |
Ctrl+B | Bias key frames |
Shift+Ctrl+Up/Down | Quick-bias by +/- 0.1 |
Ctrl+Up/Down | Quick-bias by +/- 1 |
Ctrl+PgUp/PgDn | Quick-bias by +/- 10 |
Shift+Ctrl+PgUp/PgDn | Quick-bias by +/- 100 |
- PBRocket, a PureBasic port of theRocket editor, client and player.
- RocketEditor, analternative editor written in pure C using OpenGL for the GUI.
- GroundControl, an alternativeeditor written in C# using WPF for the GUI.
- RocketNet, a pure .NET implementationof the client and player.
- Moonlander, a Javaimplementation of the client and player, for integration withProcessing.
- pyrocket, a Python 3implementation of the client and player.
- Rust Rocket, a Rustimplementation of the client and player. Crate availablehere.
Please report bugs or other feedback to the Rocket mailing list:rocket-dev@googlegroups.com