Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolves gh-22 and gh-63: #64

Merged
merged 48 commits into from
Nov 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
8e42445
gh-22: Moves Bluemchen and DPT libraries out of the examples dir.
colinbdclark Dec 3, 2022
20f5ca0
gh-22: Moves Bluemchen and DPT libraries out of the examples dir.
colinbdclark Dec 3, 2022
be37bdf
gh-22: Moves Bluemchen and DPT libraries out of the examples dir.
colinbdclark Dec 3, 2022
bd38687
Split 'hosts/daisy/vendor/kxmx_bluemchen/' into commit '8e42445c4f626…
colinbdclark Dec 3, 2022
56d10b5
Split 'hosts/daisy/vendor/dpt/' into commit 'be37bdfd032e58cc59542321…
colinbdclark Dec 3, 2022
195e101
Squashed 'hosts/daisy/vendor/dpt/' changes from be37bdfd..ef00d7d4
colinbdclark Dec 3, 2022
db0bf5c
Updates to DPT subtree to latest commit.
colinbdclark Dec 3, 2022
b4a80d0
gh-22: Updates subtree information in vendor README.
colinbdclark Dec 3, 2022
76b2710
gh-22: Splits out DPT and Bluemchen Hosts from the base impl.
colinbdclark Dec 3, 2022
3ab0618
gh-22: Refactors Daisy hosts. Adds impl for Bluemchen/Nechmeulb.
colinbdclark Dec 4, 2022
2941612
gh-22: AnalogControls are now specified as parameters to all Daisy Si…
colinbdclark Dec 5, 2022
70f6598
gh-22: Adds Daisy Host, to handle the audio callback and evaluate sig…
colinbdclark Dec 19, 2022
6c1c1c3
gh-22: Ensures the wasm bindings and DPT example use the renamed sign…
colinbdclark Dec 20, 2022
26ee6a1
gh-22: Substantially improves cross-Daisy Host support.
colinbdclark Jan 6, 2023
1b32e1d
gh-22: Adds untested support for switches and buttons.
colinbdclark Jan 8, 2023
28d0e00
gh-22: Some fine-tuning of the knob mappings in the FM example.
colinbdclark Jan 9, 2023
5edd096
gh-22: Adds phase modulation to oscillators, updates example.
colinbdclark Jan 11, 2023
5e6ebd2
Updates gain value on Bluemchen examples due to clipping with newer c…
colinbdclark Jan 11, 2023
5c1833b
gh-22: Adds filtered CV input signal and updates Patch.init() example.
colinbdclark Jan 12, 2023
6039f76
gh-22: Improves FM oscillator example.
colinbdclark Jan 27, 2023
7ea3f53
gh-22: Implements a two-op FM oscillator signal.
colinbdclark Feb 3, 2023
8c44716
gh-22: Fixes wasm builds by ensuring all array access uses the FLOAT_…
colinbdclark Feb 3, 2023
006dddc
gh-22: Updates Dusting and Sine Oscillator examples to new Host API.
colinbdclark Feb 13, 2023
857f283
Updates Dusting example to switch from bpm to Hz as density increases.
colinbdclark Mar 3, 2023
ed182c0
gh-22: Added the ability to scale AudioIn and AudioOut.
colinbdclark Mar 3, 2023
1a6b823
gh-46: Adds floored division fmodf function.
colinbdclark Mar 21, 2023
c8b0be3
gh-22: Fixes error on MSVC in empty list tests.
colinbdclark Mar 21, 2023
feb1b69
gh-46: Ensures all oscillators use flooredfmof().
colinbdclark Mar 21, 2023
9c64894
Tunes the patch.init() FM Oscillator's ratio list.
colinbdclark Mar 21, 2023
2a6dd6d
Tunes the ratio knob CV values for the FM example.
colinbdclark May 9, 2023
698ba44
Scales knob and CV frequency controls to reduce aliasing.
colinbdclark May 9, 2023
09757e6
Tunes the index skew control and the free modulator ratio.
colinbdclark May 10, 2023
d3c2f71
Fixes free mode so both oscillators track in the same range.
colinbdclark May 10, 2023
6cb3f2e
Scales back index CV to reasonable levels.
colinbdclark May 10, 2023
739ec62
gh-63: Implements Puckette's Moog-style ladder filter.
colinbdclark May 20, 2023
6e9946f
gh-63: Adds Valimaki and Huovilainen ladder and a tilt EQ.
colinbdclark May 25, 2023
57bbbd0
gh-63: Adds parameters for passband gain and overdrive.
colinbdclark May 25, 2023
9bc7201
gh-63: Also adds two pole output for Bob.
colinbdclark May 25, 2023
85187b8
gh-63: Adds stage mixing as per Valimaki and Huovilainen.
colinbdclark May 26, 2023
5d12d81
gh-63: Adds "deconstructed" filter example for the Versio platform.
colinbdclark May 31, 2023
122064a
gh-63: Adds encoder support to Daisy host.
colinbdclark Jun 1, 2023
50f548a
gh-63: Adds support for tri-switches on Versio.
colinbdclark Jun 21, 2023
b54fccb
gh-63: Some comment cleanup and renaming.
colinbdclark Jun 21, 2023
8c641bc
gh-63: Updates name of filter inputs. Adds modes to Bluemchen filter.
colinbdclark Jun 22, 2023
7423e41
Fixes constant naming error in DPT host.
colinbdclark Aug 4, 2023
ac89ccd
Adds native architecture support for building with Docker.
colinbdclark Sep 23, 2023
6ab885c
Updates README with minor edits.
colinbdclark Nov 3, 2023
5c9de1e
Moves DustGate into the sig_dsp namespace.
colinbdclark Nov 5, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/System/Library/Frameworks"
"/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/System/Library/Frameworks"
],
"compilerPath": "/opt/homebrew/opt/llvm/bin/clang",
"compilerPath": "/usr/bin/clang",
"cStandard": "c99",
"cppStandard": "c++11",
"intelliSenseMode": "macos-clang-arm64",
Expand Down
90 changes: 90 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,36 @@
"svdFile": "${workspaceRoot}/.vscode/STM32H750x.svd",
"type": "cortex-debug"
},
{
"name": "Remote Bluemchen Filter",
"configFiles": [
"interface/stlink.cfg",
"target/stm32h7x.cfg"
],
"cwd": "${workspaceFolder}/hosts/daisy/examples/bluemchen/filter",
"debuggerArgs": [
"-d",
"${workspaceRoot}/hosts/daisy/examples/bluemchen/oscillfilterator"
],
"executable": "${workspaceRoot}/hosts/daisy/examples/bluemchen/filter/build/signaletic-bluemchen-filter.elf",
"interface": "swd",
"openOCDLaunchCommands": [
"init",
"reset init"
],
"preLaunchTask": "Debug Build Bluemchen Examples",
"preRestartCommands": [
"load",
"enable breakpoint",
"monitor reset"
],
"request": "launch",
"runToEntryPoint": "main",
"servertype": "openocd",
"showDevDebugOutput": "parsed",
"svdFile": "${workspaceRoot}/.vscode/STM32H750x.svd",
"type": "cortex-debug"
},
{
"name": "Remote Bluemchen Looper",
"configFiles": [
Expand Down Expand Up @@ -133,6 +163,66 @@
"showDevDebugOutput": "parsed",
"svdFile": "${workspaceRoot}/.vscode/STM32H750x.svd",
"type": "cortex-debug"
},
{
"name": "Remote Patch.Init() FM Osc",
"configFiles": [
"interface/stlink.cfg",
"target/stm32h7x.cfg"
],
"cwd": "${workspaceFolder}/hosts/daisy/examples/patch_init/fm-osc",
"debuggerArgs": [
"-d",
"${workspaceRoot}/hosts/daisy/examples/patch_init/fm-osc"
],
"executable": "${workspaceRoot}/hosts/daisy/examples/patch_init/fm-osc/build/patch-init-fm-osc.elf",
"interface": "swd",
"openOCDLaunchCommands": [
"init",
"reset init"
],
"preLaunchTask": "Debug Build Patch.Init() Examples",
"preRestartCommands": [
"load",
"enable breakpoint",
"monitor reset"
],
"request": "launch",
"runToEntryPoint": "main",
"servertype": "openocd",
"showDevDebugOutput": "parsed",
"svdFile": "${workspaceRoot}/.vscode/STM32H750x.svd",
"type": "cortex-debug"
},
{
"name": "Remote Versio Filter",
"configFiles": [
"interface/stlink.cfg",
"target/stm32h7x.cfg"
],
"cwd": "${workspaceFolder}/hosts/daisy/examples/versio/pole-mix-filter",
"debuggerArgs": [
"-d",
"${workspaceRoot}/hosts/daisy/examples/versio/pole-mix-filter"
],
"executable": "${workspaceRoot}/hosts/daisy/examples/versio/pole-mix-filter/build/signaletic-versio-pole-mix-filter.elf",
"interface": "swd",
"openOCDLaunchCommands": [
"init",
"reset init"
],
"preLaunchTask": "Debug Build Versio Examples",
"preRestartCommands": [
"load",
"enable breakpoint",
"monitor reset"
],
"request": "launch",
"runToEntryPoint": "main",
"servertype": "openocd",
"showDevDebugOutput": "parsed",
"svdFile": "${workspaceRoot}/.vscode/STM32H750x.svd",
"type": "cortex-debug"
}
],
"version": "0.2.0"
Expand Down
28 changes: 28 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,34 @@
],
"type": "shell"
},
{
"label": "Debug Build Patch.Init() Examples",
"dependsOn": [
"Build libdaisy"
],
"command": "make clean;DEBUG=1 make",
"options": {
"cwd": "${workspaceFolder}/hosts/daisy/examples/patch_init"
},
"problemMatcher": [
"$gcc"
],
"type": "shell"
},
{
"label": "Debug Build Versio Examples",
"dependsOn": [
"Build libdaisy"
],
"command": "make clean;DEBUG=1 make",
"options": {
"cwd": "${workspaceFolder}/hosts/daisy/examples/versio"
},
"problemMatcher": [
"$gcc"
],
"type": "shell"
},
{
"label": "Build Bluemchen Examples",
"dependsOn": [
Expand Down
13 changes: 9 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
FROM emscripten/emsdk:latest
FROM jarnoharno/emsdk:latest

RUN apt update && apt install -y python3 python3-pip \
python3-setuptools python3-wheel ninja-build
python3-setuptools python3-wheel
RUN pip3 install meson

WORKDIR /gcc-arm
RUN wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
RUN tar -xf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
ARG TARGETARCH
RUN if [ "$TARGETARCH" = "amd64" ]; \
then export TOOLCHAIN_ARCH="x86_64"; \
else export TOOLCHAIN_ARCH="aarch64"; \
fi; \
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-$TOOLCHAIN_ARCH-linux.tar.bz2; \
tar -xf gcc-arm-none-eabi-10-2020-q4-major-$TOOLCHAIN_ARCH-linux.tar.bz2;

ENV GCC_PATH=/gcc-arm/gcc-arm-none-eabi-10-2020-q4-major/bin
RUN export PATH=$GCC_PATH:$PATH
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This project is an early-stage effort to rewrite and redesign the core signal pr

* *Multirepresentational*: Signaletic will provide the low-level infrastructure to support both visual patching alongside an interpreted and transpiled-to-C "signal expression language" (and to switch back and forth between representations on the fly).
* *Live repatching without compilation*: provide a highly mutable audio graph, so that instruments can be dynamically reconfigured while they are running (on platforms where this is appropriate).
* *Vastly portable, "embedded first"*: support deployment on resource-constrained embedded microcontroller-bsaed systems (such as Daisy), browser-based AudioWorklets (via Web Assembly), and desktop and mobile operating systems (macOS, Windows, Linux, iOS).
* *Very portable, embedded first*: support deployment on resource-constrained embedded microcontroller-bsaed systems (such as Daisy), browser-based AudioWorklets (via Web Assembly), and desktop and mobile operating systems (macOS, Windows, Linux, iOS).
* *Fully externalized state*: Provide a means for [fully externalizing all state](http://openresearch.ocadu.ca/id/eprint/2059/1/Clark_sdr_2017_preprint.pdf) via a Nexus-like RESTful API, including:
* Creating signals
* Getting signal values/representations
Expand Down
5 changes: 5 additions & 0 deletions docker-build-wasm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

# Build the Web Assembly version of Signaletic using a Docker container
# that has all the appropriate dependencies installed.
docker run -v `pwd`:/signaletic signaletic /signaletic/cross-build-wasm.sh
4 changes: 4 additions & 0 deletions hosts/daisy/examples/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
all:
$(MAKE) -C bluemchen
$(MAKE) -C dpt
$(MAKE) -C patch_init
$(MAKE) -C versio

clean:
$(MAKE) -C bluemchen clean
$(MAKE) -C dpt clean
$(MAKE) -C patch_init clean
$(MAKE) -C versio clean
3 changes: 2 additions & 1 deletion hosts/daisy/examples/bluemchen/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
all:
$(MAKE) -C oscillator
$(MAKE) -C filter
$(MAKE) -C looper
$(MAKE) -C dusting


clean:
$(MAKE) -C oscillator clean
$(MAKE) -C filter clean
$(MAKE) -C looper clean
$(MAKE) -C dusting clean
9 changes: 4 additions & 5 deletions hosts/daisy/examples/bluemchen/dusting/Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# Project Name
TARGET ?= signaletic-nehcmeulb-dusting

DEBUG = 1
OPT = -O0
DEBUG = 0
OPT = -O3

# Sources
C_SOURCES += ../../../../../libsignaletic/vendor/tlsf/tlsf.c ../../../../../libsignaletic/src/libsignaletic.c
C_INCLUDES += -I../../../../../libsignaletic/vendor/tlsf -I../../../../../libsignaletic/include

CPP_INCLUDES += -I../../src/include
CPP_SOURCES = ../vendor/kxmx_bluemchen/src/kxmx_bluemchen.cpp src/${TARGET}.cpp
CPP_SOURCES = ../../../vendor/kxmx_bluemchen/src/kxmx_bluemchen.cpp ../../../src/signaletic-daisy-host.cpp ../../../src/daisy-bluemchen-host.cpp src/${TARGET}.cpp

USE_FATFS = 1
USE_FATFS = 0

# Library Locations
LIBDAISY_DIR = ../../../vendor/libDaisy
Expand Down
Loading
Loading