Giter VIP home page Giter VIP logo

zmann's Introduction

zmann logo zmann logo ZMANN

Explore a range of instruments, designed to elevate your audio production experience.

gh-banner

Important

We're working on a restructure of the repository, and planning on switching to a different GUI for the plugins. Read more at #477

ZMANN Badge GitHub License GitHub Downloads (all assets, all releases) Static Badge

Plugins

As defined in bundler.toml, the following plugins are included in this repository, for more information on each plugin, please refer to their respective product pages on zmann.org.

Product CI/CD TYPE
Toybox C1200 GitHub Actions Workflow Status Series 1 Download Button
Orchestron GitHub Actions Workflow Status Series 1 Download Button
Bilhorn Reed Series 1 Download Button
Hohner Melodica Series 1 Download Button
Mellotron Series 1
NoiseG8 Tool

Installation

After downloading the .vst3 file, move it to your VST3 directory. The default VST3 directory is located at C:\Program Files\Common Files\VST3 on Windows. If you are unsure where your VST3 directory is located, you can check the VST3 directory in your DAW's settings.

Tip

Create a dedicated folder within your VST3 directory, e.g., ZMANN, for better organization.

Table of Contents

Building

Warning

As of writing, only Windows is supported for building. Linux cross-compilation might work, but is not stable at this time. Currently we don't have any motivation in supporting Mac OS, although the plugins should be compatible without many modifications. Read more about cross-compilation.

Prerequisites

Windows

Before building, make sure that rustup is installed with msvc if building on Windows:

$ rustup default stable-x86_64-pc-windows-msvc

Adding the artifacts

As of writing, we aren't including the samples (for example .binv5 or .microbin) in the repository due to the git file limit. For the builds not to fail, supply a /samples/plugin_name folder, where plugin_name is the name of the plugin you are building. You can create the folder by running:

$ mkdir /samples/plugin_name

Then, add the samples to the folder. The folder structure should look like this:

/samples
  /Toybox_C1200
    /Cello.binv5

Release builds will be built with the samples included in the plugin bundle.

Building the plugins

Plugins are required to be built separately from each other. Run the xtask build command with the plugin name and --release at the end to target a release build. For example:

$ cargo xtask bundle toybox_c1200 --release

Cargo will now build the toybox_c1200_ui before building the plugin itself. After successfully building, each plugin will make their own .vst3 bundle inside of the /target/bundled/ folder.

Or to build all projects inside of the repository, run to build all the ui and plugins in the repository:

$ cargo xtask bundle -p toybox_c1200 -p orchestron 

Optionally by running mklink on Windows, a simlink will be created from the locally generated artifacts folder to the standard vst3 folder to streamline development. This will allow you to test the plugins in your DAW without having to move the files manually. Run the following command in the root of the repository:

mklink /j "%COMMONPROGRAMFILES%\VST3\zmann-dev" "%~dp0target\bundled\"

Cross-Compiling

Debian/Ubuntu

Make sure to install the following package and toolchain:

$ sudo apt install build-essential
$ rustup target add x86_64-pc-windows-gnu

After installing the toolchain, modify .cargo/config.toml to use the x86_64-pc-windows-gnu toolchain:

[alias]
xtask = "run --package xtask --target x86_64-pc-windows-gnu --release --"

Finally, you can build the plugins by running the following command:

$ cargo xtask bundle plugin_name

License

The code in this repository is licensed under the GNU General Public License v3.0 or later. You can find a copy of the license in the LICENSE file.

The samples included in this repository are owned by their respective owners. Please refer to the individual sample files for their specific licensing information.


VST® is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries. Other company names, product names and logos are the trademarks or registered trademarks of their respective owners.

zmann's People

Contributors

azproductions avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zmann's Issues

Studiorack Integration

It's an open-source plugin manager called StudioRack:
https://github.com/studiorack

The aim of the project is to provide a free open-source way to manage plugin dependencies and their versions. It would involve the following steps:

Publish a Github release containing the plugin source along with metadata plugins.json
Tag your Github repository with studiorack-plugin so it can be discovered
Wait for the studiorack-registry to index your plugin (every 24 hours)
Check the registry feed for your plugin to appear

If you have any questions or issues, make an issue in the Github repo or join the DIscord https://discord.gg/9D94f98PxP

Use glob path instead of defining each package

Instead of defining each package individually, we should rather be using a glob path. Currently we are manually defining each package in ./Cargo.toml.

[workspace]
members = [
    "crates/toybox_c1200",
    ...
]
resolver = "2"

By using a glob path, we can cut down on the lines code needed.

[workspace]
members = ["crates/*"]

Single build alias for all plugins

We should provide an alias that builds and bundles all plugins at once using the alias field in .cargo/config.toml.

[alias]
ci = "run --package xtask --release -- -p 1 2 3 ..."

Running cargo ci would then be the only step needed for building it locally.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.