Effects (KFX) - xIceArcher/lyricsheets GitHub Wiki

Effects (KFX)

Effects provide a powerful way to apply complex, custom karaoke animations (KFX) to songs using Python scripts, going beyond the default simple fill effect.

Loading Effects

Effects are defined in separate Python files and need to be loaded before they can be used.

Import Modifier

  • Arguments: -, Filename = Description: Loads all effect functions defined within the specified Python file (.py). The script looks for this file relative to the location of the .ass file being processed by default. Always uses - for the line range.
  • Usage: You only need to import a file once per .ass file processing run. Once imported, any effect within that file can be used by any KFX modifier later in the same .ass file. Example:
{\lyricsmodify(import,-,chase)}CHASE! 

(Loads effects from the file chase.py)

Applying Effects

KFX Modifier

  • Arguments: -, Effect Name
  • Description: Applies the specified effect function to the current song. The Effect Name must correspond to an effect function either built-in (located in lyricsheets/effects/) or loaded via an Import modifier earlier in the file. Always uses - for the line range. Example:
Comment: 0,0:38:27.51,0:38:27.51,Song,,0,0,0,,{\lyricsmodify(import,-,chase;kfx,-,chase_effect)}CHASE!

Loads effects from chase.py, then applies the specific effect named chase_effect to the song "CHASE!".

Command-Line Effect Flags

You can also apply effects globally via command-line arguments when running populate_songs.py:

  • --effect <name>: Specifies a default effect (name) to use for all songs processed in the run. This will be overridden if a song has its own KFX modifier.
  • --force-effect <name>: Forces the specified effect (name) to be used for all songs, ignoring any KFX modifiers present in the .ass files.

Writing Custom Effects

WIP

⚠️ **GitHub.com Fallback** ⚠️