ReBuzz is a modular digital audio workstation (DAW) built upon the foundation of Jeskola Buzz software. Written in C#, ReBuzz combines modern features with the beloved workflow of its predecessor. While it’s still in development, users should exercise some caution regarding stability and other potential uncertainties. The primary focus is on providing a stable experience and robust VST support.
- 32 and 64 bit VST2/3 support
- 32 and 64 bit buzz machine support
- Modern Pattern Editor, Modern Sequence Editor, AudioBlock, EnvelopeBlock, CMC, TrackScript...
- Multi-process architecture
- Multi-io for native and managed machines
- Includes NWaves .NET DSP library for audio processing
- bmx and bmxml file support
- ...
Requires:
-
Clone this repo. IMPORTANT: Clone with --recurse-submodules
-
Load the ReBuzz.sln (located at \ReBuzz\ReBuzz.sln) In Visual Studio 2022 (Community version will suffice)
-
Ensure ReBuzz is the Startup project. It should be highlighted bold in the Solution Explorer.
If it is not, then right click the ReBuzz project in Solution Explorer, and select "Set as Startup Project" -
Build all.
-
The result should be output to (depending on if Debug or Release is selected):
- \bin\Debug\x64\net9.0-windows\
- \bin\Release\x64\net9.0-windows\
- \bin\Debug\x64\net9.0-windows\
-
You should be able to run ReBuzz directly from there.
In order to prevent pollution of the source tree(s), all intermediate files are located in:
- \build
This has been achieved by (*This is information only. This is only useful when adding new projects to ReBuzz*): <br>
- Placing ``Directory.build.props`` in each project (same level as each .csproj file) <br>
- *Manually* setting the following in the .csproj: <br>
```xml
<IntermediateOutputPath>$(SolutionDir)build\$(Configuration)\$(Platform)\Rebuzz\obj</IntermediateOutputPath>
```
- Output directory set to ``root\ReBuzz\bin``, also set in the csproj files using the following: <br>
```xml
<OutputPath>$(SolutionDir)bin\$(Configuration)</OutputPath>
```
- *Adding instructions into the csproj files to manaully* generate ``project.assets.json``, because for some reason, MSBuild is incapable of detecting that this file is missing and does not peform a restore by itself:<br>
```xml
<Target Name="ForcePerformRestore" AfterTargets="BeforeBuild">
<Exec Command="IF NOT EXIST "$(IntermediateOutputPath)..\project.assets.json" echo restore to $(IntermediateOutputPath)..\project.assets.json && dotnet restore "$(ProjectName).csproj" --no-dependencies && move "build\$(ProjectName)\obj\*" "$(IntermediateOutputPath).." && rmdir /Q /S build " />
</Target>
- To speed up debugging in Visual Studio, set Data Binding Off under Tools -> Options -> Debugging -> Output Window -> WPF Trace Settings
- Set an exception for ReBuzz.exe process in Windows Defender if starting up ReBuzz takes too long.
ReBuzz uses multi-process architecture. To debug a native machine that is loaded by ReBuzzEngine in Visual Studio you can for example:
- Add a break point in MachineManager.CreateNativeMachine
- Add a break point to ReBuzzEngine.cpp IPC::UILoadLibrary
ReBuzz/ReBuzzEngine/rebe/ReBuzzEngine.cpp
Line 144 in 1243cc9
- Start ReBuzz debug session
- When break point is hit, do Attach to Process... and find ReBuzzEngine
- Continue debugging
All the basic functionality is implemented but there many areas to improve. In general, contributions are needed in every part of the software, but here are few items to look into:
- Pick an issue and start contributing to Rebuzz development today!
- Improve stability, fix bugs and issues
- Cleanup code and architecture
- Add comments and documentation
- Improve Audio wave handling (Wavetable)
- Improve file handling to support older songs
- Reduce latency, optimize code
Let's make this a good one.