Aether DAW is a Digital Audio Workstation (DAW) written in Rust. It features:
- Desktop GUI built with Iced framework
- Audio synthesis and playback using Phonic and DASP libraries
- Track management with volume control, mute, and solo functions
- Support for WAV file playback and sine wave synthesis
- Real-time audio effects including low-pass filters
This is a Rust workspace with two main components:
Core audio engine library containing:
engine.rs: Main audio engine with playback controlsynth.rs: Audio synthesis (sine wave generation)effects.rs: Audio effects (filters)mixer.rs: Track mixing and managementutils.rs: Utility functions
Desktop GUI application built with Iced:
main.rs: Application entry pointapp.rs: Main application state and logiccomponents/: UI components (track list, transport controls)
- Language: Rust (Edition 2021)
- GUI Framework: Iced 0.12
- Audio Engine: Phonic 0.13 with cpal-output
- DSP: DASP 0.11
The project is configured to build in release mode for optimal performance:
cargo build --releaseThe compiled binary will be located at: ./target/release/aether_ui
The application runs in a cloud environment without physical audio hardware. The audio engine has been modified to support a "dummy mode" that allows the UI to function without actual audio output.
The workflow is configured with special environment variables for headless operation:
XDG_RUNTIME_DIR=/tmp: Required for Wayland/X11 displayWGPU_BACKEND=gl: Forces OpenGL backend for graphicsLIBGL_ALWAYS_SOFTWARE=1: Enables software rendering (no GPU required)
The application runs as a desktop GUI displayed through VNC. Click the VNC preview in Replit to see the application window.
- ALSA warnings in the console are normal and expected (no audio hardware available)
- The message "Running in dummy mode. The UI will work but no audio will be played." confirms the app is running correctly
- All UI controls work, but actual audio playback is simulated
-
Audio Engine Modification: Modified
aether_core/src/engine.rsto support optional audio device initialization. When no audio device is available, the engine runs in "dummy mode" with all UI functionality intact but audio playback simulated. -
System Dependencies Installed:
- Rust stable toolchain
- ALSA libraries (alsa-lib)
- X11 libraries (libX11, libXcursor, libXrandr, libXi)
- Graphics libraries (mesa, vulkan-loader, libglvnd)
- XKB common (libxkbcommon)
- JACK audio (libjack2)
- pkg-config
-
VNC Workflow: Configured to run the GUI application through VNC display with software rendering enabled.
The audio engine was refactored to gracefully handle missing audio devices by:
- Making the
phonic::Playeroptional (Option<phonic::Player>) - Adding a
dummy_modeflag to track initialization state - Wrapping all audio operations in conditional checks
- Providing informative console messages about dummy mode operation
This allows developers to work on UI and track management features without requiring actual audio hardware.
None specified yet.
- The project includes several compiler warnings about unused code (imports, variables, functions) that don't affect functionality
- The UI components include placeholder features (solo, transport controls) that are not fully implemented
- Audio file playback expects WAV files and uses the Phonic library's built-in file source