loopin-native contains all that is needed to run Loopin
applications using a shared, natively compiled binary:
ofxLoopin. It includes the following:
- C++/openFrameworks source code for the reference Loopin server implementation
- A loopin plugin to interface with the rest of the Loopin stack.
- node.js functions to automatically build
- Command-line utility
loopin-nativeto manage, build and run
To create a Loopin project, use the loopin-base module. You should not need to include in module directly.
This module must be used as part of a loopin application. For a much more complete example, see loopin-base/node/loopin.js.
const loopin =// Set project rootloopinloopin// Snip a lot of other loopin configuration.// Load loopin-native as a pluginloopin// Start loopin application.loopin
This will download a pre-compiled binary version of ofxLoopin under
./node_modules/loopin-native/build/ and run it with the loopin project.
loopin-native runs best on a 64-bit Mac OSX machine.
Linux, at least ubuntu-amd64, is supported but will need to be build in developer mode.
Raspberry Pi is supported, with specific instructions and developer mode. Some features, such as Kinect, are not enabled. Shaders must be written in OpenGL ES.
Windows support is very new, and may have some weirdness.
OSX / Windows
Running and installation should be automatic on OSX 10.8 and above and modern versions of Windows. Compiled binaries will be downloaded from github.
Installations on linux will probably need to install openframeworks dependencies.
'Automatic' Linux Deps Install
# Install the loopin-native modulesudo npm install -g loopin-native# Attempt to auto-run dependency installers.# Downstream scripts will pop up Y/n prompts.# Y is not always the correct answer!sudo loopin-native --deps
Manual Linux Deps Install
# Install prerequisites using apt-get. This may be yum or dnf on your machine.sudo apt-get install build-essential git nodejs npm ffmpeg# Install the loopin-native modulesudo npm install -g loopin-native# Setup dev environment.# This will download openFrameworks.`loopin-native --dev --env`# Change to loopin-native module directory.cd "$LOOPIN_NATIVE_ROOT"# Change to openFrameworks directorycd lib/of_*# Change to scripts directory.# You may need to replace 'ubuntu' with your distribution.cd scripts/linux/ubuntu/# openframeworks scripts to auto-install dependencies# You will need to hit 'Y' a number of times.sudo ./install_dependencies.shsudo ./install_codecs.sh
After this, Loopin applications, whether using pre-compiled binaries or in dev mode, should work. Please report any problems.
The procedure for installation on generic Linux should work. A few PI-specific notes:
- Use raspbian lite image.
- Don't install desktop!
- Installer currently forces armv6 architecture.
- For compatibility reasons, binaries are not distributed for Raspberry PI, so developer mode is forced.
- Installation and compiling can take hours, even on a PI 3. Deploy early and often! See 'Setting up environment' to use only one copy of
loopin-native is capable of setting up a development environment and building
ofxLoopin binaries in-situ and on-demand. This can be used for
ofxLoopin feature development as well as building on platforms that are currently unsupported. Developer mode is automatically enabled on platforms where a pre-packaged binary is not distributed, including Linux. Note that developer mode may automatically download and install libraries and dependencies, totalling more than 100mb.
# Compile ofxLoopin and do a simple test.loopin-native --dev --verbose --test
XCode is required on Mac. Currently, there seems to be an incompatibility between openFrameworks and XCode 10.x.x, so 9.x.x must be used.
Visual Studio Community 2017 is required on Windows.
openFrameworks build processes may not work when the installation of this module is in any directory who's path includes dotfiles. Specifically, this can be problem when using nvm. To mitigate this problem, use the instructions below and ensure that the module is installed globally in a path that doesn't have any dotfiles.
Setting up shared environment
ofxLoopin or running multiple Loopin projects, it is recommendeded to use a single, shared copy of this module.
cd WHERE_YOU_PUT_YOUR_CODE/# Clone this repogit clone https://github.com/koopero/loopin-native.git# Install npm depscd loopin-nativenpm install# Link module globally.sudo link npm link# Show environment variablesloopin-native --dev --env
The output of the last command will look something like this:
export LOOPIN_NATIVE_ROOT=/your/dir/loopin-native/buildexport LOOPIN_NATIVE_DEV=1
Copy this output and paste it into a file which is run on login, such as
Now, all local project which
require('loopin-native') will default to using the directory
./loopin-native/build, and will build binaries on demand. You can now edit files in
./loopin-native/ofxLoopin to experiment with or develop ofxLoopin.
Loopin development relies on the patient and enthusiastic support of HFour Design Studio.
ofxLoopin would not be possible without the incredible openFrameworks project.
Thank you to the wonderful organizers and community at Vancouver Creative Technology for feedback and encouragement.
The following, amazing ofxAddons help make Loopin great: