Setting Up the Development Environment
Explanation of how to set up the development environment necessary for developing Beutl extensions.
Creating a C# Project for Extensions
Explanation of how to create an empty C# project for Beutl extensions.
Types of Extensions You Can Develop
List of extension types that can be added to Beutl.
EngineObject Reference
How property objects, expressions, and the generated Resource classes work in Beutl 2.x.
Publishing Extensions
Explanation of how to publish Beutl extensions to the store.
Implementing Audio Effects
Report processing latency and drain audio tails in custom effects.
Media Providers and Audio Buffers
Consume sequential frames and samples, manage buffer ownership, and convert media time.
Integrating with the Editor
Register commands, property editors, MCP tools and element sources using the public extension contracts.
Implementing a Drawing Object
Implement a star-shaped drawing object using the EngineObject pattern.
Implementing Effects
Implement a custom FilterEffect using the EngineObject pattern.
Implementing a Theme
Ship a custom theme from an extension with ThemeExtension.
Pitfalls in Extension Development
Behaviors of Beutl 2.x that are easy to miss when building, packaging and testing an extension, and how to work with them.
Sample Extensions
Introduction to sample extensions
Version Compatibility Table
List of Beutl versions and their corresponding dependencies, frameworks, and library versions.