beamer-macros

Crates.iobeamer-macros
lib.rsbeamer-macros
version0.1.6
created_at2026-01-04 18:12:09.018297+00
updated_at2026-01-08 16:03:08.022578+00
descriptionDerive macros for the Beamer VST3 framework
homepage
repositoryhttps://github.com/helpermedia/beamer
max_upload_size
id2022282
size98,383
Marcel Ritsema (helpermedia)

documentation

README

beamer-macros

Derive macros for the Beamer VST3 framework.

This crate provides procedural macros that generate boilerplate code for plugins:

  • #[derive(Parameters)]: Generates parameter traits, VST3 integration, state persistence, and Default implementation
  • #[derive(HasParameters)]: Generates parameters() and parameters_mut() accessors for Plugin and AudioProcessor types
  • #[derive(EnumParameter)]: Generates enum parameter variants with display names
  • Declarative attributes: Configure parameters with #[parameter(id, name, default, range, kind)]
  • Compile-time validation: ID collision detection and hash generation

Usage

Most users should use the beamer crate instead, which re-exports these macros with the derive feature (enabled by default).

use beamer::prelude::*;
use beamer::{HasParameters, Parameters};

#[derive(Parameters)]
struct GainParameters {
    #[parameter(id = "gain", name = "Gain", default = 0.0, range = -60.0..=12.0, kind = "db")]
    gain: FloatParameter,
}

#[derive(Default, HasParameters)]
struct GainPlugin {
    #[parameters]
    parameters: GainParameters,
}

Documentation

See the main repository for:

License

MIT

Commit count: 47

cargo fmt