This project provides a framework for extending or tweaking a SGO Mistika or Mamba system, and also includes several such extensions. The screenshots might not show all current extensions. They are divided into the following categories:
To get started, run ./install.py
Scripts or programs which can be run manually or at specific intervals to perform any task. You can also show these in the Extras panel in Mistika. Each tool must have its own folder under the Tools directory, and must include a config.xml:
- tool
- alias: The name of the tool
- description: A description of the tool
- executable: The name of the file to run
Scripts or programs which can be run automatically after a successful render, or launch manually on a previously rendered stack (typically an .rnd). Each afterscript must have its own folder under the Afterscripts directory, and must include a config.xml:
- afterscript
- alias: The name of the afterscript
- description: A description of the afterscript
- executable: The name of the file to run
Effect presets made from standard Mistika effects and/or custom footage, fonts, LUTs or even GLSL shaders. If the stack has dependencies, these must be included in the same folder. hyperspeed-dashboard.py will let you install a stack by relinking any dependencies.
Various tweaks that can be enabled or disabled from the dashboard. Each config must have its own folder under the Configs directory, and must include a config.xml:
- config
- alias: The name of the afterscript
- description: A description of the afterscript
- links: One or more files to install on the system
- link
setting the attribute copy="yes" will copy the file instead of linking
- target: The file to be linked/copied
- location: The destination on the system
- link
- manage: Set to true if you need to run a custom script to install, detect or remove the tweak. This must be an excecutable named manage, accepting the following arguments:
- manage install
- manage remove
- manage detect
Various Mistika related links. Stored as xml in the following format:
<?xml version="1.0"?>
<link>
<alias>sgo.es</alias>
<link>
<alias>Support home</alias>
<url>http://support.sgo.es/support/home</url>
</link>
</link>
The modules found in the hyperspeed subfolder are the backbone of the project. These provide classes and functions for Mistika related work. Think of them as an unofficial API. Here is a brief overview. For a complete list, please look at the source code.
A dictionary of all the settings in .mistikarc
Mistika or Mamba
Loads a Mistika structure (env, grp, fx etc.) and creates a Stack
object.
Returnes the size (in bytes) of the file.
If file is a render, this holds the project as string
. Else None
.
If file is a render, this holds the horizontal resolution as int
. Else None
.
If file is a render, this holds the horizontal resolution as int
. Else None
.
If file is a render, this holds the JobFrameRate as string
. Else None
.
If file is a render, this holds the render duration (in frames) as int
. Else None
.
This property returns the name of the first (top level) group in the stack. Does not work if there are multiple groups on the same level.
A list of any tags, specified by #
in the Stack.groupname
.
The Stack.groupname
with any tags stripped away, or the name of the file, if no groupname was found.
This property returns the first (top level) comment attribute in a stack.
Returns a full list of file dependencies for a stack, as Dependency
objects.
Get the dependency, one at the time. progress_callback let's you monitor the progress monitor the progress from a custom function progress_callback(float)
This function goes through all missing dependencies and looks for a match in the folder of the stack (and subfolders). Will overwrite the stack, but hides the original (a . is prepended to the file name). Fonts cannot be relinked, but the module will try to copy fonts file to the systems font folder, hyperspeed.mistika.fonts_folder
One of the following types:
- dat
- glsl
- lut
- highres
- lowres
- audio
- lnk
- font
Identifier of the dependency. Depending on Dependency.type
, this may or may not be a full path.
The full path of the file.
A list of DependencyFrameRange
objects for the current dependency. If a media item is used multiple times in a stack, this lists all the different frame ranges in use.
Returns the size of the file. If the item is an image sequence, returns the combined size of all the frames in use. If file does not exist, returns None
.
Returns True
if the file(s) exists. If not, False
.