├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── README_ja.md ├── devboards ├── README.md └── rev_a │ ├── README.md │ ├── angle.jpg │ ├── devboard.maxpat │ ├── signalpath.png │ └── top.jpg ├── developer_ids.md ├── docker ├── README.md ├── README_ja.md ├── build_image.sh ├── docker-app │ ├── Dockerfile │ ├── VERSION │ ├── builder │ │ ├── bash.bashrc.patch │ │ └── get_drumlogue_toolchain.sh │ ├── cmd_entry │ ├── commands │ │ ├── build │ │ ├── help │ │ └── list │ ├── drumlogue │ │ └── environment │ ├── env │ ├── interactive_entry │ ├── minilogue-xd │ │ └── environment │ ├── nts-1 │ │ └── environment │ ├── nts-1_mkii │ │ └── environment │ ├── nts-3_kaoss │ │ └── environment │ ├── profile │ └── prologue │ │ └── environment ├── inc │ └── realpath ├── run_cmd.sh └── run_interactive.sh ├── platform ├── drumlogue │ ├── README.md │ ├── README_ja.md │ ├── common │ │ ├── _unit_base.c │ │ ├── attributes.h │ │ ├── runtime.h │ │ ├── sample_wrapper.h │ │ └── unit.h │ ├── dummy-delfx │ │ ├── .clang-format │ │ ├── Makefile │ │ ├── config.mk │ │ ├── delay.h │ │ ├── header.c │ │ └── unit.cc │ ├── dummy-masterfx │ │ ├── .clang-format │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── masterfx.h │ │ └── unit.cc │ ├── dummy-revfx │ │ ├── .clang-format │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── reverb.h │ │ └── unit.cc │ └── dummy-synth │ │ ├── .clang-format │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── synth.h │ │ └── unit.cc ├── minilogue-xd │ ├── README.md │ ├── README_ja.md │ ├── docs │ │ ├── Doxyfile │ │ └── doxy.h │ ├── dummy-delfx │ │ ├── Makefile │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── userdelfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-modfx │ │ ├── Makefile │ │ ├── README.md │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── usermodfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-osc │ │ ├── Makefile │ │ ├── ld │ │ │ ├── osc_api.syms │ │ │ ├── rules.ld │ │ │ └── userosc.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-revfx │ │ ├── Makefile │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── userrevfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── inc │ │ ├── dsp │ │ │ ├── biquad.hpp │ │ │ ├── delayline.hpp │ │ │ └── simplelfo.hpp │ │ ├── fx_api.h │ │ ├── osc_api.h │ │ ├── userdelfx.h │ │ ├── usermodfx.h │ │ ├── userosc.h │ │ ├── userprg.h │ │ ├── userrevfx.h │ │ └── utils │ │ │ ├── buffer_ops.h │ │ │ ├── cortexm4.h │ │ │ ├── fixed_math.h │ │ │ ├── float_math.h │ │ │ └── int_math.h │ └── waves │ │ ├── Makefile │ │ ├── ld │ │ ├── osc_api.syms │ │ ├── rules.ld │ │ └── userosc.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ ├── tpl │ │ └── _unit.c │ │ ├── waves.cpp │ │ └── waves.hpp ├── nts-1_mkii │ ├── README.md │ ├── README_ja.md │ ├── common │ │ ├── _unit_base.c │ │ ├── attributes.h │ │ ├── dsp │ │ │ ├── biquad.hpp │ │ │ ├── delayline.hpp │ │ │ └── simplelfo.hpp │ │ ├── fx_api.h │ │ ├── macros.h │ │ ├── osc_api.h │ │ ├── runtime.h │ │ ├── unit.h │ │ ├── unit_delfx.h │ │ ├── unit_modfx.h │ │ ├── unit_osc.h │ │ ├── unit_revfx.h │ │ └── utils │ │ │ ├── buffer_ops.h │ │ │ ├── cortexm.h │ │ │ ├── fixed_math.h │ │ │ ├── float_math.h │ │ │ └── int_math.h │ ├── dummy-delfx │ │ ├── Makefile │ │ ├── config.mk │ │ ├── delay.h │ │ ├── header.c │ │ └── unit.cc │ ├── dummy-modfx │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── modfx.h │ │ └── unit.cc │ ├── dummy-osc │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── osc.h │ │ └── unit.cc │ ├── dummy-revfx │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── reverb.h │ │ └── unit.cc │ ├── ld │ │ ├── rules.ld │ │ └── unit.ld │ └── waves │ │ ├── Makefile │ │ ├── config.mk │ │ ├── header.c │ │ ├── unit.cc │ │ ├── waves.h │ │ └── waves_common.h ├── nts-3_kaoss │ ├── README.md │ ├── README_ja.md │ ├── common │ │ ├── _unit_base.c │ │ ├── attributes.h │ │ ├── dsp │ │ │ ├── biquad.hpp │ │ │ ├── delayline.hpp │ │ │ └── simplelfo.hpp │ │ ├── fx_api.h │ │ ├── macros.h │ │ ├── osc_api.h │ │ ├── runtime.h │ │ ├── unit.h │ │ ├── unit_genericfx.h │ │ └── utils │ │ │ ├── buffer_ops.h │ │ │ ├── cortexm.h │ │ │ ├── fixed_math.h │ │ │ ├── float_math.h │ │ │ └── int_math.h │ ├── dummy-genericfx │ │ ├── Makefile │ │ ├── config.mk │ │ ├── effect.h │ │ ├── header.c │ │ └── unit.cc │ └── ld │ │ ├── rules.ld │ │ └── unit.ld ├── nutekt-digital │ ├── README.md │ ├── README_ja.md │ ├── docs │ │ ├── Doxyfile │ │ └── doxy.h │ ├── dummy-delfx │ │ ├── Makefile │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── userdelfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-modfx │ │ ├── Makefile │ │ ├── README.md │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── usermodfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-osc │ │ ├── Makefile │ │ ├── ld │ │ │ ├── osc_api.syms │ │ │ ├── rules.ld │ │ │ └── userosc.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── dummy-revfx │ │ ├── Makefile │ │ ├── ld │ │ │ ├── main_api.syms │ │ │ ├── rules.ld │ │ │ └── userrevfx.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ └── tpl │ │ │ └── _unit.c │ ├── inc │ │ ├── dsp │ │ │ ├── biquad.hpp │ │ │ ├── delayline.hpp │ │ │ └── simplelfo.hpp │ │ ├── fx_api.h │ │ ├── osc_api.h │ │ ├── userdelfx.h │ │ ├── usermodfx.h │ │ ├── userosc.h │ │ ├── userprg.h │ │ ├── userrevfx.h │ │ └── utils │ │ │ ├── buffer_ops.h │ │ │ ├── cortexm4.h │ │ │ ├── fixed_math.h │ │ │ ├── float_math.h │ │ │ └── int_math.h │ └── waves │ │ ├── Makefile │ │ ├── ld │ │ ├── osc_api.syms │ │ ├── rules.ld │ │ └── userosc.ld │ │ ├── manifest.json │ │ ├── project.mk │ │ ├── tpl │ │ └── _unit.c │ │ ├── waves.cpp │ │ └── waves.hpp └── prologue │ ├── README.md │ ├── README_ja.md │ ├── docs │ ├── Doxyfile │ └── doxy.h │ ├── dummy-delfx │ ├── Makefile │ ├── ld │ │ ├── main_api.syms │ │ ├── rules.ld │ │ └── userdelfx.ld │ ├── manifest.json │ ├── project.mk │ └── tpl │ │ └── _unit.c │ ├── dummy-modfx │ ├── Makefile │ ├── ld │ │ ├── main_api.syms │ │ ├── rules.ld │ │ └── usermodfx.ld │ ├── manifest.json │ ├── project.mk │ └── tpl │ │ └── _unit.c │ ├── dummy-osc │ ├── Makefile │ ├── ld │ │ ├── osc_api.syms │ │ ├── rules.ld │ │ └── userosc.ld │ ├── manifest.json │ ├── project.mk │ └── tpl │ │ └── _unit.c │ ├── dummy-revfx │ ├── Makefile │ ├── ld │ │ ├── main_api.syms │ │ ├── rules.ld │ │ └── userrevfx.ld │ ├── manifest.json │ ├── project.mk │ └── tpl │ │ └── _unit.c │ ├── inc │ ├── dsp │ │ ├── biquad.hpp │ │ ├── delayline.hpp │ │ └── simplelfo.hpp │ ├── fx_api.h │ ├── osc_api.h │ ├── userdelfx.h │ ├── usermodfx.h │ ├── userosc.h │ ├── userprg.h │ ├── userrevfx.h │ └── utils │ │ ├── buffer_ops.h │ │ ├── cortexm4.h │ │ ├── fixed_math.h │ │ ├── float_math.h │ │ └── int_math.h │ └── waves │ ├── Makefile │ ├── ld │ ├── osc_api.syms │ ├── rules.ld │ └── userosc.ld │ ├── manifest.json │ ├── project.mk │ ├── tpl │ └── _unit.c │ ├── waves.cpp │ └── waves.hpp └── tools ├── README.md ├── README_ja.md ├── gcc ├── README.md ├── get_gcc_10_3-2021_10_linux.sh ├── get_gcc_10_3-2021_10_macos.sh ├── get_gcc_10_3-2021_10_msys.sh ├── get_gcc_5_4-2016q3_linux.sh ├── get_gcc_5_4-2016q3_macos.sh ├── get_gcc_5_4-2016q3_msys.sh ├── get_gcc_linux.sh ├── get_gcc_macos.sh └── get_gcc_msys.sh ├── logue-cli ├── README.md ├── get_logue_cli_linux.sh ├── get_logue_cli_msys.sh ├── get_logue_cli_msys64.sh └── get_logue_cli_osx.sh ├── make └── README.md └── zip └── README.md /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. iOS] 25 | - Version [e.g. 22] 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Emacs Backup Files 2 | *~ 3 | \#*\# 4 | 5 | ## Vim Temp Files 6 | *.swp 7 | 8 | # Object files 9 | *.o 10 | *.ko 11 | *.obj 12 | *.elf 13 | 14 | # Temporary files/directories 15 | **/.dep/** 16 | **/build/** 17 | .*.env_backup 18 | .profile 19 | .bash_history 20 | tools/gcc/gcc-arm-none-eabi-* 21 | tools/emscripten/emsdk 22 | 23 | # Doxygen documentation 24 | **/docs/html 25 | **/docs/latex 26 | **/docs/doxygen* 27 | 28 | # Precompiled Headers 29 | *.gch 30 | *.pch 31 | 32 | # Libraries 33 | *.lib 34 | *.a 35 | *.la 36 | *.lo 37 | 38 | # Shared objects (inc. Windows DLLs) 39 | *.dll 40 | *.so 41 | *.so.* 42 | *.dylib 43 | 44 | # Executables/Binaries 45 | *.exe 46 | *.out 47 | *.app 48 | *.i*86 49 | *.x86_64 50 | *.hex 51 | *.bin 52 | *.dfu 53 | *.prlgunit 54 | *.mnlgxdunit 55 | *.ntkdigunit 56 | *.drmlgunit 57 | *.nts1mkiiunit 58 | *.nts3unit 59 | 60 | # Debug files 61 | *.dSYM/ 62 | *.su 63 | 64 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "platform/ext/CMSIS"] 2 | path = platform/ext/CMSIS 3 | url = https://github.com/ARM-software/CMSIS.git 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2018, KORG INC. 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | * Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # logue-sdk 2 | 3 | [日本語](./README_ja.md) 4 | 5 | This repository contains all the files and tools needed to build custom oscillators and effects for the [prologue](https://www.korg.com/products/synthesizers/prologue), [minilogue xd](https://www.korg.com/products/synthesizers/minilogue_xd), [Nu:Tekt NTS-1 digital kit](https://www.korg.com/products/dj/nts_1), [Nu:Tekt NTS-1 digital kit mkII](https://www.korg.com/products/synthesizers/nts_1_mk2) synthesizers, the [Nu:Tekt NTS-3 kaoss pad kit](https://www.korg.com/products/dj/nts_3), and [drumlogue](https://www.korg.com/products/drums/drumlogue) drum machine. 6 | 7 | ## Existing logue SDK Units 8 | 9 | To download ready to use oscillators and effects, refer to the [Unit Index](https://korginc.github.io/logue-sdk/unit-index/) and follow instructions on the developer's website. 10 | 11 | ## Platforms and Compatibility 12 | 13 | | Product | Latest SDK Version | Minimum Firmware Version | CPU Arch. | Unit Format | 14 | |--------------------------------|--------------------|--------------------------|---------------|-------------------------------------------------------------| 15 | | prologue | v1.1.0 | >= v2.00 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 16 | | minilogue-xd | v1.1.0 | >= v2.00 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 17 | | Nu:Tekt NTS-1 digital kit | v1.1.0 | >= v1.02 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 18 | | drumlogue | v2.0.0 | >= v1.0.0 | ARM Cortex-A7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 19 | | Nu:Tekt NTS-1 digital kit mkII | v2.0.0 | >= v1.0.0 | ARM Cortex-M7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 20 | | Nu:Tekt NTS-3 kaoss pad kit | v2.0.0 | >= v1.0.0 | ARM Cortex-M7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 21 | 22 | #### Binary Compatibility 23 | 24 | User units built for prologue, minilogue xd and Nu:Tekt NTS-1 digital kit (mkI only) are binary compatible with each other, as long as the SDK version matches. 25 | However, developers are encouraged to optimize their units for each target platform, and thus specialized builds should be preferred if available. 26 | 27 | ## Repository Structure 28 | 29 | * [platform/prologue/](platform/prologue/) : *prologue* specific files, templates and demo projects. 30 | * [platform/minilogue-xd/](platform/minilogue-xd/) : *minilogue xd* specific files, templates and demo projects. 31 | * [platform/nutekt-digital/](platform/nutekt-digital/) : *Nu:Tekt NTS-1 digital kit* specific files, templates and demo projects. 32 | * [platform/drumlogue/](platform/drumlogue/) : *drumlogue* specific files and templates. 33 | * [platform/nts-1_mkii/](platform/nts-1_mkii/) : *Nu:Tekt NTS-1 digital kit mkII* specific files, templates and demo projects. 34 | * [platform/nts-3_kaoss/](platform/nts-3_kaoss/) : *Nu:Tekt NTS-3 kaoss pad kit* specific files, templates and demo projects. 35 | * [platform/ext/](platform/ext/) : External dependencies and submodules. 36 | * [docker/](docker/) : Sources for a docker container that allows building projects for any platform in a more host OS agnostic way. 37 | * [tools/](tools/) : Installation location and documentation for tools required to build projects and manipulate built products. Can be ignored if using the docker container. 38 | * [devboards/](devboards/) : Information and files related to limited edition development boards. 39 | 40 | ## Sharing your Oscillators/Effects with us 41 | 42 | To show us your work please reach out to *logue-sdk@korg.co.jp*. 43 | 44 | ## Support 45 | 46 | The SDK is provided as-is, no technical support will be provided by KORG. 47 | 48 | 49 | -------------------------------------------------------------------------------- /README_ja.md: -------------------------------------------------------------------------------- 1 | # logue-sdk 2 | 3 | [English](./README.md) 4 | 5 | このリポジトリには [prologue](https://www.korg.com/jp/products/synthesizers/prologue/), [minilogue xd](https://www.korg.com/jp/products/synthesizers/minilogue_xd/), [Nu:Tekt NTS-1 digital kit](https://www.korg.com/jp/products/dj/nts_1/) , [Nu:Tekt NTS-1 digital kit mkII](https://www.korg.com/jp/products/synthesizers/nts_1_mk2) synthesizers , the [Nu:Tekt NTS-3 kaoss pad kit](https://www.korg.com/jp/products/dj/nts_3) , and [drumlogue](https://www.korg.com/jp/products/drums/drumlogue/) の6製品で使用できる自作オシレーターやエフェクトのビルドに必要なファイルが全て揃っています. 6 | 7 | ## まずは使ってみよう 8 | 9 | 既に公開されているオシレーターやエフェクトの情報は [Unit Index](https://korginc.github.io/logue-sdk/ja/unit-index/) にあります. 10 | 具体的な入手方法については各デベロッパーのウェブサイトにてご確認下さい. 11 | 12 | ## プラットフォームと互換性に関して 13 | 14 | | 製品 | SDK | ファームウエア | プロセッサー | ユニットフォーマット | 15 | |--------------------------------|--------|----------------|---------------|-------------------------------------------------------------| 16 | | prologue | v1.1.0 | >= v2.00 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 17 | | minilogue-xd | v1.1.0 | >= v2.00 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 18 | | Nu:Tekt NTS-1 digital kit | v1.1.0 | >= v1.02 | ARM Cortex-M4 | Custom 32-bit LSB executable, ARM, EABI5 v1 (SYSV), static | 19 | | drumlogue | v2.0.0 | >= v1.0.0 | ARM Cortex-A7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 20 | | Nu:Tekt NTS-1 digital kit mkII | v2.0.0 | >= v1.0.0 | ARM Cortex-M7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 21 | | Nu:Tekt NTS-3 kaoss pad kit | v2.0.0 | >= v1.0.0 | ARM Cortex-M7 | ELF 32-bit LSB shared object, ARM, EABI5 v1 (SYSV), dynamic | 22 | 23 | #### バイナリ互換性について 24 | 25 | prologue, minilogue xd, Nu:Tekt NTS-1 dgital kitの3製品のために作成されたユニットは, SDKのバージョンが一致する限りバイナリレベルで互換性があります. しかし各製品へのユニットの最適化が推奨されますので、可能であれば各プラットフォームの専用のビルドを優先してください. 26 | 27 | #### リポジトリー構造: 28 | * [platform/prologue/](platform/prologue/) : *prologue*専用のファイル, テンプレートとデモプロジェクト 29 | * [platform/minilogue-xd/](platform/minilogue-xd/) : *minilogue xd*専用のファイル, テンプレートとデモプロジェクト 30 | * [platform/nutekt-digital/](platform/nutekt-digital/) : *Nu:Tekt NTS-1 digital kit*専用のファイル, テンプレートとデモプロジェクト 31 | * [platform/drumlogue/](platform/drumlogue/) : *drumlogue*専用のファイルとテンプレート 32 | * [platform/nts-1_mkii/](platform/nts-1_mkii/) : *Nu:Tekt NTS-1 digital kit mkII*専用のファイル, テンプレートとデモプロジェクト 33 | * [platform/nts-3_kaoss/](platform/nts-3_kaoss/) : *Nu:Tekt NTS-3 kaoss pad kit専用のファイル, テンプレートとデモプロジェクト 34 | * [platform/ext/](platform/ext/) : 外部依存ファイルとサブモジュール 35 | * [docker/](docker/) : ホストOSに依存せずあらゆるプラットフォーム向けのプロジェクトを構築するためのdocker containerのソース 36 | * [tools/](tools/) : プロジェクトのビルド、またはビルド成果物の操作に必要なツールとドキュメント. dockerを使用する場合は必要ありません 37 | * [devboards/](devboards/) : 限定配布された開発ボードに関する情報やファイル 38 | 39 | ## 自作コンテンツを共有する 40 | 41 | 自作のオシレーターやエフェクトをKORGチームに紹介して下さい. 42 | 連絡先は *logue-sdk@korg.co.jp* です. 43 | 44 | ## サポート 45 | 46 | KORGはlogue-sdkに関しての技術的なサポートを提供しません. 47 | 48 | 49 | -------------------------------------------------------------------------------- /devboards/README.md: -------------------------------------------------------------------------------- 1 | # Development Boards 2 | 3 | ## Prologue Rev.A - Superbooth 2018 Edition 4 | 5 | Limited edition development board for Superbooth'18. 6 | 7 | Rev.A Angle View 8 | 9 | See [rev_a/](rev_a) for details. 10 | 11 | 12 | -------------------------------------------------------------------------------- /devboards/rev_a/angle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/korginc/logue-sdk/c55c3fad6ba985a567bf8dda8418e5655310be94/devboards/rev_a/angle.jpg -------------------------------------------------------------------------------- /devboards/rev_a/signalpath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/korginc/logue-sdk/c55c3fad6ba985a567bf8dda8418e5655310be94/devboards/rev_a/signalpath.png -------------------------------------------------------------------------------- /devboards/rev_a/top.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/korginc/logue-sdk/c55c3fad6ba985a567bf8dda8418e5655310be94/devboards/rev_a/top.jpg -------------------------------------------------------------------------------- /developer_ids.md: -------------------------------------------------------------------------------- 1 | ## Developer Identifier List 2 | 3 | This is the official developer identifiers list. 4 | 5 | *Note Developer identifiers are currently only used in drumlogue units* 6 | 7 | ### Reserved Identifiers 8 | 9 | These identifiers are reserved for internal use, and should not be used by third party developers. 10 | 11 | | dev_id | Developer | 12 | | --- | --- | 13 | | 0x4B4F5247 ('KORG') | [KORG Inc.](https://korg.com) | 14 | | 0x6B6F7267 ('korg') | [KORG Inc.](https://korg.com) | 15 | | 0x00000000 | Invalid | 16 | | 0xFFFFFFFF | Invalid | 17 | 18 | *Note Any uppercase/lowercase combination of the KORG Inc. identifiers above are also reserved and should not be used.* 19 | 20 | ### Registered Identifiers 21 | 22 | In order to register an identifier, please provide a pull request adding the identifier to the table below. 23 | 24 | *Note Please avoid using uppercase/lowercase variations of already registered identifiers.* 25 | 26 | | dev_id | Developer | 27 | | --- | --- | 28 | | 0x53564253 ('SVBS') | [Sinevibes](https://sinevib.es) | 29 | | 0x656B7544 ('ekuD') | [Oleg Burdaev](https://github.com/dukesrg) | 30 | | 0x44756B65 ('Duke') | [Oleg Burdaev](https://github.com/dukesrg) | 31 | | 0x45444F55 ('EDOU') | [Edouard Digital](https://edouard.digital) | 32 | | 0x434E5452 ('CNTR') | [centrevillage](https://centrevillage.net) | 33 | | 0x65676773 ('eggs') | [hammondeggsmusic](https://hammondeggsmusic.ca) | 34 | | 0x54534F4E ('TSON') | [tSoniq](https://tsoniq.com) | 35 | | 0x46747a6c ('Ftzl') | [Deborah Pickett](https://www.icemoonprison.com/blog/?page_id=777) | 36 | | 0x4361644C ('CadL') | [CtrlAltDelete](https://ctrl-alt-delete.co.uk) | 37 | | 0x42636877 ('Bchw') | [boochow instruments](https://blog.boochow.com/logue) | 38 | | 0x6d726672 ('mrfr') | [Eugene Chernyh](https://github.com/mrf-r) | 39 | | 0x6C63776B ('lcwk') | [techno-cat](https://techno-cat.github.io) | 40 | | 0x74776565 ('twee') | [Tweeeeeak!](https://github.com/tweeeeeak/nts) | 41 | | 0x696b7556 ('Vuki') | [Greg Vuki](https://multimed.org/~greg/) | -------------------------------------------------------------------------------- /docker/docker-app/VERSION: -------------------------------------------------------------------------------- 1 | 0.5.12 -------------------------------------------------------------------------------- /docker/docker-app/builder/bash.bashrc.patch: -------------------------------------------------------------------------------- 1 | --- bash.bashrc.org 2022-05-17 22:24:20.205582215 +0900 2 | +++ bash.bashrc 2022-05-17 22:24:56.173615021 +0900 3 | @@ -40,19 +40,6 @@ 4 | # fi 5 | #fi 6 | 7 | -# sudo hint 8 | -if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then 9 | - case " $(groups) " in *\ admin\ *|*\ sudo\ *) 10 | - if [ -x /usr/bin/sudo ]; then 11 | - cat <<-EOF 12 | - To run a command as administrator (user "root"), use "sudo ". 13 | - See "man sudo_root" for details. 14 | - 15 | - EOF 16 | - fi 17 | - esac 18 | -fi 19 | - 20 | # if the command-not-found package is installed, use it 21 | if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then 22 | function command_not_found_handle { 23 | -------------------------------------------------------------------------------- /docker/docker-app/builder/get_drumlogue_toolchain.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | # assert_success(fail_msg) 38 | assert_success() { 39 | [ $? -eq 0 ] && return 0 40 | [ ! -z "$1" ] && echo "[Err] $1" 1>&2 41 | popd 2>&1 > /dev/null 42 | exit 1 43 | } 44 | 45 | CUR_ARCH="$(uname -p)" 46 | 47 | if [ "${CUR_ARCH}" == "x86_64" ]; then 48 | ARCHIVE_URL="https://www.dropbox.com/s/3curhjx9yip29os/drumlogue-toolchain-amd64.tar.bz2" 49 | ARCHIVE_SHA1="6b2a403195fbac0f7ee8d53bea4ed17b8c14e541" 50 | elif [ "${CUR_ARCH}" == "aarch64" ]; then 51 | ARCHIVE_URL="https://www.dropbox.com/s/ioysa018ruopp72/drumlogue-toolchain-aarch64.tar.bz2" 52 | ARCHIVE_SHA1="d907b640967e8ea40baa82ff55d8813716028aa9" 53 | else 54 | echo "[Err] Unsupported architecture: ${CUR_ARCH}" 1>&2 55 | exit 1 56 | fi 57 | 58 | ARCHIVE_NAME="$(basename ${ARCHIVE_URL})" 59 | 60 | # test_sha1sum(sha1, path_to_file) 61 | test_sha1sum() { 62 | local sum=$(sha1sum "$2") 63 | [ "${sum% *}" != "$1" ] && return 1 64 | return 0 65 | } 66 | 67 | if [ ! -f "${ARCHIVE_NAME}" ]; then 68 | echo ">> Downloading..." 69 | curl -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 70 | assert_success "Download of ${ARCHIVE_NAME} failed..." 71 | fi 72 | 73 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 74 | assert_success "SHA1 mismatch. Try redownloading the archive..." 75 | 76 | echo ">> Unpacking..." 77 | UNPACKED_DIR=$(tar -jxvf "${ARCHIVE_NAME}" | cut -f1 -d"/" | sort | uniq) 78 | assert_success "Could not unpack archive..." 79 | 80 | echo ">> Staging..." 81 | if [ -z "${UNPACKED_DIR}" ] || [ ! -d "${UNPACKED_DIR}" ]; then 82 | echo "[Err] Cannot find unpacked directory at: '${SCRIPT_DIR}/${UNPACKED_DIR}'" 1>&2 83 | exit 1 84 | fi 85 | mv "${UNPACKED_DIR}"/* . 86 | assert_success "Could not stage archive content..." 87 | 88 | echo ">> Cleaning up..." 89 | rm -rf "${UNPACKED_DIR}" 90 | rm -f "${ARCHIVE_NAME}" 91 | assert_success "Could not delete intermediate files..." 92 | 93 | popd 2>&1 > /dev/null 94 | 95 | -------------------------------------------------------------------------------- /docker/docker-app/cmd_entry: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | _USER="user" 4 | _GROUP="user" 5 | 6 | sudo bash<&2 && exit 1 13 | fi 14 | 15 | if [ \${_MOUNT_UID} -ne 0 ] && [ "$(id -u ${_USER})" != "\${_MOUNT_UID}" ]; then 16 | # Make sure user has same uid/gid as owner of /workspace 17 | # Note: includes a workaround to make sure files in /workspace are not forcibly chown'd by usermod 18 | 19 | mkdir /tmp/dummy && usermod -d /tmp/dummy ${_USER} && usermod -u \${_MOUNT_UID} -g \${_MOUNT_GID} ${_USER} 20 | [ $? -ne 0 ] && echo "[Err] Could not correctly remap user uid/gid to match /workspace ownership..." 1>&2 && exit 1 21 | 22 | usermod -d /workspace ${_USER} && rm -rf /tmp/dummy 23 | [ $? -ne 0 ] && echo "[Err] Failed to re-set user home directory..." 1>&2 && exit 1 24 | fi 25 | 26 | if [ ! -e /workspace/.profile ]; then 27 | cp /root/.profile /workspace/.profile && chown ${_USER}:${_USER} /workspace/.profile 28 | [ $? -ne 0 ] && echo "[Warn] Failed to initialize .profile in home directory..." 1>&2 29 | fi 30 | 31 | exit 0 32 | EOF 33 | [ $? -ne 0 ] && exit 1 34 | 35 | su -l ${_USER} -c '"$0" "$@"' -- "$@" 36 | 37 | -------------------------------------------------------------------------------- /docker/docker-app/commands/help: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # 4 | # help - Display basic help about logue SDK development environment 5 | # 6 | 7 | # 8 | # BSD 3-Clause License 9 | # 10 | # Copyright (c) 2022, KORG INC. 11 | # All rights reserved. 12 | # 13 | # Redistribution and use in source and binary forms, with or without 14 | # modification, are permitted provided that the following conditions are met: 15 | # 16 | # * Redistributions of source code must retain the above copyright notice, this 17 | # list of conditions and the following disclaimer. 18 | # 19 | # * Redistributions in binary form must reproduce the above copyright notice, 20 | # this list of conditions and the following disclaimer in the documentation 21 | # and/or other materials provided with the distribution. 22 | # 23 | # * Neither the name of the copyright holder nor the names of its 24 | # contributors may be used to endorse or promote products derived from 25 | # this software without specific prior written permission. 26 | # 27 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 28 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 30 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 31 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 35 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | # 38 | 39 | if [ "$(type -t env)" != "function" ]; then 40 | source /app/env 41 | fi 42 | 43 | short_desc () { 44 | echo -n "Basic help about logue SDK development environment. (TODO)" 45 | } 46 | 47 | usage () { 48 | echo "Usage: $0 [OPTIONS]" 49 | echo "" 50 | echo "$(short_desc)" 51 | echo "" 52 | echo "Options:" 53 | echo " -h, --help display this help" 54 | echo "" 55 | } 56 | 57 | ### Main ########################## 58 | 59 | for o in "$@"; do 60 | case ${o} in 61 | -h|--help) 62 | usage 63 | exit 0 64 | ;; 65 | --short-desc) 66 | short_desc 67 | exit 0 68 | ;; 69 | *) 70 | shift 71 | ;; 72 | esac 73 | done 74 | 75 | echo "TODO - placeholder only, not implemented yet" 76 | 77 | exit 1 78 | -------------------------------------------------------------------------------- /docker/docker-app/commands/list: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | # 4 | # list - Simply lists available custom logue SDK commands 5 | # 6 | 7 | # 8 | # BSD 3-Clause License 9 | # 10 | # Copyright (c) 2022, KORG INC. 11 | # All rights reserved. 12 | # 13 | # Redistribution and use in source and binary forms, with or without 14 | # modification, are permitted provided that the following conditions are met: 15 | # 16 | # * Redistributions of source code must retain the above copyright notice, this 17 | # list of conditions and the following disclaimer. 18 | # 19 | # * Redistributions in binary form must reproduce the above copyright notice, 20 | # this list of conditions and the following disclaimer in the documentation 21 | # and/or other materials provided with the distribution. 22 | # 23 | # * Neither the name of the copyright holder nor the names of its 24 | # contributors may be used to endorse or promote products derived from 25 | # this software without specific prior written permission. 26 | # 27 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 28 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 30 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 31 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 35 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | # 38 | 39 | if [ "$(type -t env)" != "function" ]; then 40 | source /app/env 41 | fi 42 | 43 | COMMANDS_PATH="/app/commands" 44 | 45 | short_desc () { 46 | echo -n "List available logue SDK related commands." 47 | } 48 | 49 | usage () { 50 | echo "Usage: $0 [OPTIONS]" 51 | echo "" 52 | echo "$(short_desc)" 53 | echo "" 54 | echo "Options:" 55 | echo " -h, --help display this help" 56 | echo "" 57 | } 58 | 59 | list () { 60 | echo "Available logue SDK commands:" 61 | echo " - env : $(env_short_desc)" 62 | for c in "${COMMANDS_PATH}"/*; do 63 | local cmd=$(basename ${c}) 64 | echo " - ${cmd} : $(${COMMANDS_PATH}/${cmd} --short-desc)" 65 | done 66 | } 67 | 68 | ### Main ########################## 69 | 70 | for o in "$@"; do 71 | case ${o} in 72 | -h|--help) 73 | usage 74 | exit 0 75 | ;; 76 | --short-desc) 77 | short_desc 78 | exit 0 79 | ;; 80 | *) 81 | shift 82 | ;; 83 | esac 84 | done 85 | 86 | list 87 | -------------------------------------------------------------------------------- /docker/docker-app/interactive_entry: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | _USER="user" 4 | _GROUP="user" 5 | 6 | sudo bash<&2 && exit 1 13 | fi 14 | 15 | if [ \${_MOUNT_UID} -ne 0 ] && [ "$(id -u ${_USER})" != "\${_MOUNT_UID}" ]; then 16 | # Make sure user has same uid/gid as owner of /workspace 17 | # Note: includes a workaround to make sure files in /workspace are not forcibly chown'd by usermod 18 | 19 | mkdir /tmp/dummy && usermod -d /tmp/dummy ${_USER} && usermod -u \${_MOUNT_UID} -g \${_MOUNT_GID} ${_USER} 20 | [ $? -ne 0 ] && echo "[Err] Could not correctly remap user uid/gid to match /workspace ownership..." 1>&2 && exit 1 21 | 22 | usermod -d /workspace ${_USER} && rm -rf /tmp/dummy 23 | [ $? -ne 0 ] && echo "[Err] Failed to re-set user home directory..." 1>&2 && exit 1 24 | fi 25 | 26 | if [ ! -e /workspace/.profile ]; then 27 | cp /root/.profile /workspace/.profile && chown ${_USER}:${_USER} /workspace/.profile 28 | [ $? -ne 0 ] && echo "[Warn] Failed to initialize .profile in home directory..." 1>&2 29 | fi 30 | 31 | exit 0 32 | EOF 33 | [ $? -ne 0 ] && exit 1 34 | 35 | su - ${_USER} 36 | 37 | -------------------------------------------------------------------------------- /docker/docker-app/profile: -------------------------------------------------------------------------------- 1 | 2 | PATH=/app/commands:${PATH} 3 | 4 | source /app/env 5 | 6 | alias ls='ls --color=auto' 7 | alias ll='ls -la --color=auto' 8 | alias l.='ls -d .* --color=auto' 9 | 10 | alias grep='grep --color' 11 | -------------------------------------------------------------------------------- /docker/inc/realpath: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Replacement for 'realpath' command that is unavailable on macos systems with no coreutils installed 4 | # Adapted from: https://stackoverflow.com/a/18443300 5 | # 6 | 7 | realpath() ( 8 | pushd "$(dirname "$1")" 2>&1 > /dev/null 9 | local LINK=$(readlink "$(basename "$1")") 10 | while [ "$LINK" ]; do 11 | cd "$(dirname "$LINK")" 12 | LINK=$(readlink "$(basename "$1")") 13 | done 14 | local REALPATH="$PWD/$(basename "$1")" 15 | popd 2>&1 > /dev/null 16 | echo "$REALPATH" 17 | ) 18 | 19 | -------------------------------------------------------------------------------- /docker/run_interactive.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # 4 | # run_interactive.sh 5 | # 6 | # Convenience script to spin up a container instance of the logue SDK development 7 | # environment docker image and start an interactive shell 8 | # 9 | 10 | # 11 | # BSD 3-Clause License 12 | # 13 | # Copyright (c) 2022, KORG INC. 14 | # All rights reserved. 15 | # 16 | # Redistribution and use in source and binary forms, with or without 17 | # modification, are permitted provided that the following conditions are met: 18 | # 19 | # * Redistributions of source code must retain the above copyright notice, this 20 | # list of conditions and the following disclaimer. 21 | # 22 | # * Redistributions in binary form must reproduce the above copyright notice, 23 | # this list of conditions and the following disclaimer in the documentation 24 | # and/or other materials provided with the distribution. 25 | # 26 | # * Neither the name of the copyright holder nor the names of its 27 | # contributors may be used to endorse or promote products derived from 28 | # this software without specific prior written permission. 29 | # 30 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 31 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 32 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 33 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 34 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 35 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 36 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 37 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 38 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 | # 41 | 42 | SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 43 | 44 | if [ -z "$(command -v realpath)" ]; then 45 | source ${SCRIPT_DIR}/inc/realpath 46 | fi 47 | 48 | IMAGE_NAME="logue-sdk-dev-env" 49 | IMAGE_VERSION="latest" 50 | PLATFORM_PATH=$(realpath "${SCRIPT_DIR}/../platform") 51 | 52 | usage () { 53 | echo "" 54 | echo "Usage: $0 [OPTIONS] [[REPOSITORY]:VERSION]" 55 | echo "" 56 | echo " Spin up a container instance of the logue SDK development environment" 57 | echo " and start an interactive shell." 58 | echo "" 59 | echo "Options:" 60 | echo " --platform=PATH specify path to platform directory (default: ${PLATFORM_PATH})" 61 | echo " -h, --help display this help" 62 | echo "" 63 | echo "Arguments:" 64 | echo " [REPOSITORY] specify docker image name tag (default: ${IMAGE_NAME})" 65 | echo " [VERSION] specify docker image version tag (default: ${IMAGE_VERSION})" 66 | echo "" 67 | } 68 | 69 | for o in "$@"; do 70 | case $o in 71 | --platform=*) 72 | PLATFORM_PATH=$(realpath "${o#*=}") 73 | shift 74 | ;; 75 | -h|--help) 76 | usage 77 | exit 0 78 | ;; 79 | -*) 80 | ## unknown option 81 | shift 82 | ;; 83 | *) 84 | IMAGE_NAME="${o%:*}" 85 | v="${o#*:}" 86 | if [ "${v}" != "${IMAGE_NAME}" ] && [ ! -z "${v}" ]; then 87 | IMAGE_VERSION=${v} 88 | fi 89 | break 90 | ;; 91 | esac 92 | done 93 | 94 | if [ ! -d "${PLATFORM_PATH}" ]; then 95 | echo "[Err] Could not find platform directory at '${PLATFORM_PATH}'" 1>&2 96 | exit 1 97 | fi 98 | 99 | docker run --rm -v "${PLATFORM_PATH}:/workspace" -h logue-sdk -it ${IMAGE_NAME}:${IMAGE_VERSION} /app/interactive_entry 100 | 101 | -------------------------------------------------------------------------------- /platform/drumlogue/common/_unit_base.c: -------------------------------------------------------------------------------- 1 | /** 2 | * @file _unit_base.c 3 | * @brief Fallback implementations for unit header and callbacks 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #include 10 | 11 | #include "unit.h" 12 | 13 | // ---- Fallback unit header definition ----------------------------------------------------------- 14 | 15 | // Fallback unit header, note that this content is invalid, must be overriden 16 | const __attribute__((weak, section(".unit_header"))) unit_header_t unit_header = { 17 | .header_size = sizeof(unit_header_t), 18 | .target = UNIT_TARGET_PLATFORM, 19 | .api = UNIT_API_VERSION, 20 | .dev_id = 0x0, 21 | .unit_id = 0x0, 22 | .version = 0x0, 23 | .name = "undefined", 24 | .num_presets = 0x0, 25 | .num_params = 0x0, 26 | .params = {{0}}}; 27 | 28 | // ---- Fallback entry points from drumlogue runtime ---------------------------------------------- 29 | 30 | __attribute__((weak)) int8_t unit_init(const unit_runtime_desc_t * desc) { 31 | (void)desc; 32 | return k_unit_err_undef; 33 | } 34 | 35 | __attribute__((weak)) void unit_teardown() {} 36 | 37 | __attribute__((weak)) void unit_reset() {} 38 | 39 | __attribute__((weak)) void unit_resume() {} 40 | 41 | __attribute__((weak)) void unit_suspend() {} 42 | 43 | __attribute__((weak)) void unit_render(const float * in, float * out, uint32_t frames) { 44 | (void)in; 45 | (void)out; 46 | (void)frames; 47 | } 48 | 49 | __attribute__((weak)) uint8_t unit_get_preset_index() { 50 | return 0; 51 | } 52 | 53 | __attribute__((weak)) const char * unit_get_preset_name(uint8_t idx) { 54 | (void)idx; 55 | return NULL; 56 | } 57 | 58 | __attribute__((weak)) void unit_load_preset(uint8_t idx) { 59 | (void)idx; 60 | } 61 | 62 | __attribute__((weak)) int32_t unit_get_param_value(uint8_t id) { 63 | (void)id; 64 | return 0; 65 | } 66 | 67 | __attribute__((weak)) const char * unit_get_param_str_value(uint8_t id, int32_t value) { 68 | (void)id; 69 | (void)value; 70 | return NULL; 71 | } 72 | 73 | __attribute__((weak)) const uint8_t * unit_get_param_bmp_value(uint8_t id, int32_t value) { 74 | (void)id; 75 | (void)value; 76 | return NULL; 77 | } 78 | 79 | __attribute__((weak)) void unit_set_param_value(uint8_t id, int32_t value) { 80 | (void)id; 81 | (void)value; 82 | } 83 | 84 | __attribute__((weak)) void unit_set_tempo(uint32_t tempo) { (void)tempo; } 85 | 86 | __attribute__((weak)) void unit_note_on(uint8_t note, uint8_t mod) { 87 | (void)note; 88 | (void)mod; 89 | } 90 | 91 | __attribute__((weak)) void unit_note_off(uint8_t note) { (void)note; } 92 | 93 | __attribute__((weak)) void unit_gate_on(uint8_t mod) { (void)mod; } 94 | 95 | __attribute__((weak)) void unit_gate_off(void) {} 96 | 97 | __attribute__((weak)) void unit_all_note_off(void) {} 98 | 99 | __attribute__((weak)) void unit_pitch_bend(uint16_t bend) { (void)bend; } 100 | 101 | __attribute__((weak)) void unit_channel_pressure(uint8_t mod) { (void)mod; } 102 | 103 | __attribute__((weak)) void unit_aftertouch(uint8_t note, uint8_t mod) { 104 | (void)note; 105 | (void)mod; 106 | } 107 | -------------------------------------------------------------------------------- /platform/drumlogue/common/attributes.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file attributes.h 3 | * @brief Some useful compiler attribute shorthands 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #ifndef ATTRIBUTES_H_ 10 | #define ATTRIBUTES_H_ 11 | 12 | #define noopt __attribute__((optimize("O0"))) 13 | #define fast __attribute__((optimize("Ofast"))) 14 | 15 | #define force_inline inline __attribute__((always_inline)) 16 | #define fast_inline inline __attribute__((always_inline, optimize("Ofast"))) 17 | 18 | #define __unit_callback __attribute__((used)) 19 | #define __unit_header __attribute__((used, section(".unit_header"))) 20 | 21 | #endif // ATTRIBUTES_H_ 22 | -------------------------------------------------------------------------------- /platform/drumlogue/common/sample_wrapper.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file sample_wrapper.h 3 | * @brief Sample wrapper structure 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #ifndef SAMPLE_WRAPPER_H_ 10 | #define SAMPLE_WRAPPER_H_ 11 | 12 | #include 13 | #include 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | #define UNIT_SAMPLE_WRAPPER_MAX_NAME_LEN 31 20 | 21 | typedef struct sample_wrapper { 22 | uint8_t bank; 23 | uint8_t index; 24 | uint8_t channels; 25 | uint8_t _padding; 26 | char name[UNIT_SAMPLE_WRAPPER_MAX_NAME_LEN + 1]; 27 | size_t frames; 28 | const float * sample_ptr; 29 | } sample_wrapper_t; 30 | 31 | #ifdef __cplusplus 32 | } // extern "C" 33 | #endif 34 | 35 | #endif // SAMPLE_WRAPPER_H_ 36 | -------------------------------------------------------------------------------- /platform/drumlogue/common/unit.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file unit.h 3 | * @brief Unit API declarations 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #ifndef UNIT_H_ 10 | #define UNIT_H_ 11 | 12 | #include 13 | 14 | #include "attributes.h" 15 | #include "runtime.h" 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | extern const unit_header_t unit_header; 22 | 23 | int8_t unit_init(const unit_runtime_desc_t *); 24 | void unit_teardown(); 25 | void unit_reset(); 26 | void unit_resume(); 27 | void unit_suspend(); 28 | void unit_render(const float *, float *, uint32_t); 29 | uint8_t unit_get_preset_index(); 30 | const char * unit_get_preset_name(uint8_t); 31 | void unit_load_preset(uint8_t); 32 | int32_t unit_get_param_value(uint8_t); 33 | const char * unit_get_param_str_value(uint8_t, int32_t); 34 | const uint8_t * unit_get_param_bmp_value(uint8_t, int32_t); 35 | void unit_set_param_value(uint8_t, int32_t); 36 | void unit_set_tempo(uint32_t); 37 | void unit_note_on(uint8_t, uint8_t); 38 | void unit_note_off(uint8_t); 39 | void unit_gate_on(uint8_t); 40 | void unit_gate_off(void); 41 | void unit_all_note_off(void); 42 | void unit_pitch_bend(uint16_t); 43 | void unit_channel_pressure(uint8_t); 44 | void unit_aftertouch(uint8_t, uint8_t); 45 | 46 | #ifdef __cplusplus 47 | } // extern "C" 48 | #endif 49 | 50 | #endif // UNIT_H_ 51 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-delfx/.clang-format: -------------------------------------------------------------------------------- 1 | Standard: Auto 2 | BasedOnStyle: Google 3 | NamespaceIndentation: All 4 | FixNamespaceComments: true 5 | PointerAlignment: Middle 6 | DerivePointerAlignment: false 7 | SortIncludes: false 8 | ColumnLimit: 0 -------------------------------------------------------------------------------- /platform/drumlogue/dummy-delfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_delay 6 | PROJECT_TYPE := delfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | CSRC = header.c 14 | 15 | # C++ sources 16 | CXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | ASMSRC = 20 | 21 | ASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | ULIBS += -lc 41 | 42 | ############################################################################## 43 | # Macros 44 | # 45 | 46 | UDEFS = 47 | 48 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-delfx/unit.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * @file unit.cc 3 | * @brief drumlogue SDK unit interface 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #include "unit.h" // Note: Include common definitions for all units 10 | #include "delay.h" // Note: Include custom delay code 11 | 12 | static Delay s_delay_instance; // Note: In this case, actual instance of custom delay object. 13 | static unit_runtime_desc_t s_runtime_desc; // Note: used to cache runtime descriptor obtained via init callback 14 | 15 | // ---- Callback entry points from drumlogue runtime ---------------------------------------------- 16 | 17 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 18 | if (!desc) 19 | return k_unit_err_undef; 20 | 21 | // Note: make sure the unit is being loaded to the correct platform/module target 22 | if (desc->target != unit_header.target) 23 | return k_unit_err_target; 24 | 25 | // Note: check API compatibility with the one this unit was built against 26 | if (!UNIT_API_IS_COMPAT(desc->api)) 27 | return k_unit_err_api_version; 28 | 29 | // Note: (optional) caching runtime descriptor for future reference 30 | s_runtime_desc = *desc; 31 | 32 | return s_delay_instance.Init(desc); 33 | } 34 | 35 | __unit_callback void unit_teardown() { 36 | s_delay_instance.Teardown(); 37 | } 38 | 39 | __unit_callback void unit_reset() { 40 | s_delay_instance.Reset(); 41 | } 42 | 43 | __unit_callback void unit_resume() { 44 | s_delay_instance.Resume(); 45 | } 46 | 47 | __unit_callback void unit_suspend() { 48 | s_delay_instance.Suspend(); 49 | } 50 | 51 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 52 | s_delay_instance.Process(in, out, frames); 53 | } 54 | 55 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 56 | s_delay_instance.setParameter(id, value); 57 | } 58 | 59 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 60 | return s_delay_instance.getParameterValue(id); 61 | } 62 | 63 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 64 | return s_delay_instance.getParameterStrValue(id, value); 65 | } 66 | 67 | __unit_callback const uint8_t * unit_get_param_bmp_value(uint8_t id, int32_t value) { 68 | return s_delay_instance.getParameterBmpValue(id, value); 69 | } 70 | 71 | __unit_callback void unit_set_tempo(uint32_t tempo) { 72 | // const float t = (tempo >> 16) + (tempo & 0xFFFF) / static_cast(0x10000); 73 | (void)tempo; 74 | } 75 | 76 | __unit_callback void unit_load_preset(uint8_t idx) { 77 | s_delay_instance.LoadPreset(idx); 78 | } 79 | 80 | __unit_callback uint8_t unit_get_preset_index() { 81 | return s_delay_instance.getPresetIndex(); 82 | } 83 | 84 | __unit_callback const char * unit_get_preset_name(uint8_t idx) { 85 | return Delay::getPresetName(idx); 86 | } 87 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-masterfx/.clang-format: -------------------------------------------------------------------------------- 1 | Standard: Auto 2 | BasedOnStyle: Google 3 | NamespaceIndentation: All 4 | FixNamespaceComments: true 5 | PointerAlignment: Middle 6 | DerivePointerAlignment: false 7 | SortIncludes: false 8 | ColumnLimit: 0 -------------------------------------------------------------------------------- /platform/drumlogue/dummy-masterfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_master 6 | PROJECT_TYPE := masterfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | CSRC = header.c 14 | 15 | # C++ sources 16 | CXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | ASMSRC = 20 | 21 | ASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | ULIBS += -lc 41 | 42 | ############################################################################## 43 | # Macros 44 | # 45 | 46 | UDEFS = 47 | 48 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-masterfx/unit.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * @file unit.cc 3 | * @brief drumlogue SDK unit interface 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #include "unit.h" // Note: Include common definitions for all units 10 | #include "masterfx.h" // Note: Include custom master fx code 11 | 12 | static MasterFX s_master_instance; // Note: In this case, actual instance of custom master fx object. 13 | static unit_runtime_desc_t s_runtime_desc; // Note: used to cache runtime descriptor obtained via init callback 14 | 15 | // ---- Callback entry points from drumlogue runtime ---------------------------------------------- 16 | 17 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 18 | if (!desc) 19 | return k_unit_err_undef; 20 | 21 | // Note: make sure the unit is being loaded to the correct platform/module target 22 | if (desc->target != unit_header.target) 23 | return k_unit_err_target; 24 | 25 | // Note: check API compatibility with the one this unit was built against 26 | if (!UNIT_API_IS_COMPAT(desc->api)) 27 | return k_unit_err_api_version; 28 | 29 | // Note: (optional) caching runtime descriptor for future reference 30 | s_runtime_desc = *desc; 31 | 32 | return s_master_instance.Init(desc); 33 | } 34 | 35 | __unit_callback void unit_teardown() { 36 | s_master_instance.Teardown(); 37 | } 38 | 39 | __unit_callback void unit_reset() { 40 | s_master_instance.Reset(); 41 | } 42 | 43 | __unit_callback void unit_resume() { 44 | s_master_instance.Resume(); 45 | } 46 | 47 | __unit_callback void unit_suspend() { 48 | s_master_instance.Suspend(); 49 | } 50 | 51 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 52 | s_master_instance.Process(in, out, frames); 53 | } 54 | 55 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 56 | s_master_instance.setParameter(id, value); 57 | } 58 | 59 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 60 | return s_master_instance.getParameterValue(id); 61 | } 62 | 63 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 64 | return s_master_instance.getParameterStrValue(id, value); 65 | } 66 | 67 | __unit_callback const uint8_t * unit_get_param_bmp_value(uint8_t id, int32_t value) { 68 | return s_master_instance.getParameterBmpValue(id, value); 69 | } 70 | 71 | __unit_callback void unit_set_tempo(uint32_t tempo) { 72 | // const float t = (tempo >> 16) + (tempo & 0xFFFF) / static_cast(0x10000); 73 | (void)tempo; 74 | } 75 | 76 | __unit_callback void unit_load_preset(uint8_t idx) { 77 | s_master_instance.LoadPreset(idx); 78 | } 79 | 80 | __unit_callback uint8_t unit_get_preset_index() { 81 | return s_master_instance.getPresetIndex(); 82 | } 83 | 84 | __unit_callback const char * unit_get_preset_name(uint8_t idx) { 85 | return MasterFX::getPresetName(idx); 86 | } 87 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-revfx/.clang-format: -------------------------------------------------------------------------------- 1 | Standard: Auto 2 | BasedOnStyle: Google 3 | NamespaceIndentation: All 4 | FixNamespaceComments: true 5 | PointerAlignment: Middle 6 | DerivePointerAlignment: false 7 | SortIncludes: false 8 | ColumnLimit: 0 -------------------------------------------------------------------------------- /platform/drumlogue/dummy-revfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_reverb 6 | PROJECT_TYPE := revfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | CSRC = header.c 14 | 15 | # C++ sources 16 | CXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | ASMSRC = 20 | 21 | ASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | ULIBS += -lc 41 | 42 | ############################################################################## 43 | # Macros 44 | # 45 | 46 | UDEFS = 47 | 48 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-revfx/unit.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * File: unit.cc 3 | * 4 | * @brief drumlogue SDK unit interface 5 | * 6 | * 2022 (c) Korg All rights reserved. 7 | * 8 | */ 9 | 10 | #include "unit.h" // Note: Include common definitions for all units 11 | #include "reverb.h" // Note: Include custom reverb code 12 | 13 | static Reverb s_reverb_instance; // Note: In this case, actual instance of custom reverb object. 14 | static unit_runtime_desc_t s_runtime_desc; // Note: used to cache runtime descriptor obtained via init callback 15 | 16 | // ---- Callback entry points from drumlogue runtime ---------------------------------------------- 17 | 18 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 19 | if (!desc) 20 | return k_unit_err_undef; 21 | 22 | // Note: make sure the unit is being loaded to the correct platform/module target 23 | if (desc->target != unit_header.target) 24 | return k_unit_err_target; 25 | 26 | // Note: check API compatibility with the one this unit was built against 27 | if (!UNIT_API_IS_COMPAT(desc->api)) 28 | return k_unit_err_api_version; 29 | 30 | // Note: (optional) caching runtime descriptor for future reference 31 | s_runtime_desc = *desc; 32 | 33 | return s_reverb_instance.Init(desc); 34 | } 35 | 36 | __unit_callback void unit_teardown() { 37 | s_reverb_instance.Teardown(); 38 | } 39 | 40 | __unit_callback void unit_reset() { 41 | s_reverb_instance.Reset(); 42 | } 43 | 44 | __unit_callback void unit_resume() { 45 | s_reverb_instance.Resume(); 46 | } 47 | 48 | __unit_callback void unit_suspend() { 49 | s_reverb_instance.Suspend(); 50 | } 51 | 52 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 53 | s_reverb_instance.Process(in, out, frames); 54 | } 55 | 56 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 57 | s_reverb_instance.setParameter(id, value); 58 | } 59 | 60 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 61 | return s_reverb_instance.getParameterValue(id); 62 | } 63 | 64 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 65 | return s_reverb_instance.getParameterStrValue(id, value); 66 | } 67 | 68 | __unit_callback const uint8_t * unit_get_param_bmp_value(uint8_t id, int32_t value) { 69 | return s_reverb_instance.getParameterBmpValue(id, value); 70 | } 71 | 72 | __unit_callback void unit_set_tempo(uint32_t tempo) { 73 | // const float t = (tempo >> 16) + (tempo & 0xFFFF) / static_cast(0x10000); 74 | (void)tempo; 75 | } 76 | 77 | __unit_callback void unit_load_preset(uint8_t idx) { 78 | s_reverb_instance.LoadPreset(idx); 79 | } 80 | 81 | __unit_callback uint8_t unit_get_preset_index() { 82 | return s_reverb_instance.getPresetIndex(); 83 | } 84 | 85 | __unit_callback const char * unit_get_preset_name(uint8_t idx) { 86 | return Reverb::getPresetName(idx); 87 | } 88 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-synth/.clang-format: -------------------------------------------------------------------------------- 1 | Standard: Auto 2 | BasedOnStyle: Google 3 | NamespaceIndentation: All 4 | FixNamespaceComments: true 5 | PointerAlignment: Middle 6 | DerivePointerAlignment: false 7 | SortIncludes: false 8 | ColumnLimit: 0 -------------------------------------------------------------------------------- /platform/drumlogue/dummy-synth/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Project Configuration 3 | # 4 | 5 | PROJECT := dummy_synth 6 | PROJECT_TYPE := synth 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | CSRC = header.c 14 | 15 | # C++ sources 16 | CXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | ASMSRC = 20 | 21 | ASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | ULIBS += -lc 41 | 42 | ############################################################################## 43 | # Macros 44 | # 45 | 46 | UDEFS = 47 | 48 | -------------------------------------------------------------------------------- /platform/drumlogue/dummy-synth/unit.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * @file unit.cc 3 | * @brief drumlogue SDK unit interface 4 | * 5 | * Copyright (c) 2020-2022 KORG Inc. All rights reserved. 6 | * 7 | */ 8 | 9 | #include 10 | #include 11 | 12 | #include "unit.h" // Note: Include common definitions for all units 13 | #include "synth.h" // Note: Include custom master fx code 14 | 15 | static Synth s_synth_instance; // Note: In this case, actual instance of custom master fx object. 16 | static unit_runtime_desc_t s_runtime_desc; // Note: used to cache runtime descriptor obtained via init callback 17 | 18 | // ---- Callback entry points from drumlogue runtime ---------------------------------------------- 19 | 20 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 21 | if (!desc) 22 | return k_unit_err_undef; 23 | 24 | if (desc->target != unit_header.target) 25 | return k_unit_err_target; 26 | if (!UNIT_API_IS_COMPAT(desc->api)) 27 | return k_unit_err_api_version; 28 | 29 | s_runtime_desc = *desc; 30 | 31 | return s_synth_instance.Init(desc); 32 | } 33 | 34 | __unit_callback void unit_teardown() { 35 | s_synth_instance.Teardown(); 36 | } 37 | 38 | __unit_callback void unit_reset() { 39 | s_synth_instance.Reset(); 40 | } 41 | 42 | __unit_callback void unit_resume() { 43 | s_synth_instance.Resume(); 44 | } 45 | 46 | __unit_callback void unit_suspend() { 47 | s_synth_instance.Suspend(); 48 | } 49 | 50 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 51 | (void)in; 52 | s_synth_instance.Render(out, frames); 53 | } 54 | 55 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 56 | s_synth_instance.setParameter(id, value); 57 | } 58 | 59 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 60 | return s_synth_instance.getParameterValue(id); 61 | } 62 | 63 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 64 | return s_synth_instance.getParameterStrValue(id, value); 65 | } 66 | 67 | __unit_callback const uint8_t * unit_get_param_bmp_value(uint8_t id, int32_t value) { 68 | return s_synth_instance.getParameterBmpValue(id, value); 69 | } 70 | 71 | __unit_callback void unit_set_tempo(uint32_t tempo) { 72 | // const float t = (tempo >> 16) + (tempo & 0xFFFF) / 73 | // static_cast(0x10000); 74 | (void)tempo; 75 | } 76 | 77 | __unit_callback void unit_note_on(uint8_t note, uint8_t velocity) { 78 | s_synth_instance.NoteOn(note, velocity); 79 | } 80 | 81 | __unit_callback void unit_note_off(uint8_t note) { 82 | s_synth_instance.NoteOff(note); 83 | } 84 | 85 | __unit_callback void unit_gate_on(uint8_t velocity) { 86 | s_synth_instance.GateOn(velocity); 87 | } 88 | 89 | __unit_callback void unit_gate_off() { 90 | s_synth_instance.GateOff(); 91 | } 92 | 93 | __unit_callback void unit_all_note_off() { 94 | s_synth_instance.AllNoteOff(); 95 | } 96 | 97 | __unit_callback void unit_pitch_bend(uint16_t bend) { 98 | s_synth_instance.PitchBend(bend); 99 | } 100 | 101 | __unit_callback void unit_channel_pressure(uint8_t pressure) { 102 | s_synth_instance.ChannelPressure(pressure); 103 | } 104 | 105 | __unit_callback void unit_aftertouch(uint8_t note, uint8_t aftertouch) { 106 | s_synth_instance.Aftertouch(note, aftertouch); 107 | } 108 | 109 | __unit_callback void unit_load_preset(uint8_t idx) { 110 | return s_synth_instance.LoadPreset(idx); 111 | } 112 | 113 | __unit_callback uint8_t unit_get_preset_index() { 114 | return s_synth_instance.getPresetIndex(); 115 | } 116 | 117 | __unit_callback const char * unit_get_preset_name(uint8_t idx) { 118 | return Synth::getPresetName(idx); 119 | } 120 | -------------------------------------------------------------------------------- /platform/minilogue-xd/docs/doxy.h: -------------------------------------------------------------------------------- 1 | /** \mainpage minilogue xd SDK documentation 2 | * 3 | * 4 | * \section overview_sec Overview 5 | * 6 | * See the Modules and Classes tabs for a breakdown of the SDKs components. 7 | * 8 | */ 9 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-delfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-delfx/ld/userdelfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userdelfx.ld 36 | * 37 | * Linker Script for user delay effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-delfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "minilogue-xd", 5 | "module" : "delfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-delfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_delfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-modfx/README.md: -------------------------------------------------------------------------------- 1 | ## Modulation Effect Template Project 2 | 3 | This project can be used as a basis for custom modulation effects. **Refer to [parent platform](../) for build instructions.** 4 | 5 | ### FAQ 6 | 7 | #### Why does MODFX_PROCESS() have *main* and *sub* inputs and outputs? 8 | 9 | The modulation effect API was originally designed for the prologue synthesizer which allows each *main* and *sub* timbre audio to be processed independently by the modulation effect section. 10 | This interface was maintained in order to preserve API compatibility between the minilogue xd and prologue. 11 | For an effect to properly work on the prologue, both inputs should be processed in the same way and the result written to the corresponding output. 12 | 13 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-modfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-modfx/ld/usermodfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: usermodfx.ld 36 | * 37 | * Linker Script for user modulation effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20017800, len = 6K 47 | SDRAM (rw) : org = 0xC0400000, len = 128K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-modfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "minilogue-xd", 5 | "module" : "modfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-modfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_modfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-osc/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-osc/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-osc/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "minilogue-xd", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["dummy0", 0, 100, "%"], 14 | ["dummy1", 0, 100, "%"], 15 | ["dummy2", 0, 100, "%"], 16 | ["dummy3", 0, 100, "%"], 17 | ["dummy4", -100, 100, "%"], 18 | ["dummy5", 0, 10, ""] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-osc/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_osc 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-revfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-revfx/ld/userrevfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userrevfx.ld 36 | * 37 | * Linker Script for user reverb effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-revfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "minilogue-xd", 5 | "module" : "revfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/minilogue-xd/dummy-revfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_revfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/minilogue-xd/waves/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/minilogue-xd/waves/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/minilogue-xd/waves/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "minilogue-xd", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-1", 10 | "name" : "waves", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["Wave A", 0, 45, ""], 14 | ["Wave B", 0, 43, ""], 15 | ["Sub Wave", 0, 15, ""], 16 | ["Sub Mix", 0, 100, "%"], 17 | ["Ring Mix", 0, 100, "%"], 18 | ["Bit Crush", 0, 100, "%"] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/minilogue-xd/waves/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = waves 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = waves.cpp 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/attributes.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file attributes.h 36 | * 37 | * @brief Some useful compiler attribute shorthands 38 | * 39 | */ 40 | 41 | #ifndef ATTRIBUTES_H_ 42 | #define ATTRIBUTES_H_ 43 | 44 | #define noopt __attribute__((optimize("O0"))) 45 | #define fast __attribute__((optimize("Ofast"))) 46 | 47 | #define force_inline inline __attribute__((always_inline)) 48 | #define fast_inline inline __attribute__((always_inline, optimize("Ofast"))) 49 | 50 | #define __unit_callback __attribute__((used)) 51 | #define __unit_header __attribute__((used, section(".unit_header"))) 52 | 53 | #endif // ATTRIBUTES_H_ 54 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file macros.h 36 | * 37 | * @brief Some useful macros 38 | * 39 | */ 40 | 41 | #ifndef MACROS_H_ 42 | #define MACROS_H_ 43 | 44 | #include "utils/float_math.h" 45 | 46 | #define param_10bit_to_f32(val) ((uint16_t)(val) * 9.77517106549365e-004f) // 0-1023 -> 0.f-1.f 47 | #define param_f32_to_10bit(f32) ((uint16_t)si_roundf((f32) * 1023U)) // 0.f-1.f -> 0-1023 48 | 49 | // Note: Keep these macros for backward compatibility 50 | #define param_val_to_f32(val) param_10bit_to_f32(val) 51 | #define param_f32_to_val(f32) param_f32_to_10bit(f32) 52 | 53 | #endif // MACROS_H_ 54 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/unit.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit.h 36 | * 37 | * @brief Unit common header 38 | * 39 | */ 40 | 41 | #ifndef UNIT_H_ 42 | #define UNIT_H_ 43 | 44 | #include 45 | 46 | #include "attributes.h" 47 | #include "macros.h" 48 | #include "runtime.h" 49 | 50 | #ifdef __cplusplus 51 | extern "C" { 52 | #endif 53 | 54 | extern const unit_header_t unit_header; 55 | 56 | int8_t unit_init(const unit_runtime_desc_t *); 57 | void unit_teardown(); 58 | void unit_reset(); 59 | void unit_resume(); 60 | void unit_suspend(); 61 | void unit_render(const float *, float *, uint32_t); 62 | int32_t unit_get_param_value(uint8_t); 63 | const char * unit_get_param_str_value(uint8_t, int32_t); 64 | void unit_set_param_value(uint8_t, int32_t); 65 | void unit_set_tempo(uint32_t); 66 | void unit_tempo_4ppqn_tick(uint32_t); 67 | void unit_note_on(uint8_t, uint8_t); 68 | void unit_note_off(uint8_t); 69 | void unit_all_note_off(void); 70 | void unit_pitch_bend(uint16_t); 71 | void unit_channel_pressure(uint8_t); 72 | void unit_aftertouch(uint8_t, uint8_t); 73 | 74 | #ifdef __cplusplus 75 | } // extern "C" 76 | #endif 77 | 78 | #endif // UNIT_H_ 79 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/unit_delfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit_delfx.h 36 | * 37 | * @brief Base header for delay effect units 38 | * 39 | */ 40 | 41 | #ifndef UNIT_DELFX_H_ 42 | #define UNIT_DELFX_H_ 43 | 44 | #include 45 | 46 | #include "unit.h" 47 | #include "fx_api.h" 48 | 49 | #ifdef __cplusplus 50 | extern "C" { 51 | #endif 52 | 53 | /** Exposed parameters with fixed/direct UI controls. */ 54 | enum { 55 | k_unit_delfx_fixed_param_time = 0, 56 | k_unit_delfx_fixed_param_depth, 57 | k_unit_delfx_fixed_param_mix, 58 | k_num_unit_delfx_fixed_param_id 59 | }; 60 | 61 | #define UNIT_DELFX_MAX_PARAM_COUNT (11) 62 | 63 | #ifdef __cplusplus 64 | } // extern "C" 65 | #endif 66 | 67 | #endif // UNIT_DELFX_H_ 68 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/unit_modfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit_modfx.h 36 | * 37 | * @brief Base header for modulation effect units 38 | * 39 | */ 40 | 41 | #ifndef UNIT_MODFX_H_ 42 | #define UNIT_MODFX_H_ 43 | 44 | #include 45 | 46 | #include "unit.h" 47 | #include "fx_api.h" 48 | 49 | #ifdef __cplusplus 50 | extern "C" { 51 | #endif 52 | 53 | /** Exposed parameters with fixed/direct UI controls. */ 54 | enum { 55 | k_unit_modfx_fixed_param_time = 0, 56 | k_unit_modfx_fixed_param_depth, 57 | k_num_unit_modfx_fixed_param_id 58 | }; 59 | 60 | #define UNIT_MODFX_MAX_PARAM_COUNT (10) 61 | 62 | #ifdef __cplusplus 63 | } // extern "C" 64 | #endif 65 | 66 | #endif // UNIT_MODFX_H_ 67 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/unit_osc.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit_osc.h 36 | * 37 | * @brief Base header for oscillator units 38 | * 39 | */ 40 | 41 | #ifndef UNIT_OSC_H_ 42 | #define UNIT_OSC_H_ 43 | 44 | #include 45 | 46 | #include "unit.h" 47 | #include "osc_api.h" 48 | 49 | #ifdef __cplusplus 50 | extern "C" { 51 | #endif 52 | 53 | /** 54 | * Oscillator input usage states 55 | */ 56 | enum { 57 | k_runtime_osc_input_unused = 0U, 58 | k_runtime_osc_input_used, 59 | }; 60 | 61 | /** 62 | * Pointer to notify_input_usage(uint8_t usage), used to notify the runtime that oscillator is using the audio input or not. 63 | * Note: the runtime assumes audio input is unused by default 64 | */ 65 | typedef void (*unit_runtime_osc_notify_input_usage_ptr)(uint8_t); 66 | 67 | /** Oscillator specific unit runtime context. */ 68 | typedef struct unit_runtime_osc_context { 69 | int32_t shape_lfo; // Shape LFO signal encoded in Q31 fixed point format 70 | uint16_t pitch; // Upper 8 bits: note, Lower 8 bits: inter-note fraction 71 | uint16_t cutoff; // Unused. Future. 72 | uint16_t resonance; // Unused. Future. 73 | uint8_t amp_eg_phase; // Unused. Future. 74 | uint8_t amp_eg_state:3; // Unused. Future. 75 | uint8_t padding0:5; 76 | unit_runtime_osc_notify_input_usage_ptr notify_input_usage; 77 | } unit_runtime_osc_context_t; 78 | 79 | /** Exposed parameters with fixed/direct UI controls. */ 80 | enum { 81 | k_unit_osc_fixed_param_shape = 0, 82 | k_unit_osc_fixed_param_altshape, 83 | k_num_unit_osc_fixed_param_id 84 | }; 85 | 86 | #define UNIT_OSC_MAX_PARAM_COUNT (10) 87 | 88 | #ifdef __cplusplus 89 | } // extern "C" 90 | #endif 91 | 92 | #endif // UNIT_OSC_H_ 93 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/common/unit_revfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit_revfx.h 36 | * 37 | * @brief Base header for reverb effect units 38 | * 39 | */ 40 | 41 | #ifndef UNIT_REVFX_H_ 42 | #define UNIT_REVFX_H_ 43 | 44 | #include 45 | 46 | #include "unit.h" 47 | #include "fx_api.h" 48 | 49 | #ifdef __cplusplus 50 | extern "C" { 51 | #endif 52 | 53 | /** Exposed parameters with fixed/direct UI controls. */ 54 | enum { 55 | k_unit_revfx_fixed_param_time = 0, 56 | k_unit_revfx_fixed_param_depth, 57 | k_unit_revfx_fixed_param_mix, 58 | k_num_unit_revfx_fixed_param_id 59 | }; 60 | 61 | #define UNIT_REVFX_MAX_PARAM_COUNT (11) 62 | 63 | #ifdef __cplusplus 64 | } // extern "C" 65 | #endif 66 | 67 | #endif // UNIT_REVFX_H_ 68 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-delfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_delfx 6 | PROJECT_TYPE := delfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-delfx/unit.cc: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: unit.cc 36 | * 37 | * NTS-1 mkII delay effect unit interface 38 | * 39 | */ 40 | 41 | #include "unit_delfx.h" // Note: Include base definitions for delfx units 42 | 43 | #include "delay.h" // Note: Include custom delay code 44 | 45 | static Delay s_delay_instance; // Note: In this example, actual instance of custom delay object. 46 | 47 | // ---- Callbacks exposed to runtime ---------------------------------------------- 48 | 49 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 50 | return s_delay_instance.Init(desc); 51 | } 52 | 53 | __unit_callback void unit_teardown() { 54 | s_delay_instance.Teardown(); 55 | } 56 | 57 | __unit_callback void unit_reset() { 58 | s_delay_instance.Reset(); 59 | } 60 | 61 | __unit_callback void unit_resume() { 62 | s_delay_instance.Resume(); 63 | } 64 | 65 | __unit_callback void unit_suspend() { 66 | s_delay_instance.Suspend(); 67 | } 68 | 69 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 70 | s_delay_instance.Process(in, out, frames); 71 | } 72 | 73 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 74 | s_delay_instance.setParameter(id, value); 75 | } 76 | 77 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 78 | return s_delay_instance.getParameterValue(id); 79 | } 80 | 81 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 82 | return s_delay_instance.getParameterStrValue(id, value); 83 | } 84 | 85 | __unit_callback void unit_set_tempo(uint32_t tempo) { 86 | s_delay_instance.setTempo(tempo); 87 | } 88 | 89 | __unit_callback void unit_tempo_4ppqn_tick(uint32_t counter) { 90 | s_delay_instance.tempo4ppqnTick(counter); 91 | } 92 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-modfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_modfx 6 | PROJECT_TYPE := modfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-modfx/unit.cc: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: unit.cc 36 | * 37 | * NTS-1 mkII modulation effect unit interface 38 | * 39 | */ 40 | 41 | #include "unit_modfx.h" // Note: Include base definitions for modfx units 42 | 43 | #include "modfx.h" // Note: Include custom modulation effect code 44 | 45 | static Modfx s_modfx_instance; // Note: In this example, actual instance of custom modfx object. 46 | 47 | // ---- Callbacks exposed to runtime ---------------------------------------------- 48 | 49 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 50 | return s_modfx_instance.Init(desc); 51 | } 52 | 53 | __unit_callback void unit_teardown() { 54 | s_modfx_instance.Teardown(); 55 | } 56 | 57 | __unit_callback void unit_reset() { 58 | s_modfx_instance.Reset(); 59 | } 60 | 61 | __unit_callback void unit_resume() { 62 | s_modfx_instance.Resume(); 63 | } 64 | 65 | __unit_callback void unit_suspend() { 66 | s_modfx_instance.Suspend(); 67 | } 68 | 69 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 70 | s_modfx_instance.Process(in, out, frames); 71 | } 72 | 73 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 74 | s_modfx_instance.setParameter(id, value); 75 | } 76 | 77 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 78 | return s_modfx_instance.getParameterValue(id); 79 | } 80 | 81 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 82 | return s_modfx_instance.getParameterStrValue(id, value); 83 | } 84 | 85 | __unit_callback void unit_set_tempo(uint32_t tempo) { 86 | s_modfx_instance.setTempo(tempo); 87 | } 88 | 89 | __unit_callback void unit_tempo_4ppqn_tick(uint32_t counter) { 90 | s_modfx_instance.tempo4ppqnTick(counter); 91 | } 92 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-osc/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_osc 6 | PROJECT_TYPE := osc 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-revfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_revfx 6 | PROJECT_TYPE := revfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/dummy-revfx/unit.cc: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: unit.cc 36 | * 37 | * NTS-1 mkII reverb effect unit interface 38 | * 39 | */ 40 | 41 | #include "unit_revfx.h" // Note: Include base definitions for revfx units 42 | 43 | #include "reverb.h" // Note: Include custom reverb code 44 | 45 | static Reverb s_reverb_instance; // Note: In this example, actual instance of custom reverb object. 46 | 47 | // ---- Callbacks exposed to runtime ---------------------------------------------- 48 | 49 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 50 | return s_reverb_instance.Init(desc); 51 | } 52 | 53 | __unit_callback void unit_teardown() { 54 | s_reverb_instance.Teardown(); 55 | } 56 | 57 | __unit_callback void unit_reset() { 58 | s_reverb_instance.Reset(); 59 | } 60 | 61 | __unit_callback void unit_resume() { 62 | s_reverb_instance.Resume(); 63 | } 64 | 65 | __unit_callback void unit_suspend() { 66 | s_reverb_instance.Suspend(); 67 | } 68 | 69 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 70 | s_reverb_instance.Process(in, out, frames); 71 | } 72 | 73 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 74 | s_reverb_instance.setParameter(id, value); 75 | } 76 | 77 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 78 | return s_reverb_instance.getParameterValue(id); 79 | } 80 | 81 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 82 | return s_reverb_instance.getParameterStrValue(id, value); 83 | } 84 | 85 | __unit_callback void unit_set_tempo(uint32_t tempo) { 86 | s_reverb_instance.setTempo(tempo); 87 | } 88 | 89 | __unit_callback void unit_tempo_4ppqn_tick(uint32_t counter) { 90 | s_reverb_instance.tempo4ppqnTick(counter); 91 | } 92 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/ld/unit.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | __heap_size = 0x0; /* Must configure if using newlib features that need the heap */ 35 | __stack_size = 0x0; /* Must configure if using newlib features that need a dedicated stack */ 36 | 37 | /* Include Rules */ 38 | INCLUDE rules.ld 39 | 40 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/waves/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := waves 6 | PROJECT_TYPE := osc 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-1_mkii/waves/waves_common.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: waves_common.h 36 | * 37 | * Common definitions specific to waves oscillator 38 | * 39 | */ 40 | 41 | #ifndef WAVES_COMMON_H_ 42 | #define WAVES_COMMON_H_ 43 | 44 | #include "unit_osc.h" 45 | 46 | #define WAVE_A_CNT (k_waves_a_cnt + k_waves_b_cnt + k_waves_c_cnt) 47 | #define WAVE_B_CNT (k_waves_d_cnt + k_waves_e_cnt + k_waves_f_cnt) 48 | #define SUB_WAVE_CNT (k_waves_a_cnt) 49 | 50 | #endif // WAVES_COMMON_H_ 51 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/common/attributes.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file attributes.h 36 | * 37 | * @brief Some useful compiler attribute shorthands 38 | * 39 | */ 40 | 41 | #ifndef ATTRIBUTES_H_ 42 | #define ATTRIBUTES_H_ 43 | 44 | #define noopt __attribute__((optimize("O0"))) 45 | #define fast __attribute__((optimize("Ofast"))) 46 | 47 | #define force_inline inline __attribute__((always_inline)) 48 | #define fast_inline inline __attribute__((always_inline, optimize("Ofast"))) 49 | 50 | #define __unit_callback __attribute__((used)) 51 | #define __unit_header __attribute__((used, section(".unit_header"))) 52 | 53 | #endif // ATTRIBUTES_H_ 54 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/common/macros.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file macros.h 36 | * 37 | * @brief Some useful macros 38 | * 39 | */ 40 | 41 | #ifndef MACROS_H_ 42 | #define MACROS_H_ 43 | 44 | #include "utils/float_math.h" 45 | 46 | #define param_10bit_to_f32(val) ((uint16_t)(val) * 9.77517106549365e-004f) // 0-1023 -> 0.f-1.f 47 | #define param_f32_to_10bit(f32) ((uint16_t)si_roundf((f32) * 1023U)) // 0.f-1.f -> 0-1023 48 | 49 | // Note: Keep these macros for backward compatibility 50 | #define param_val_to_f32(val) param_10bit_to_f32(val) 51 | #define param_f32_to_val(f32) param_f32_to_10bit(f32) 52 | 53 | #endif // MACROS_H_ 54 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/common/unit.h: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018-2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /** 35 | * @file unit.h 36 | * 37 | * @brief Unit common header 38 | * 39 | */ 40 | 41 | #ifndef UNIT_H_ 42 | #define UNIT_H_ 43 | 44 | #include 45 | 46 | #include "attributes.h" 47 | #include "macros.h" 48 | #include "runtime.h" 49 | 50 | #ifdef __cplusplus 51 | extern "C" { 52 | #endif 53 | 54 | int8_t unit_init(const unit_runtime_desc_t *); 55 | void unit_teardown(); 56 | void unit_reset(); 57 | void unit_resume(); 58 | void unit_suspend(); 59 | void unit_render(const float *, float *, uint32_t); 60 | int32_t unit_get_param_value(uint8_t); 61 | const char * unit_get_param_str_value(uint8_t, int32_t); 62 | void unit_set_param_value(uint8_t, int32_t); 63 | void unit_set_tempo(uint32_t); 64 | void unit_tempo_4ppqn_tick(uint32_t); 65 | void unit_touch_event(uint8_t,uint8_t,uint32_t,uint32_t); 66 | 67 | #ifdef __cplusplus 68 | } // extern "C" 69 | #endif 70 | 71 | #endif // UNIT_H_ 72 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/dummy-genericfx/config.mk: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # Configuration for Makefile 3 | # 4 | 5 | PROJECT := dummy_genericfx 6 | PROJECT_TYPE := genericfx 7 | 8 | ############################################################################## 9 | # Sources 10 | # 11 | 12 | # C sources 13 | UCSRC = header.c 14 | 15 | # C++ sources 16 | UCXXSRC = unit.cc 17 | 18 | # List ASM source files here 19 | UASMSRC = 20 | 21 | UASMXSRC = 22 | 23 | ############################################################################## 24 | # Include Paths 25 | # 26 | 27 | UINCDIR = 28 | 29 | ############################################################################## 30 | # Library Paths 31 | # 32 | 33 | ULIBDIR = 34 | 35 | ############################################################################## 36 | # Libraries 37 | # 38 | 39 | ULIBS = -lm 40 | 41 | ############################################################################## 42 | # Macros 43 | # 44 | 45 | UDEFS = 46 | 47 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/dummy-genericfx/unit.cc: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: unit.cc 36 | * 37 | * NTS-3 kaoss pad kit generic effect unit interface 38 | * 39 | */ 40 | 41 | #include "unit_genericfx.h" // Note: Include base definitions for genericfx units 42 | 43 | #include "effect.h" // Note: Include template effect code 44 | 45 | static Effect s_effect_instance; // Note: In this example, actual effect instance. 46 | 47 | // ---- Callbacks exposed to runtime ---------------------------------------------- 48 | 49 | __unit_callback int8_t unit_init(const unit_runtime_desc_t * desc) { 50 | return s_effect_instance.Init(desc); 51 | } 52 | 53 | __unit_callback void unit_teardown() { 54 | s_effect_instance.Teardown(); 55 | } 56 | 57 | __unit_callback void unit_reset() { 58 | s_effect_instance.Reset(); 59 | } 60 | 61 | __unit_callback void unit_resume() { 62 | s_effect_instance.Resume(); 63 | } 64 | 65 | __unit_callback void unit_suspend() { 66 | s_effect_instance.Suspend(); 67 | } 68 | 69 | __unit_callback void unit_render(const float * in, float * out, uint32_t frames) { 70 | s_effect_instance.Process(in, out, frames); 71 | } 72 | 73 | __unit_callback void unit_set_param_value(uint8_t id, int32_t value) { 74 | s_effect_instance.setParameter(id, value); 75 | } 76 | 77 | __unit_callback int32_t unit_get_param_value(uint8_t id) { 78 | return s_effect_instance.getParameterValue(id); 79 | } 80 | 81 | __unit_callback const char * unit_get_param_str_value(uint8_t id, int32_t value) { 82 | return s_effect_instance.getParameterStrValue(id, value); 83 | } 84 | 85 | __unit_callback void unit_set_tempo(uint32_t tempo) { 86 | s_effect_instance.setTempo(tempo); 87 | } 88 | 89 | __unit_callback void unit_tempo_4ppqn_tick(uint32_t counter) { 90 | s_effect_instance.tempo4ppqnTick(counter); 91 | } 92 | 93 | __unit_callback void unit_touch_event(uint8_t id, uint8_t phase, uint32_t x, uint32_t y) { 94 | s_effect_instance.touchEvent(id, phase, x, y); 95 | } 96 | 97 | -------------------------------------------------------------------------------- /platform/nts-3_kaoss/ld/unit.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2023, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | __heap_size = 0x0; /* Must configure if using newlib features that need the heap */ 35 | __stack_size = 0x0; /* Must configure if using newlib features that need a dedicated stack */ 36 | 37 | /* Include Rules */ 38 | INCLUDE rules.ld 39 | 40 | -------------------------------------------------------------------------------- /platform/nutekt-digital/docs/doxy.h: -------------------------------------------------------------------------------- 1 | /** \mainpage Nu:Tekt NTS-1 digital SDK documentation 2 | * 3 | * 4 | * \section overview_sec Overview 5 | * 6 | * See the Modules and Classes tabs for a breakdown of the SDKs components. 7 | * 8 | */ 9 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-delfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-delfx/ld/userdelfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userdelfx.ld 36 | * 37 | * Linker Script for user delay effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-delfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "nutekt-digital", 5 | "module" : "delfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-delfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_delfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-modfx/README.md: -------------------------------------------------------------------------------- 1 | ## Modulation Effect Template Project 2 | 3 | This project can be used as a basis for custom modulation effects. **Refer to [parent platform](../) for build instructions.** 4 | 5 | ### FAQ 6 | 7 | #### Why does MODFX_PROCESS() have *main* and *sub* inputs and outputs? 8 | 9 | The modulation effect API was originally designed for the prologue synthesizer which allows each *main* and *sub* timbre audio to be processed independently by the modulation effect section. 10 | This interface was maintained in order to preserve API compatibility between the minilogue xd and prologue. 11 | For an effect to properly work on the prologue, both inputs should be processed in the same way and the result written to the corresponding output. 12 | 13 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-modfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-modfx/ld/usermodfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: usermodfx.ld 36 | * 37 | * Linker Script for user modulation effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20017800, len = 6K 47 | SDRAM (rw) : org = 0xC0400000, len = 128K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-modfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "nutekt-digital", 5 | "module" : "modfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-modfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_modfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-osc/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-osc/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-osc/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "nutekt-digital", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["dummy0", 0, 100, "%"], 14 | ["dummy1", 0, 100, "%"], 15 | ["dummy2", 0, 100, "%"], 16 | ["dummy3", 0, 100, "%"], 17 | ["dummy4", -100, 100, "%"], 18 | ["dummy5", 0, 10, ""] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-osc/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_osc 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-revfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-revfx/ld/userrevfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userrevfx.ld 36 | * 37 | * Linker Script for user reverb effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-revfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "nutekt-digital", 5 | "module" : "revfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/nutekt-digital/dummy-revfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_revfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/nutekt-digital/waves/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/nutekt-digital/waves/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/nutekt-digital/waves/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "nutekt-digital", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-1", 10 | "name" : "waves", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["Wave A", 0, 45, ""], 14 | ["Wave B", 0, 43, ""], 15 | ["Sub Wave", 0, 15, ""], 16 | ["Sub Mix", 0, 100, "%"], 17 | ["Ring Mix", 0, 100, "%"], 18 | ["Bit Crush", 0, 100, "%"] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/nutekt-digital/waves/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = waves 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = waves.cpp 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/prologue/docs/doxy.h: -------------------------------------------------------------------------------- 1 | /** \mainpage prologue SDK documentation 2 | * 3 | * 4 | * \section overview_sec Overview 5 | * 6 | * See the Modules and Classes tabs for a breakdown of the SDKs components. 7 | * 8 | */ 9 | -------------------------------------------------------------------------------- /platform/prologue/dummy-delfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/prologue/dummy-delfx/ld/userdelfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userdelfx.ld 36 | * 37 | * Linker Script for user delay effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/prologue/dummy-delfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "prologue", 5 | "module" : "delfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/prologue/dummy-delfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_delfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/prologue/dummy-modfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/prologue/dummy-modfx/ld/usermodfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: usermodfx.ld 36 | * 37 | * Linker Script for user modulation effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20017800, len = 6K 47 | SDRAM (rw) : org = 0xC0400000, len = 128K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/prologue/dummy-modfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "prologue", 5 | "module" : "modfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/prologue/dummy-modfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_modfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/prologue/dummy-osc/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/prologue/dummy-osc/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/prologue/dummy-osc/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "prologue", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["dummy0", 0, 100, "%"], 14 | ["dummy1", 0, 100, "%"], 15 | ["dummy2", 0, 100, "%"], 16 | ["dummy3", 0, 100, "%"], 17 | ["dummy4", -100, 100, "%"], 18 | ["dummy5", 0, 10, ""] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/prologue/dummy-osc/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_osc 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/prologue/dummy-revfx/ld/main_api.syms: -------------------------------------------------------------------------------- 1 | 2 | k_fx_api_version = 0x0807b000; 3 | k_fx_api_platform = 0x0807b004; 4 | sqrtm2log_lut_f = 0x0807b100; 5 | tanpi_lut_f = 0x0807b504; 6 | log_lut_f = 0x0807b908; 7 | bitres_lut_f = 0x0807bd0c; 8 | wt_sine_lut_f = 0x0807bf10; 9 | schetzen_lut_f = 0x0807c114; 10 | cubicsat_lut_f = 0x0807c318; 11 | pow2_lut_f = 0x0807c51c; 12 | _fx_mcu_hash = 0x0807c920; 13 | _fx_rand = 0x0807c92c; 14 | _fx_white = 0x0807c964; 15 | _fx_get_bpm = 0x0807ca88; 16 | _fx_get_bpmf = 0x0807ca8c; 17 | -------------------------------------------------------------------------------- /platform/prologue/dummy-revfx/ld/userrevfx.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userrevfx.ld 36 | * 37 | * Linker Script for user reverb effects 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20019000, len = 12K 47 | SDRAM (rw) : org = 0xC0420000, len = 2432K 48 | } 49 | 50 | /* Include Rules */ 51 | INCLUDE rules.ld 52 | -------------------------------------------------------------------------------- /platform/prologue/dummy-revfx/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "prologue", 5 | "module" : "revfx", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-0", 10 | "name" : "dummy", 11 | "num_param" : 0 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /platform/prologue/dummy-revfx/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = dummy_revfx 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /platform/prologue/waves/ld/osc_api.syms: -------------------------------------------------------------------------------- 1 | k_osc_api_version = 0x0800f000; 2 | k_osc_api_platform = 0x0800f004; 3 | midi_to_hz_lut_f = 0x0800f100; 4 | sqrtm2log_lut_f = 0x0800f360; 5 | tanpi_lut_f = 0x0800f764; 6 | log_lut_f = 0x0800fb68; 7 | bitres_lut_f = 0x0800ff6c; 8 | wt_par_lut_f = 0x08010170; 9 | wt_par_notes = 0x08010f8c; 10 | wt_sqr_lut_f = 0x08010f94; 11 | wt_sqr_notes = 0x08011db0; 12 | wt_saw_lut_f = 0x08011db8; 13 | wt_saw_notes = 0x08012bd4; 14 | wt_sine_lut_f = 0x08012bdc; 15 | schetzen_lut_f = 0x08012de0; 16 | cubicsat_lut_f = 0x08012fe4; 17 | wavesA = 0x080131e8; 18 | wavesB = 0x0801546c; 19 | wavesC = 0x080174ec; 20 | wavesD = 0x0801915c; 21 | wavesE = 0x0801abc4; 22 | wavesF = 0x0801ca3c; 23 | _osc_mcu_hash = 0x0801eabc; 24 | _osc_bl_saw_idx = 0x0801eac8; 25 | _osc_bl_sqr_idx = 0x0801ebb0; 26 | _osc_bl_par_idx = 0x0801ec98; 27 | _osc_rand = 0x0801ed80; 28 | _osc_white = 0x0801edb8; 29 | -------------------------------------------------------------------------------- /platform/prologue/waves/ld/userosc.ld: -------------------------------------------------------------------------------- 1 | /* 2 | BSD 3-Clause License 3 | 4 | Copyright (c) 2018, KORG INC. 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name of the copyright holder nor the names of its 18 | contributors may be used to endorse or promote products derived from 19 | this software without specific prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | //*/ 33 | 34 | /* 35 | * File: userosc.ld 36 | * 37 | * Linker Script for user oscillators 38 | */ 39 | 40 | /* Entry Point */ 41 | ENTRY(_entry) 42 | 43 | /* Specify the memory areas */ 44 | MEMORY 45 | { 46 | SRAM (rx) : org = 0x20000000, len = 32K 47 | } 48 | 49 | /* Include Rules */ 50 | INCLUDE rules.ld 51 | -------------------------------------------------------------------------------- /platform/prologue/waves/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "header" : 3 | { 4 | "platform" : "prologue", 5 | "module" : "osc", 6 | "api" : "1.1-0", 7 | "dev_id" : 0, 8 | "prg_id" : 0, 9 | "version" : "1.0-1", 10 | "name" : "waves", 11 | "num_param" : 6, 12 | "params" : [ 13 | ["Wave A", 0, 45, ""], 14 | ["Wave B", 0, 43, ""], 15 | ["Sub Wave", 0, 15, ""], 16 | ["Sub Mix", 0, 100, "%"], 17 | ["Ring Mix", 0, 100, "%"], 18 | ["Bit Crush", 0, 100, "%"] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /platform/prologue/waves/project.mk: -------------------------------------------------------------------------------- 1 | # ############################################################################# 2 | # Project Customization 3 | # ############################################################################# 4 | 5 | PROJECT = waves 6 | 7 | UCSRC = 8 | 9 | UCXXSRC = waves.cpp 10 | 11 | UINCDIR = 12 | 13 | UDEFS = 14 | 15 | ULIB = 16 | 17 | ULIBDIR = 18 | -------------------------------------------------------------------------------- /tools/README.md: -------------------------------------------------------------------------------- 1 | ## Tools (Legacy) 2 | 3 | [日本語](./README_ja.md) 4 | 5 | Required tools to build [prologue](https://www.korg.com/products/synthesizers/prologue), [minilogue xd](https://www.korg.com/products/synthesizers/minilogue_xd), and [Nu:Tekt NTS-1 digital kit](https://www.korg.com/products/dj/nts_1) logue SDK units. 6 | 7 | These have been kept here for compatibility purposes, but the newer [Docker-based build environment](../docker) should be preferred whenever possible. 8 | 9 | 10 | -------------------------------------------------------------------------------- /tools/README_ja.md: -------------------------------------------------------------------------------- 1 | ## Tools (Legacy) 2 | 3 | [English](./README.md) 4 | 5 | [prologue](https://www.korg.com/products/synthesizers/prologue), [minilogue xd](https://www.korg.com/products/synthesizers/minilogue_xd), [Nu:Tekt NTS-1 digital kit](https://www.korg.com/products/dj/nts_1) のlogue SDKユニットを構築するために必要なツールです. 6 | 7 | これらは互換性のために残されていますが, 新しい [Dockerベースのビルド環境](../docker) を可能な限り優先してください. 8 | -------------------------------------------------------------------------------- /tools/gcc/README.md: -------------------------------------------------------------------------------- 1 | ## Installing the GNU Arm Embedded Toolchain 2 | 3 | Prebuilt binaries are available [here](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads). 4 | 5 | Recommended versions per target platform: 6 | * prologue: 5-2016-q3-update 7 | * minilogue-xd: 5-2016-q3-update 8 | * nutekt-digital (NTS-1): 5-2016-q3-update 9 | * drumlogue: (None, must use docker build environment) 10 | * NTS-1 digital kit mkII: 10.3-2021.10 11 | * NTS-3 kaoss pad kit: 10.3-2021.10 12 | 13 | ### macOS 14 | 15 | Run `./get_gcc_macos.sh` to download each recommended gcc versions and unpack them automatically. 16 | 17 | ### Linux 18 | 19 | #### Native System or VM 20 | 21 | Run `./get_gcc_linux.sh` to download each recommended gcc versions and unpack them automatically. 22 | 23 | #### Windows Subsystem for Linux 24 | 25 | Unfortunately, only 32 bit prebuilt packages of GCC 5-2016-q3-update are available for Linux and WSL does not support running 32 bit ELF executables. 26 | A possibility is to obtain the source package from the link above and manually build gcc, or install an appropriate package from your distribution and create a symlink named `gcc-arm-none-eabi-5_4-2016q3` pointing to the package's install location. 27 | 28 | ### Windows 29 | 30 | #### MSYS2 31 | 32 | If you have MSYS2 installed you can run `./get_gcc_msys.sh` to download each recommended gcc versions and unpack them automatically. 33 | 34 | _Note 1: MSYS2 installers for Windows can be found at [https://www.msys2.org/](https://www.msys2.org/)_ 35 | 36 | _Note 2: The install script requires the unzip package. It can be installed by running: `pacman -S unzip`_ 37 | 38 | #### Manual Procedure 39 | 40 | Download version 5-2016-q3-update in *ZIP format* from the link above and unpack it in this directory under the name "gcc-arm-none-eabi-5_4-2016q3". 41 | 42 | The directory should have the following structure: 43 | 44 | ``` 45 | gcc-arm-none-eabi-5_4-2016q3/ 46 | | 47 | +-- arm-none-eabi/ 48 | | 49 | +-- bin/ 50 | | 51 | +-- lib/ 52 | | 53 | +-- share/ 54 | ``` 55 | 56 | Download version 10.3-2021.10 in *ZIP format* from the link above and unpack it in this directory under the name "gcc-arm-none-eabi-10.3-2021.10". 57 | 58 | The directory should have the following structure: 59 | 60 | ``` 61 | gcc-arm-none-eabi-10.3-2021.10/ 62 | | 63 | +-- arm-none-eabi/ 64 | | 65 | +-- bin/ 66 | | 67 | +-- lib/ 68 | | 69 | +-- share/ 70 | ``` 71 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_10_3-2021_10_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018-2022, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="10.3-2021.10" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2" 41 | ARCHIVE_SHA1="3d7cc8285cafcd63f65f8b2576f4ca4affddf15b" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2" 43 | 44 | if [[ "${OSTYPE}" == "linux-gnu" ]]; then 45 | echo ">> Assuming Linux on intel 64 bit platform." 46 | else 47 | echo ">> This script is meant for Linux (intel 64 bit)." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | TAR=$(which tar) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${TAR} -jxf "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_10_3-2021_10_macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018-2022, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="10.3-2021.10" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-mac.tar.bz2" 41 | ARCHIVE_SHA1="9a4598c98c986edc2b62c75b152b98421943833c" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-10.3-2021.10-mac.tar.bz2" 43 | 44 | if [[ "${OSTYPE}" == "darwin"* ]]; then 45 | echo ">> Assuming OSX 64 bit platform." 46 | else 47 | echo ">> This script is meant for OSX." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | TAR=$(which tar) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which shasum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${TAR} -jxf "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_10_3-2021_10_msys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="10.3-2021.10" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-win32.zip" 41 | ARCHIVE_SHA1="72b73ef724b72260f842bb4d5fe6aa264e3e5b74" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-10.3-2021.10-win32.zip" 43 | 44 | if [[ "${OSTYPE}" == "msys" ]]; then 45 | echo ">> Assuming msys platform." 46 | else 47 | echo ">> This script is meant for msys." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | UNZIP=$(which unzip) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${UNZIP} -u -q "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_5_4-2016q3_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="5-2016-q3" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/5_4-2016q3/gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2" 41 | ARCHIVE_SHA1="e87bbefaccbb43d30c084faeb945f4e96e7ec780" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2" 43 | 44 | if [[ "${OSTYPE}" == "linux-gnu" ]]; then 45 | echo ">> Assuming Linux on intel 32 bit platform." 46 | else 47 | echo ">> This script is meant for Linux (intel 32 bit)." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | TAR=$(which tar) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${TAR} -jxf "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_5_4-2016q3_macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="5-2016-q3" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/5_4-2016q3/gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2" 41 | ARCHIVE_SHA1="defb787491a64d24f25b2e3c190170f735d4f14d" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-5_4-2016q3-20160926-mac.tar.bz2" 43 | 44 | if [[ "${OSTYPE}" == "darwin"* ]]; then 45 | echo ">> Assuming OSX 64 bit platform." 46 | else 47 | echo ">> This script is meant for OSX." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | TAR=$(which tar) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which shasum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${TAR} -jxf "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_5_4-2016q3_msys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="gcc-arm-none-eabi" 38 | VERSION="5-2016-q3" 39 | 40 | ARCHIVE_URL="https://developer.arm.com/-/media/Files/downloads/gnu-rm/5_4-2016q3/gcc-arm-none-eabi-5_4-2016q3-20160926-win32-zip.zip" 41 | ARCHIVE_SHA1="f6c05562b5f031bf79ec13c6f7311245c717be1b" 42 | ARCHIVE_NAME="gcc-arm-none-eabi-5_4-2016q3-20160926-win32.zip" 43 | UNPACKED_NAME="gcc-arm-none-eabi-5_4-2016q3" 44 | 45 | if [[ "${OSTYPE}" == "msys" ]]; then 46 | echo ">> Assuming msys platform." 47 | else 48 | echo ">> This script is meant for msys." 49 | popd 2>&1 > /dev/null 50 | exit 1 51 | fi 52 | 53 | # assert_success(fail_msg) 54 | assert_success() { 55 | [[ $? -eq 0 ]] && return 0 56 | [[ ! -z "$1" ]] && echo "Error: $1" 57 | popd 2>&1 > /dev/null 58 | return 1 59 | } 60 | 61 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 62 | 63 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 64 | 65 | UNZIP=$(which unzip) || assert_success "dependency not found..." || exit $? 66 | 67 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 68 | 69 | # test_sha1sum(sha1, path_to_file) 70 | test_sha1sum() { 71 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 72 | [[ "${SHA1}" != "$1" ]] && return 1 73 | return 0 74 | } 75 | 76 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 77 | echo ">> Downloading..." 78 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 79 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 80 | fi 81 | 82 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 83 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 84 | 85 | echo ">> Unpacking..." 86 | ${UNZIP} -u -q "${ARCHIVE_NAME}" -d "${UNPACKED_NAME}" 87 | assert_success "Could not unpack archive..." || exit $? 88 | 89 | echo ">> Cleaning up..." 90 | rm -f "${ARCHIVE_NAME}" 91 | assert_success "Could not delete temporary archive..." || exit $? 92 | 93 | popd 2>&1 > /dev/null 94 | 95 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018-2022, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | 34 | ./get_gcc_5_4-2016q3_linux.sh && ./get_gcc_10_3-2021_10_linux.sh 35 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018-2022, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | 34 | ./get_gcc_5_4-2016q3_macos.sh && ./get_gcc_10_3-2021_10_macos.sh 35 | -------------------------------------------------------------------------------- /tools/gcc/get_gcc_msys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018-2022, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | 34 | ./get_gcc_5_4-2016q3_msys.sh && ./get_gcc_10_3-2021_10_msys.sh 35 | -------------------------------------------------------------------------------- /tools/logue-cli/README.md: -------------------------------------------------------------------------------- 1 | # *logue-cli* Command Line Utility 2 | 3 | This utility allows to manipulate unit (*.prlgunit*, *.mnlgxdunit*, *.ntkdigunit*) files and communicate with the [prologue](https://www.korg.com/products/synthesizers/prologue), [minilogue xd](https://www.korg.com/products/synthesizers/minilogue_xd) and [Nu:Tekt NTS-1 digital kit](https://www.korg.com/products/dj/nts_1) synthesizers. 4 | 5 | ## Installation 6 | 7 | ### OSX 8 | 9 | Run `./get_logue_cli_osx.sh` to download and unpack *logue-cli* automatically. 10 | 11 | ### Linux 12 | 13 | Run `./get_logue_cli_linux.sh` to download and unpack *logue-cli* automatically. 14 | 15 | ### Windows 16 | 17 | #### MSYS2 18 | 19 | If you have msys installed you can run `./get_logue_cli_msys.sh` to download and unpack *logue-cli* automatically. 20 | 21 | _Note: MSYS2 installers for Windows can be found at [https://www.msys2.org/](https://www.msys2.org/)_ 22 | 23 | #### Manual Procedure 24 | 25 | Download the appropriate version below according to your system. 26 | 27 | ##### Version 0.07-2b 28 | * 32bit : [logue-cli-win32-0.07-2b.zip](http://cdn.storage.korg.com/korg_SDK/logue-cli-win32-0.07-2b.zip) (SHA1: a5bb27d2493728900569881c2a9fe366cce1e943) 29 | * 64bit : [logue-cli-win64-0.07-2b.zip](http://cdn.storage.korg.com/korg_SDK/logue-cli-win64-0.07-2b.zip) (SHA1: 3ee94cebce383fb1319425aaa7abf4b30b1c1269) 30 | 31 | 32 | ## Basic Usage 33 | 34 | ``` 35 | Usage: logue-cli [options] 36 | 37 | Commands: 38 | 39 | check: Validate unit packaging. 40 | probe: Obtain information about a connected device. 41 | load: Load specified unit onto a connected device. 42 | clear: Clear unit data from a connected device. 43 | 44 | Use -h/--help along with a command to obtain detailed usage information. 45 | ``` 46 | 47 | ### Examples 48 | 49 | * List available MIDI ports: 50 | ``` 51 | $ ./logue-cli probe -l 52 | ``` 53 | 54 | * Specify explit MIDI port numbers (i.e.: input: 1, output: 2, following indexes obtained from -l): 55 | ``` 56 | $ ./logue-cli probe -i 1 -o 2 57 | ``` 58 | 59 | * List oscillators currently loaded on connected device: 60 | ``` 61 | $ ./logue-cli probe -m osc 62 | ``` 63 | 64 | * Load a unit file to a connected compatible device, and place it in the first available slot: 65 | ``` 66 | $ ./logue-cli load -u my_oscillator.mnlgxdunit 67 | ``` 68 | 69 | * Load a unit file to a connected compatible device, and place it in a specific slot, overwriting previous content (i.e.: slot 2): 70 | ``` 71 | $ ./logue-cli load -u my_oscillator.mnlgxdunit -s 2 72 | ``` 73 | 74 | ### Troubleshooting 75 | 76 | #### Device's MIDI ports are not auto detected 77 | 78 | The MIDI ports to use for the SYSEX communication can be specified via command line options, but care must be taken to choose the right ports. 79 | In the case of prologue and minilogue xd, the ports ending with `KBD/KNOB` and `SOUND` must be selected. The other ports refer to the legacy MIDI connectors on the back of the device. 80 | 81 | -------------------------------------------------------------------------------- /tools/logue-cli/get_logue_cli_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="logue-cli" 38 | VERSION="0.07-2b" 39 | 40 | ARCHIVE_URL="http://cdn.storage.korg.com/korg_SDK/logue-cli-linux64-0.07-2b.tar.gz" 41 | ARCHIVE_SHA1="50af8cad47635f26c8a5c35dcb20f3bbad4f2f2d" 42 | ARCHIVE_NAME="logue-cli-linux64-0.07-2b.tar.gz" 43 | 44 | if [[ "${OSTYPE}" == "linux-gnu"* ]]; then 45 | echo ">> Assuming Linux 64 bit platform." 46 | else 47 | echo ">> This script is meant for Linux." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_command(name, exec_path) 53 | assert_command() { 54 | [[ ! -x "$2" ]] && echo "Error: Could not find '$1' command at path '$2'" 55 | echo "$2" 56 | } 57 | 58 | # assert_success(fail_msg) 59 | assert_success() { 60 | [[ $? -eq 0 ]] && return 0 61 | [[ ! -z "$1" ]] && echo "Error: $1" 62 | popd 2>&1 > /dev/null 63 | return 1 64 | } 65 | 66 | AWK=$(which awk) || assert_success "dependency not found..." || exit 67 | 68 | CURL=$(which curl) || assert_success "dependency not found..." || exit 69 | 70 | TAR=$(which tar) || assert_success "dependency not found..." || exit $? 71 | 72 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit 73 | 74 | # test_sha1sum(sha1, path_to_file) 75 | test_sha1sum() { 76 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 77 | [[ "${SHA1}" != "$1" ]] && return 1 78 | return 0 79 | } 80 | 81 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 82 | echo ">> Downloading..." 83 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 84 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 85 | fi 86 | 87 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 88 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 89 | 90 | echo ">> Unpacking..." 91 | ${TAR} -zxvf "${ARCHIVE_NAME}" 92 | assert_success "Could not unpack archive..." || exit $? 93 | 94 | echo ">> Cleaning up..." 95 | rm -f "${ARCHIVE_NAME}" 96 | assert_success "Could not delete temporary archive..." || exit $? 97 | 98 | popd 2>&1 > /dev/null 99 | 100 | -------------------------------------------------------------------------------- /tools/logue-cli/get_logue_cli_msys.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="logue-cli" 38 | VERSION="0.07-2b" 39 | 40 | ARCHIVE_URL="http://cdn.storage.korg.com/korg_SDK/logue-cli-win32-0.07-2b.zip" 41 | ARCHIVE_SHA1="a5bb27d2493728900569881c2a9fe366cce1e943" 42 | ARCHIVE_NAME="logue-cli-win32-0.07-2b.zip" 43 | 44 | if [[ "${OSTYPE}" == "msys" ]]; then 45 | echo ">> Assuming msys platform." 46 | else 47 | echo ">> This script is meant for msys." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | UNZIP=$(which unzip) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${UNZIP} -u -q "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/logue-cli/get_logue_cli_msys64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="logue-cli" 38 | VERSION="0.07-2b" 39 | 40 | ARCHIVE_URL="http://cdn.storage.korg.com/korg_SDK/logue-cli-win64-0.07-2b.zip" 41 | ARCHIVE_SHA1="3ee94cebce383fb1319425aaa7abf4b30b1c1269" 42 | ARCHIVE_NAME="logue-cli-win64-0.07-2b.zip" 43 | 44 | if [[ "${OSTYPE}" == "msys" ]]; then 45 | echo ">> Assuming msys platform." 46 | else 47 | echo ">> This script is meant for msys." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_success(fail_msg) 53 | assert_success() { 54 | [[ $? -eq 0 ]] && return 0 55 | [[ ! -z "$1" ]] && echo "Error: $1" 56 | popd 2>&1 > /dev/null 57 | return 1 58 | } 59 | 60 | AWK=$(which awk) || assert_success "dependency not found..." || exit $? 61 | 62 | CURL=$(which curl) || assert_success "dependency not found..." || exit $? 63 | 64 | UNZIP=$(which unzip) || assert_success "dependency not found..." || exit $? 65 | 66 | SHA1SUM=$(which sha1sum) || assert_success "dependency not found..." || exit $? 67 | 68 | # test_sha1sum(sha1, path_to_file) 69 | test_sha1sum() { 70 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 71 | [[ "${SHA1}" != "$1" ]] && return 1 72 | return 0 73 | } 74 | 75 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 76 | echo ">> Downloading..." 77 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 78 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 79 | fi 80 | 81 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 82 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 83 | 84 | echo ">> Unpacking..." 85 | ${UNZIP} -u -q "${ARCHIVE_NAME}" 86 | assert_success "Could not unpack archive..." || exit $? 87 | 88 | echo ">> Cleaning up..." 89 | rm -f "${ARCHIVE_NAME}" 90 | assert_success "Could not delete temporary archive..." || exit $? 91 | 92 | popd 2>&1 > /dev/null 93 | 94 | -------------------------------------------------------------------------------- /tools/logue-cli/get_logue_cli_osx.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # BSD 3-Clause License 4 | # 5 | # Copyright (c) 2018, KORG INC. 6 | # All rights reserved. 7 | # 8 | # Redistribution and use in source and binary forms, with or without 9 | # modification, are permitted provided that the following conditions are met: 10 | # 11 | # * Redistributions of source code must retain the above copyright notice, this 12 | # list of conditions and the following disclaimer. 13 | # 14 | # * Redistributions in binary form must reproduce the above copyright notice, 15 | # this list of conditions and the following disclaimer in the documentation 16 | # and/or other materials provided with the distribution. 17 | # 18 | # * Neither the name of the copyright holder nor the names of its 19 | # contributors may be used to endorse or promote products derived from 20 | # this software without specific prior written permission. 21 | # 22 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | SCRIPT_DIR="$(pwd)/$(dirname $0)" 34 | 35 | pushd ${SCRIPT_DIR} 2>&1 > /dev/null 36 | 37 | PKGNAME="logue-cli" 38 | VERSION="0.07-2b" 39 | 40 | ARCHIVE_URL="http://cdn.storage.korg.com/korg_SDK/logue-cli-osx-0.07-2b.zip" 41 | ARCHIVE_SHA1="a9b1fbf86d630c61b6d4e154e3b4372315c32977" 42 | ARCHIVE_NAME="logue-cli-osx-0.07-2b.zip" 43 | 44 | if [[ "${OSTYPE}" == "darwin"* ]]; then 45 | echo ">> Assuming OSX 64 bit platform." 46 | else 47 | echo ">> This script is meant for OSX." 48 | popd 2>&1 > /dev/null 49 | exit 1 50 | fi 51 | 52 | # assert_command(name, exec_path) 53 | assert_command() { 54 | [[ ! -x "$2" ]] && echo "Error: Could not find '$1' command at path '$2'" 55 | echo "$2" 56 | } 57 | 58 | # assert_success(fail_msg) 59 | assert_success() { 60 | [[ $? -eq 0 ]] && return 0 61 | [[ ! -z "$1" ]] && echo "Error: $1" 62 | popd 2>&1 > /dev/null 63 | return 1 64 | } 65 | 66 | AWK=$(which awk) || assert_success "dependency not found..." || exit 67 | 68 | CURL=$(which curl) || assert_success "dependency not found..." || exit 69 | 70 | UNZIP=$(which unzip) || assert_success "dependency not found..." || exit $? 71 | 72 | SHA1SUM=$(which shasum) || assert_success "dependency not found..." || exit 73 | 74 | # test_sha1sum(sha1, path_to_file) 75 | test_sha1sum() { 76 | SHA1=$(${SHA1SUM} "$2" | ${AWK} '{print $1};') 77 | [[ "${SHA1}" != "$1" ]] && return 1 78 | return 0 79 | } 80 | 81 | if [[ ! -f "${ARCHIVE_NAME}" ]]; then 82 | echo ">> Downloading..." 83 | ${CURL} -# -L -o "${ARCHIVE_NAME}" "${ARCHIVE_URL}" 84 | assert_success "Download of ${ARCHIVE_NAME} failed..." || exit $? 85 | fi 86 | 87 | test_sha1sum "${ARCHIVE_SHA1}" "${ARCHIVE_NAME}" 88 | assert_success "SHA1 mismatch. Try redownloading the archive..." || exit $? 89 | 90 | echo ">> Unpacking..." 91 | ${UNZIP} -u -q "${ARCHIVE_NAME}" 92 | assert_success "Could not unpack archive..." || exit $? 93 | 94 | echo ">> Cleaning up..." 95 | rm -f "${ARCHIVE_NAME}" 96 | assert_success "Could not delete temporary archive..." || exit $? 97 | 98 | popd 2>&1 > /dev/null 99 | 100 | -------------------------------------------------------------------------------- /tools/make/README.md: -------------------------------------------------------------------------------- 1 | ## GNU Make 2 | 3 | GNU Make version 3.8.1 or higher is required to build SDK projects. 4 | 5 | ### OSX 6 | 7 | The built-in GNU Make of OSX should be sufficient to build SDK projects so no extra steps are necessary. 8 | Alternatively, newer versions of GNU Make can be obtained via package distribution systems such as Homebrew and MacPorts. 9 | 10 | ### Linux 11 | 12 | An appropriate GNU Make version is likely already installed. If not, install the appropriate GNU Make package from your distribution. 13 | 14 | ### Windows 15 | 16 | #### MSYS2 17 | 18 | MSYS2 provides recent GNU Make packages appropriate for building logue SDK projects. 19 | 20 | Install GNU Make by running: `pacman -S make`. 21 | 22 | _Note: MSYS2 installers for Windows can be found at [https://www.msys2.org/](https://www.msys2.org/)_ 23 | 24 | #### Manaual Procedure: GnuWin 25 | 26 | A Windows build of GNU Make (albeit a bit old) is also available from [GnuWin's sourceforge page](https://sourceforge.net/projects/gnuwin32/files/make/3.81/). 27 | Once installed you will have to add it manually to your environment's path. 28 | 29 | 30 | -------------------------------------------------------------------------------- /tools/zip/README.md: -------------------------------------------------------------------------------- 1 | ## Zip Utility 2 | 3 | The `zip` (Info-Zip) command line utility version 3.0 is required to package SDK projects. 4 | 5 | ### OSX 6 | 7 | An appropriate zip utility is available by default so no extra steps are necessary. 8 | 9 | ### Linux 10 | 11 | If not already installed, install the appropriate package from your distribution. 12 | 13 | ### Windows 14 | 15 | #### MSYS2 16 | 17 | MSYS2 provides Info-Zip 3.0 as the `zip-3.0-1` package. 18 | 19 | Install it by running `pacman -S zip`. 20 | 21 | _Note: MSYS2 installers for Windows can be found at [https://www.msys2.org/](https://www.msys2.org/)_ 22 | 23 | #### Manual Procedure: GnuWin 24 | 25 | A Windows build of Info-Zip 3.0 is also available from [GnuWin's sourceforge page](https://sourceforge.net/projects/gnuwin32/files/zip/3.0/) 26 | 27 | If using this option, install the required files in this directory following this structure: 28 | 29 | ``` 30 | zip/ 31 | | 32 | +-- bin/zip.exe 33 | ``` 34 | _e.g.: `zip.exe` should be located in a subdirectory named `bin`._ 35 | --------------------------------------------------------------------------------