Skip to content

About

.NET Avalonia App

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Audio Visualizer

Final personal project for the course PV178 Introduction to C#/.NET on FI MUNI.

Development

The app is a cross-platform Avalonia desktop app and runs natively on Linux, Windows and macOS — no Docker needed.

Prerequisites

  • .NET SDK 9.0 or newer (the project targets net9.0, but it builds with the .NET 10 SDK and rolls forward to newer runtimes)
  • Linux only: an X11 session (or XWayland), fontconfig and a sound system (PipeWire / PulseAudio / ALSA). These are present on any standard desktop distribution.

Build & run

dotnet run                # build and start the app (Debug)
dotnet watch run          # rebuild on file changes
dotnet build              # build only

In VS Code, use the .NET Core Launch (console) debug configuration from .vscode/launch.json.

Publish a standalone build

Self-contained builds bundle the .NET runtime, so the target machine does not need .NET installed. Builds for any platform can be made from any OS:

dotnet publish AudioVisualizer.csproj -c Release -r linux-x64 --self-contained -o publish/linux-x64
dotnet publish AudioVisualizer.csproj -c Release -r win-x64   --self-contained -o publish/win-x64
dotnet publish AudioVisualizer.csproj -c Release -r osx-arm64 --self-contained -o publish/osx-arm64

Other runtime identifiers (e.g. linux-arm64, osx-x64) work too. Run the AudioVisualizer (or AudioVisualizer.exe) executable from the output folder.

Used libs

Future Goals

  • Main goal: a theme that uses AI audio embedding vectors (e.g. from VGGish) as the source of information for rendering video
  • Project mode — the app can open a directory that then acts as a project
    • outputs are saved into the project folder, and the project folder is the default directory for FileInput inputs
    • ability to save a Theme locally within the project instead of system-wide
  • Creating custom themes with custom parameters and associated rendering methods
  • Ability to export only a selected part of the timeline
  • Ability to map a different theme onto different parts of the audio, or to have multiple graphical outputs for the same part (layers + opacity could be nice)
  • Loading and working with multiple audio tracks

Known Issues

  • Video export unsupported
  • Theme module forms are not validated against nonsense inputs
  • Theme Explorer double-click to select works only on the text part of a node
  • Theme Explorer doesn't show a drop location indicator when hovering over an edge of a category (style issue)
  • App displays playing sound icon in the taskbar all the time, even when not playing sound
  • Theme module groups are not used in UI yet

About

.NET Avalonia App

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages