Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ddf/OwlProgram

Open more actions menu
 
 

Repository files navigation

OwlProgram

Dynamically loaded OWL program. See http://hoxtonowl.com for more details of the Open Ware Laboratory.

Instructions

Prerequisites

  • gcc arm compiler (to make patch binary) [1]

  • FirmwareSender (to make sysex and run) [2]

  • emcc (to make web) [3]

  • faust2owl (to compile FAUST patches) [4]

  • Enzien Audio account (to compile PD patches) [5]

  • On Windows, you'll need a MAKE utility [6]. You'll also need to open common.mk and point TOOLROOT to your gcc installation directory, using a path string without spaces (such as using 8.3 filenames).

Make targets

  • make patch: build patch binary
  • make sysex: package binary as sysex
  • make run: upload patch to attached OWL
  • make store: upload and save to attached OWL
  • make web: build Javascript patch
  • make clean: remove intermediary and target files
  • make realclean: remove all (library+patch) intermediary and target files
  • make size: show binary size metrics and large object summary
  • make map: build map file (Build/patch.map)
  • make as: build assembly file (Build/patch.s)
  • make help: print target information

Make sure to do a make clean before compiling a new patch, or add clean to your make target, otherwise the previous patch name will be retained.

Make options

  • PATCHNAME: specify name of patch, e.g. SimpleDelay
  • PATCHCLASS: name of patch class, e.g. SimpleDelayPatch
  • PATCHFILE: name of main patch file, e.g. SimpleDelayPatch.hpp
  • PATCHIN: number of input channels, default 2
  • PATCHOUT: number of output channels, default 2
  • SLOT: user program slot to store patch in, default 0
  • TARGET: changes the output prefix, default 'patch'

If you follow the convention of SimpleDelay then you don't have to specify PATCHCLASS and PATCHFILE, they will be deduced from PATCHNAME.

Note that when storing user programs, the current OWL firmware has four user defined patches, numbered 37 to 40. These correspond to slot number 0 to 3.

Building C++ patches

First copy all patch files to PatchSource folder, then issue the appropriate make command.

Example: Compile and run the TestTone patch, defined in file PatchSource/TestTonePatch.hpp as class TestTonePatch: make PATCHNAME=TestTone run

Example: Compile and run in browser make PATCHNAME=TestTone web Then open Build/web/patch.html

Building FAUST patches

To compile and run a FAUST patch

  • copy .dsp file and dependencies into PatchSource, e.g. LowShelf.dsp
  • make FAUST=LowShelf run

Note: assign OWL parameters with slider metadata: [OWL:A], [OWL:B] et c. For example: gain = vslider("gain[OWL:C]", 1,0,1,0.1);. Assign push button with e.g. gate = button("gate[OWL:Push]");

Building Pure Data patches

Requires an account with Enzien Audio [5]

To compile and run a PD patch, with C code generated by Enzien Audio:

  • make a Heavy project called owl and compile your PD patch to C
  • download and unzip the Heavy C code into PatchSource
  • make PATCHNAME=Heavy run

Or, using the Heavy uploader (recommended):

  • ensure you have a Heavy project called owl
  • put your PD patch file (e.g. Foo.pd) into PatchSource
  • make HEAVY=Foo run
  • enter username and credentials when prompted (first time only)

Note: assign OWL parameters with PD receivers called Channel-A, Channel-B, et c.

Building Max Gen patches

Requires the .cpp and .h files of a Gen patch generated by Max Gen.

To compile and run a Gen patch called Foo:

  • copy Foo.cpp and Foo.h into PatchSource
  • make GEN=Foo run

Note: use OWL parameters in Gen with parameter names: A, B, C, D, Exp, and Push.

References

[1] https://launchpad.net/gcc-arm-embedded [2] https://github.com/pingdynasty/FirmwareSender [3] http://emscripten.org [4] http://faust.grame.fr/ [5] https://enzienaudio.com [6] http://sourceforge.net/projects/mingw/

About

Dynamically loaded OWL program

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 88.7%
  • C++ 10.0%
  • Linker Script 0.4%
  • Python 0.3%
  • Makefile 0.3%
  • JavaScript 0.1%
  • Other 0.2%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.