GW LyraBars

CZ | EN The LyraBars project began on July 12, 2026, from a fairly simple need. I create music for the Lyra Elverin project, and I also need to prepare videos for the tracks. These usually consist of a static image of Lyra, an audio track, and animated bars reacting to the sound. Existing tools […]

The LyraBars project began on July 12, 2026, from a fairly simple need. I create music for the Lyra Elverin project, and I also need to prepare videos for the tracks. These usually consist of a static image of Lyra, an audio track, and animated bars reacting to the sound.

Existing tools can, of course, create similar videos. Some are unnecessarily complicated, others are paid, and some do not provide the precise level of control over the result that I wanted. Since I have recently been creating my own smaller applications with the help of artificial intelligence, a natural solution presented itself: build my own tool.

That is how LyraBars was born.

From Simple Bars to a Custom Application

The first assignment was relatively modest. The application was supposed to accept an image and an audio file, render animated frequency bars over the image, and create the resulting video in MP4 format.

I did not want a purely decorative animation driven only by the overall volume. The bars were supposed to react to individual frequency bands, making their movement genuinely connected to the music. I also wanted to be able to adjust their number, dimensions, spacing, sensitivity, smoothing, position, colour, opacity, and glow.

Development was carried out through Codex. I determined the appearance, functions, and behaviour of the application, while Codex gradually created and modified the source code. Meanwhile, ChatGPT helped me organise and refine my ideas and turn them into specific development instructions.

The first working version appeared surprisingly quickly. It could already load an image and music, display a preview of the frequency bars, and use FFmpeg to create the final video. The application received a dark interface with purple accents so that it would visually fit into the family of tools associated with Lyra.

Why LyraBars?

We considered several possible names, including LyraWave, LyraPulse, and LyraSpectrum. In the end, the simple and straightforward LyraBars won.

“Lyra” connects the application to the Lyra Elverin project and the emerging LyraSoftware collection of music-related tools. “Bars” describes exactly where the whole project began: with animated audio bars.

Although the name is closely connected to the original function, the application itself quickly began to grow far beyond those initial boundaries.

The First Real Result

One of the first tests used a widescreen image of Lyra standing behind a DJ console with an orchestra in the background. The bars were placed along the left edge of the image, where they did not cover the main character. We used warm orange and golden shades matching the lighting of the entire scene.

This test demonstrated the main advantage of having a custom application. The visual elements did not have to be a universal template pasted onto every image in exactly the same way. They could be adapted to the particular composition, colours, and mood of the track.

For a calmer orchestral piece, the bars can therefore be subtle, rounded, and slowly shift between golden shades. For electronic music, they can be more prominent, react more quickly, and be accompanied by a purple or blue glow.

Gradual Expansion

Once the basic version was working, more ideas began to appear. It became clear that a simple wav bar tool could gradually turn into a small music visualisation editor.

In addition to traditional bars, we began exploring other types of visualisers, including mirrored bars, a smooth audio waveform, a circular spectrum, a pulsating circle, and particles reacting to the music. Options for colour gradients, shadows, glow, reflections, and different blending modes were added as well.

Text layers became another major topic. The resulting video should not display only the image and visualiser, but also the track title, artist, album, track number, or playback time. Each text layer should have its own font, size, colour, position, shadow, outline, and entrance and exit animations.

The next step was to bring the static image itself to life. One way to achieve this is the so-called Ken Burns effect—a very slow zoom and pan across a still image. The viewer is still looking at a single picture, but it no longer feels completely motionless. With a track several minutes long, the movement must remain very subtle so that an elegant effect does not turn into an eight-minute expedition towards one of the main character’s eyes.

Other possibilities include vignetting, colour tinting, film grain, light rays, bokeh, and small particles. The aim, however, is not to fill the image with everything capable of moving. The effects should support the music and atmosphere rather than compete with them for attention.

Preview and Final Video

One of the technically important aspects of the project is ensuring that the live preview matches the final video. It is not enough for an effect to look correct inside the application window if it shifts position, changes size, or reacts differently to the music after export.

LyraBars therefore needs to use a shared set of rules for both previewing and rendering. The preview may operate at a lower resolution to remain smooth, but positions, proportions, colours, and timing must remain consistent.

The final export is handled by FFmpeg. The result is an MP4 video using H.264 for the picture and AAC for the audio. The length of the video corresponds to the length of the audio track, while the user can select the resolution, frame rate, and output quality.

No Installation Required

LyraBars is being prepared as a portable Windows application. This means users do not need to install Python, FFmpeg, or any other development tools. Everything required is included in the distribution package.

The portable version can simply be downloaded as a ZIP archive, extracted, and launched using the LyraBars.exe file. A traditional installer is not necessary. This is convenient not only for users but also when testing new versions.

Because the application is not signed with a paid code-signing certificate, Windows may display a warning about an unknown publisher when it is launched for the first time. Such a certificate would be unnecessarily expensive for a small free project, so for the time being, LyraBars remains a standard unsigned portable application.

Versions and Updates

As the number of features grew, proper versioning also became necessary. We use a three-number system:

  • the first number represents a major generation of the application,
  • the second represents the addition of new features,
  • the third represents bug fixes.

For example, version 1.2.1 means the first major generation, the second substantial feature update, and the first subsequent bug fix.

The planned update checker will not install anything or overwrite any files automatically. The application will only check whether a newer version is available on the website, display a brief overview of the changes, and provide a link to download the new portable package. LyraBars will remain fully usable without an internet connection.

What I Learned During Development

For me, LyraBars is more than just a tool for creating music videos. It is also a practical experiment in discovering how far someone with a specific idea can go today, even without being a professional programmer.

Artificial intelligence can write a substantial amount of code, but it does not automatically know how the resulting application should feel, who will use it, or which features truly matter. A large part of the work therefore lies in formulating requirements, testing the results, and gradually refining the details.

It is also often true that completing one feature immediately reveals the need for three more. Once the bars work, you want different shapes. Once the colours work, you want them to match the image automatically. Once you create one video, you begin thinking about how to process an entire album in the same way.

Development with Codex is therefore very fast, but certainly not mindless. It is more like a collaboration in which the human determines the direction and continuously makes sure that the originally simple tool does not turn into a nuclear power station control panel.

Where LyraBars Is Heading Next

Future development should focus not only on new effects but also on making the application more convenient for everyday use. Some of the most interesting planned improvements include:

  • automatically reading the track title and other information from the audio file,
  • matching the visualiser colours to the selected image,
  • rendering a short test clip before creating the entire video,
  • saving projects and custom presets,
  • batch creation of videos for an entire album,
  • masks protecting faces or important parts of the image from visual effects,
  • more ways to react to bass, midrange, treble, and individual beats.

Batch processing could be particularly useful for the Lyra Elverin project. Instead of preparing every track manually, it would be possible to select an entire album, assign the images, and let LyraBars gradually create all the videos.

A Project That Began with a Single Question

The entire project essentially began with a single sentence: could we create an application that adds wav bars to a video?

We could.

As with many similar ideas, it soon became clear that creating the basic version was only the beginning. LyraBars is gradually evolving from a simple bar generator into a standalone tool for creating music visualisations.

It is still being developed, it is still changing, and I will probably discover several more times that it desperately needs a feature I did not even know existed the day before. That, however, is exactly what makes projects like this so interesting.