Beatd 0.3.0

dotnet add package Beatd --version 0.3.0
                    
NuGet\Install-Package Beatd -Version 0.3.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Beatd" Version="0.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Beatd" Version="0.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Beatd" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Beatd --version 0.3.0
                    
#r "nuget: Beatd, 0.3.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Beatd@0.3.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Beatd&version=0.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Beatd&version=0.3.0
                    
Install as a Cake Tool

beatd

CI Release crates.io npm NuGet Unity

English | 日本語

A cross-platform GUI application and library for analyzing streaming audio and converting it to OSC.

hero

Overview

beatd is a cross-platform application and library for streaming audio analysis.

It started with the concept of being a modern reimplementation of Sound2Light, utilizing a Rust implementation to create an easy-to-use, cross-platform GUI. It can send audio analysis results via OSC to integrate with external VJ software and similar tools.

Additionally, the core analysis engine is provided as an independent library so that it can be embedded into applications for Rust, C, C# (.NET/Unity), and JavaScript (WebAssembly).

Screenshot

img

Installation

Select the latest release from GitHub Releases and download the executable file for your operating system.

macOS

The macOS build is not signed or notarized with an Apple Developer ID. On first launch, macOS may show a message such as "beatd cannot be opened because the developer cannot be verified."

To open it anyway:

  1. Right-click (or Control-click) beatd.app, choose Open, then click Open again.
  2. Or allow it from System Settings → Privacy & Security after trying to open it once.
  3. Or remove the quarantine attribute in Terminal:
xattr -dr com.apple.quarantine /Applications/beatd.app

libbeatd

The streaming audio analysis in beatd is implemented in Rust as an independent crate. By embedding this, you can use features such as BPM analysis within your applications.

Rust

Add the crate via cargo.

cargo add beatd
use beatd::Analyzer;

let mut analyzer = Analyzer::new(48_000);

// samples: &[f32] (-1.0 to 1.0)
analyzer.push(&samples);

let level = analyzer.level();
let bpm = analyzer.bpm();
let spectrum = analyzer.spectrum();
let waveform = analyzer.waveform();
let beats = analyzer.beat_offsets(bpm);

C

Build the library with the ffi feature enabled.

cargo build -p beatd --features ffi

Add the generated libbeatd.so / libbeatd.dylib / beatd.dll along with beatd/beatd.h to your project, and specify -lbeatd during linking.

#include "beatd.h"

beatd_analyzer *analyzer = beatd_new(48000);
if (analyzer == NULL) {
    return 1;
}

beatd_set_bpm_range_min(analyzer, 75);
beatd_push(analyzer, samples, count);

float level = beatd_level(analyzer);
float bpm = beatd_bpm(analyzer);

float spectrum[1024];
size_t bins = beatd_spectrum(analyzer, spectrum, 1024);

beatd_free(analyzer);

JavaScript

Add the library via npm.

npm i beatd-js
import { createAnalyzer } from "beatd-js";

using analyzer = createAnalyzer({ sampleRate: 48000 });

// samples: Float32Array
analyzer.push(samples);

console.log(analyzer.level(), analyzer.bpm());
console.log(analyzer.spectrum());
console.log(analyzer.waveform());
console.log(analyzer.beatOffsets(analyzer.bpm()));

C# / Unity

For .NET projects, you can add the package from NuGet.

dotnet package add Beatd

For Unity, you can add the package from the Package Manager using the git URL.

https://github.com/nuskey8/beatd.git?path=beatd-dotnet/Beatd.Unity/Packages/com.nuskey8.beatd.unity
using Beatd;

using var analyzer = new BeatdAnalyzer(48_000);
analyzer.BpmRangeMin = 75;

analyzer.Push(samples); // ReadOnlySpan<float>

Console.WriteLine($"{analyzer.Level}, {analyzer.Bpm}");
float[] spectrum = analyzer.GetSpectrum();
float[] beats = analyzer.GetBeatOffsets(analyzer.Bpm);

Please note that the .NET/Unity version currently supports only the following platforms:

Platform RID .NET (NuGet) Unity
Windows x64 win-x64 ✅ ✅
Windows ARM64 win-arm64 ✅ ✅
Linux x64 linux-x64 ✅ ✅
Linux ARM64 linux-arm64 ✅ ✅
macOS Intel osx-x64 ✅ ✅
macOS Apple Silicon osx-arm64 ✅ ✅

License

beatd is released under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.
  • net10.0

    • No dependencies.
  • net11.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.0 42 11/5/2026
0.2.0 53 11/4/2026
0.1.0 50 11/4/2026
0.0.1 48 11/4/2026