Comprehensive glossary of technical terms, acronyms, and concepts used in Aestra development.
A fixed-size block of audio samples processed together. Smaller buffers reduce latency but increase CPU usage. Typical sizes: 128, 256, 512, or 1024 samples.
Software interface between application and audio hardware. Examples: WASAPI, ASIO, ALSA, CoreAudio.
Low-latency audio driver protocol developed by Steinberg. Widely used in professional audio applications (planned for Aestra).
Number of bits used to represent each audio sample. Common values:
Number of samples in an audio buffer. Affects latency and CPU usage:
Software application for recording, editing, mixing, and producing audio content. Aestra is a DAW.
Audio driver mode with direct hardware access (WASAPI Exclusive). Provides lowest latency but prevents other applications from using audio device.
Delay between input and output in audio processing. Lower is better for real-time performance. Measured in milliseconds (ms).
Programming technique that avoids mutexes/locks in real-time audio threads. Prevents priority inversion and ensures consistent timing.
Single audio value at a specific point in time. At 44100 Hz, there are 44,100 samples per second.
Number of samples per second in digital audio. Common rates:
Audio driver mode that shares hardware access with other applications (WASAPI Shared). Higher latency than Exclusive mode.
Modern audio API for Windows Vista and later. Supports both Exclusive and Shared modes.
Visual representation of audio amplitude over time. Aestra caches waveforms for efficient rendering.
Operation that completes without interruption. Used for lock-free thread communication. Example: std::atomic<bool>.
Ensuring consistent data across CPU caches in multi-threaded programs. Important for audio thread communication.
Tool for automatically formatting C++ code according to a style guide. Aestra uses clang-format for consistent code style.
Cross-platform build system generator. Aestra uses CMake for configuring and building the project.
Indentation for line continuations (wrapped lines). Aestra uses 4 spaces.
C++ template pattern where a derived class passes itself as a template parameter to its base class.
Programming approach that organizes data for cache efficiency. Focuses on data layout and access patterns.
UI paradigm where widgets are recreated each frame. Simplifies state management. Used in AestraUI.
Thread-safe queue implementation without mutexes. Used for command passing between threads in Aestra.
C++11 feature for transferring ownership of resources without copying. Uses std::move().
C++ programming idiom where resource lifetime is tied to object lifetime. Resources released automatically in destructor.
Requirement that operations complete within strict time constraints. Audio processing must be real-time to avoid glitches.
Circular buffer used for lock-free data transfer between threads. Fixed size, overwrites oldest data when full.
C++ object that automatically manages memory. Types:
std::unique_ptr: Exclusive ownershipstd::shared_ptr: Shared ownershipstd::weak_ptr: Non-owning referenceC++ feature for generic programming. Allows functions and classes to work with any type.
Property where code can be safely called from multiple threads without race conditions or data corruption.
AestraUI feature that dynamically adjusts frame rate (1-120 FPS) based on user activity to conserve CPU.
Build configuration (Aestra_CORE_MODE=ON) that excludes private/premium features. Required for public contributors.
Aestra’s AI-powered music generation and production assistant (in private development).
Aestra’s audio engine module responsible for playback, recording, and processing.
Foundation module providing platform abstraction, utilities, and common types.
Platform-specific implementations for Windows, Linux, and macOS.
Custom GPU-accelerated UI framework built specifically for Aestra.
Proprietary features available only in paid version (AI models, advanced effects, licensing).
Build from public repository with core features only. No premium features or private assets.
Visual representation of an audio sample on the timeline. Can be moved, resized, and edited.
Component that manages multiple audio tracks, playback state, and mixing.
UI component containing playback controls (play, pause, stop, record).
Self-contained UI element with its own rendering and event handling. Examples: button, slider, dropdown.
System for positioning UI elements. AestraUI uses hierarchical coordinates (parent-relative).
Optimization technique that skips rendering elements outside visible area. Aestra uses 200px culling padding.
Process of responding to user input (mouse, keyboard). Events propagate through widget hierarchy.
System for automatically positioning and sizing UI elements based on constraints.
Cross-platform graphics API used by AestraUI for GPU-accelerated rendering.
Vertical line indicator showing current playback position on the timeline.
Continuous cycle that updates and draws UI. Aestra’s adaptive FPS adjusts loop frequency.
UI component showing time divisions (bars, beats) on the timeline.
Horizontal representation of time where audio clips are arranged and edited.
Visible portion of a larger scrollable area. Timeline viewport shows part of full project.
Basic UI element (button, slider, label). Building block of the UI system.
Rendering order of overlapping UI elements. Higher z-order renders on top.
Advanced Linux Sound Architecture - Linux audio driver system.
Application Programming Interface - Set of functions and types for using a library or system.
Beats Per Minute - Tempo measurement in music.
Continuous Integration / Continuous Deployment - Automated testing and deployment.
Contributor License Agreement - Legal agreement for code contributions.
Central Processing Unit - Main processor in a computer.
Digital Audio Workstation - Software for audio production.
Dots Per Inch - Display resolution measurement.
Digital Signal Processing - Mathematical manipulation of signals.
Frames Per Second - Refresh rate of visual display.
Graphics Processing Unit - Specialized processor for graphics rendering.
Graphical User Interface - Visual interface for interacting with software.
Integrated Development Environment - Software for code editing and debugging (e.g., Visual Studio).
Input/Output - Data transfer between system and external devices.
Jules’ Utility Class Extensions - C++ framework for audio applications (not used in Aestra, but referenced).
Musical Instrument Digital Interface - Protocol for communicating musical data (planned for Aestra).
Machine Learning - AI technique used in Muse.
Microsoft Visual C++ - Microsoft’s C++ compiler.
Pull Request - Proposed code changes on GitHub.
Resource Acquisition Is Initialization - C++ programming idiom.
Random Access Memory - Computer memory for active data.
Software Development Kit - Tools and libraries for development.
Struct of Arrays - Data layout technique for performance.
User Interface - Visual elements for user interaction.
User Experience - Overall experience of using software.
Virtual Studio Technology - Plugin format for audio effects and instruments (planned for Aestra).
Windows Audio Session API - Modern Windows audio API.
Git workflow defining how branches are created, named, and merged. See Contributing Guide.
Process of examining code changes before merging. Ensures quality and maintainability.
Description of changes in a Git commit. Aestra uses conventional commit format (feat:, fix:, etc.).
Design pattern where dependencies are provided to an object rather than created internally.
Script that runs automatically on Git events (e.g., pre-commit). Aestra uses hooks for code formatting.
Testing multiple components together to verify they work correctly as a system.
Restructuring code without changing its external behavior. Improves maintainability.
Bug that reappears after being fixed, or new bug introduced by changes.
Accumulated cost of suboptimal design decisions. Paid back through refactoring.
Test that verifies a single component in isolation. Helps catch bugs early.
In conversation: