This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 61d0c69
Showing
79 changed files
with
9,223 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
build | ||
node_modules | ||
package-lock.json |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Brickworks | ||
|
||
Brickworks is a music DSP toolkit that supplies you with the fundamental building blocks for creating and enhancing audio engines on any platform. | ||
|
||
You can find information and documentation [on the official web page](https://www.orastron.com/brickworks). | ||
|
||
## Subfolders | ||
|
||
* examples: a synth and an effect example in VST3 and Web Audio formats; | ||
* include: header files; | ||
* src: source files. | ||
|
||
## Legal | ||
|
||
Copyright (C) 2021, 2022 Orastron srl unipersonale. | ||
|
||
Authors: Stefano D'Angelo, Paolo Marrone. | ||
|
||
All the code in the repo is released under GPLv3. See the LICENSE file. Alternatively, we offer a commercial license that doesn't restrict usage with respect to time, projects, or developers involved. More details [on the official web page](https://www.orastron.com/brickworks#license-pricing). | ||
|
||
The file examples/common/vst3/plugin.cpp contains code from sse2neon (https://github.com/DLTcollab/sse2neon/), which is released under the MIT license. Details in said file. | ||
|
||
VST is a registered trademark of Steinberg Media Technologies GmbH. | ||
|
||
All trademarks and registered marks are properties of their respective owners. All company, product, and service names used are for identification purposes only. Use of these names, trademarks, and brands does not imply endorsement. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
code: | ||
* blep etc in a module? | ||
* osc post filter init val? osc post filter and one pole init val from input? | ||
* audio rate optional pulse width/slope inputs? | ||
* one pole process const input? (return also if const out) | ||
* optimize triangle generation for constant pulse width | ||
* naming type suffixes math.h vs random.h | ||
* API for buffer fill, scale, offset, zero, copy...? | ||
* web examples construction/destruction | ||
* web effect multichannel in? | ||
|
||
build system: | ||
* make makefiles handle paths with spaces etc | ||
* can run su on windows? (system-wide install) | ||
* make autodependencies (.d?) | ||
* make from... directories | ||
* order-only prerequisites to avoid multiple make updates? (https://interrupt.memfault.com/blog/gnu-make-guidelines#order-only-prerequisites) | ||
* clang + Ofast & bulk memory (maybe using old binaryen) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
/* | ||
* Brickworks | ||
* | ||
* Copyright (C) 2022 Orastron Srl unipersonale | ||
* | ||
* Brickworks is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, version 3 of the License. | ||
* | ||
* Brickworks is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* | ||
* File author: Stefano D'Angelo | ||
*/ | ||
|
||
#include "controller.h" | ||
|
||
#include "pluginterfaces/base/conststringtable.h" | ||
#include "base/source/fstreamer.h" | ||
|
||
tresult PLUGIN_API Controller::initialize(FUnknown *context) { | ||
tresult r = EditController::initialize(context); | ||
if (r != kResultTrue) | ||
return r; | ||
|
||
// add parameters | ||
for (int i = 0; i < NUM_PARAMETERS; i++) | ||
parameters.addParameter( | ||
ConstStringTable::instance()->getString(config_parameters[i].name), | ||
config_parameters[i].units ? ConstStringTable::instance()->getString(config_parameters[i].units) : nullptr, | ||
config_parameters[i].steps, | ||
config_parameters[i].defaultValueUnmapped, | ||
(config_parameters[i].out ? ParameterInfo::kIsReadOnly | ParameterInfo::kIsHidden : ParameterInfo::kCanAutomate) | ||
| (config_parameters[i].bypass ? ParameterInfo::kIsBypass : 0), | ||
i, | ||
0, | ||
config_parameters[i].shortName ? ConstStringTable::instance()->getString(config_parameters[i].shortName) : nullptr | ||
); | ||
|
||
return kResultTrue; | ||
} | ||
|
||
tresult PLUGIN_API Controller::setComponentState(IBStream *state) { | ||
if (!state) | ||
return kResultFalse; | ||
|
||
IBStreamer streamer(state, kLittleEndian); | ||
|
||
float f; | ||
for (int i = 0; i < NUM_PARAMETERS; i++) { | ||
if (config_parameters[i].out) | ||
continue; | ||
if (streamer.readFloat(f) == false) | ||
return kResultFalse; | ||
setParamNormalized(i, f); | ||
} | ||
|
||
return kResultTrue; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/* | ||
* Brickworks | ||
* | ||
* Copyright (C) 2022 Orastron Srl unipersonale | ||
* | ||
* Brickworks is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, version 3 of the License. | ||
* | ||
* Brickworks is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* | ||
* File author: Stefano D'Angelo | ||
*/ | ||
|
||
#ifndef _VST3_CONTROLLER_H | ||
#define _VST3_CONTROLLER_H | ||
|
||
#include "config.h" | ||
#include "config_vst3.h" | ||
|
||
#include "public.sdk/source/vst/vsteditcontroller.h" | ||
|
||
using namespace Steinberg; | ||
using namespace Steinberg::Vst; | ||
|
||
class Controller : EditController { | ||
public: | ||
static FUnknown *createInstance(void *context) { | ||
return (IEditController *) new Controller(); | ||
} | ||
|
||
tresult PLUGIN_API initialize(FUnknown *context) SMTG_OVERRIDE; | ||
tresult PLUGIN_API setComponentState(IBStream *state) SMTG_OVERRIDE; | ||
|
||
private: | ||
|
||
}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* | ||
* Brickworks | ||
* | ||
* Copyright (C) 2022 Orastron Srl unipersonale | ||
* | ||
* Brickworks is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, version 3 of the License. | ||
* | ||
* Brickworks is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* | ||
* File author: Stefano D'Angelo | ||
*/ | ||
|
||
#include "plugin.h" | ||
#include "controller.h" | ||
|
||
#include "pluginterfaces/vst/ivstaudioprocessor.h" | ||
#include "pluginterfaces/vst/ivsteditcontroller.h" | ||
#include "public.sdk/source/main/pluginfactory.h" | ||
|
||
BEGIN_FACTORY_DEF(COMPANY_NAME, COMPANY_WEBSITE, COMPANY_MAILTO) | ||
DEF_CLASS2( | ||
INLINE_UID(PLUGIN_GUID_1, PLUGIN_GUID_2, PLUGIN_GUID_3, PLUGIN_GUID_4), // GUID | ||
PClassInfo::kManyInstances, // cardinality | ||
kVstAudioEffectClass, // VST component class | ||
PLUGIN_NAME, // plugin name | ||
Vst::kDistributable, // plugin and controller can work on different computers | ||
PLUGIN_SUBCATEGORY, // VST subcategory | ||
PLUGIN_VERSION, // plugin version | ||
kVstVersionString, // VST version | ||
Plugin::createInstance // instatiation function pointer | ||
) | ||
|
||
DEF_CLASS2( | ||
INLINE_UID(CTRL_GUID_1, CTRL_GUID_2, CTRL_GUID_3, CTRL_GUID_4), // GUID | ||
PClassInfo::kManyInstances, // cardinality | ||
kVstComponentControllerClass, // VST component class | ||
PLUGIN_NAME "Controller", // controller name | ||
0, // unused | ||
"", // unused | ||
PLUGIN_VERSION, // plugin version | ||
kVstVersionString, // VST version | ||
Controller::createInstance // instatiation function pointer | ||
) | ||
|
||
END_FACTORY |
Oops, something went wrong.