Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
rapid-mix
RAPID-MIX_API
Commits
3b678428
Commit
3b678428
authored
Nov 21, 2017
by
James Frink
Browse files
add start of Bitalino example
parent
6aa0892a
Changes
267
Expand all
Hide whitespace changes
Inline
Side-by-side
examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.pbxproj
0 → 100644
View file @
3b678428
This diff is collapsed.
Click to expand it.
examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/project.xcworkspace/contents.xcworkspacedata
0 → 100644
View file @
3b678428
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version =
"1.0"
>
<FileRef
location =
"self:"
>
</FileRef>
</Workspace>
examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Debug.xcscheme
0 → 100644
View file @
3b678428
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"0600"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
useCustomWorkingDirectory =
"NO"
buildConfiguration =
"Debug"
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
allowLocationSimulation =
"YES"
>
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
buildConfiguration =
"Debug"
debugDocumentVersioning =
"YES"
>
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
</AnalyzeAction>
<ArchiveAction
buildConfiguration =
"Debug"
revealArchiveInOrganizer =
"YES"
>
</ArchiveAction>
</Scheme>
examples/ofx/Bitalino_rapidmix/Bitalino.xcodeproj/xcshareddata/xcschemes/Bitalino Release.xcscheme
0 → 100644
View file @
3b678428
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"0600"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Release"
>
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
useCustomWorkingDirectory =
"NO"
buildConfiguration =
"Release"
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
allowLocationSimulation =
"YES"
>
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
buildConfiguration =
"Release"
debugDocumentVersioning =
"YES"
>
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E4B69B5A0A3A1756003C02F2"
BuildableName =
"Bitalino.app"
BlueprintName =
"Bitalino"
ReferencedContainer =
"container:Bitalino.xcodeproj"
>
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Release"
>
</AnalyzeAction>
<ArchiveAction
buildConfiguration =
"Release"
revealArchiveInOrganizer =
"YES"
>
</ArchiveAction>
</Scheme>
examples/ofx/Bitalino_rapidmix/Makefile
0 → 100644
View file @
3b678428
# Attempt to load a config.make file.
# If none is found, project defaults in config.project.make will be used.
ifneq
($(wildcard config.make),)
include
config.make
endif
# make sure the the OF_ROOT location is defined
ifndef
OF_ROOT
OF_ROOT
=
$(
realpath
../../../../../Documents/of_v0.9.8_osx_release
)
endif
# call the project makefile!
include
$(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
examples/ofx/Bitalino_rapidmix/Project.xcconfig
0 → 100644
View file @
3b678428
//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
OF_PATH = ../../../../../Documents/of_v0.9.8_osx_release
//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
#include "../../../../../Documents/of_v0.9.8_osx_release/libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
//ICONS - NEW IN 0072
ICON_NAME_DEBUG = icon-debug.icns
ICON_NAME_RELEASE = icon.icns
ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
//IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
//ICON_FILE_PATH = bin/data/
OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS)
HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
examples/ofx/Bitalino_rapidmix/addons.make
0 → 100644
View file @
3b678428
ofxGui
ofxMaxim
ofxOsc
examples/ofx/Bitalino_rapidmix/bin/data/.gitkeep
0 → 100644
View file @
3b678428
examples/ofx/Bitalino_rapidmix/config.make
0 → 100644
View file @
3b678428
################################################################################
# CONFIGURE PROJECT MAKEFILE (optional)
# This file is where we make project specific configurations.
################################################################################
################################################################################
# OF ROOT
# The location of your root openFrameworks installation
# (default) OF_ROOT = ../../../../../Documents/of_v0.9.8_osx_release
################################################################################
# OF_ROOT = ../../../../../Documents/of_v0.9.8_osx_release
################################################################################
# PROJECT ROOT
# The location of the project - a starting place for searching for files
# (default) PROJECT_ROOT = . (this directory)
#
################################################################################
# PROJECT_ROOT = .
################################################################################
# PROJECT SPECIFIC CHECKS
# This is a project defined section to create internal makefile flags to
# conditionally enable or disable the addition of various features within
# this makefile. For instance, if you want to make changes based on whether
# GTK is installed, one might test that here and create a variable to check.
################################################################################
# None
################################################################################
# PROJECT EXTERNAL SOURCE PATHS
# These are fully qualified paths that are not within the PROJECT_ROOT folder.
# Like source folders in the PROJECT_ROOT, these paths are subject to
# exlclusion via the PROJECT_EXLCUSIONS list.
#
# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_EXTERNAL_SOURCE_PATHS =
################################################################################
# PROJECT EXCLUSIONS
# These makefiles assume that all folders in your current project directory
# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
# to look for source code. The any folders or files that match any of the
# items in the PROJECT_EXCLUSIONS list below will be ignored.
#
# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
# string unless teh user adds a wildcard (%) operator to match subdirectories.
# GNU make only allows one wildcard for matching. The second wildcard (%) is
# treated literally.
#
# (default) PROJECT_EXCLUSIONS = (blank)
#
# Will automatically exclude the following:
#
# $(PROJECT_ROOT)/bin%
# $(PROJECT_ROOT)/obj%
# $(PROJECT_ROOT)/%.xcodeproj
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_EXCLUSIONS =
################################################################################
# PROJECT LINKER FLAGS
# These flags will be sent to the linker when compiling the executable.
#
# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# Currently, shared libraries that are needed are copied to the
# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
# add a runtime path to search for those shared libraries, since they aren't
# incorporated directly into the final executable application binary.
# TODO: should this be a default setting?
# PROJECT_LDFLAGS=-Wl,-rpath=./libs
################################################################################
# PROJECT DEFINES
# Create a space-delimited list of DEFINES. The list will be converted into
# CFLAGS with the "-D" flag later in the makefile.
#
# (default) PROJECT_DEFINES = (blank)
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_DEFINES =
################################################################################
# PROJECT CFLAGS
# This is a list of fully qualified CFLAGS required when compiling for this
# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
# defined in your platform specific core configuration files. These flags are
# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
#
# (default) PROJECT_CFLAGS = (blank)
#
# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
# your platform specific configuration file will be applied by default and
# further flags here may not be needed.
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_CFLAGS =
################################################################################
# PROJECT OPTIMIZATION CFLAGS
# These are lists of CFLAGS that are target-specific. While any flags could
# be conditionally added, they are usually limited to optimization flags.
# These flags are added BEFORE the PROJECT_CFLAGS.
#
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
#
# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
#
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
#
# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
#
# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
# file will be applied by default and further optimization flags here may not
# be needed.
#
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
# PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
################################################################################
# PROJECT COMPILERS
# Custom compilers can be set for CC and CXX
# (default) PROJECT_CXX = (blank)
# (default) PROJECT_CC = (blank)
# Note: Leave a leading space when adding list items with the += operator
################################################################################
# PROJECT_CXX =
# PROJECT_CC =
examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.cpp
0 → 100755
View file @
3b678428
This diff is collapsed.
Click to expand it.
examples/ofx/Bitalino_rapidmix/dependencies/GVF/GVF.h
0 → 100755
View file @
3b678428
/**
* Gesture Variation Follower class allows for early gesture recognition and variation tracking
*
* @details Original algorithm designed and implemented in 2011 at Ircam Centre Pompidou
* by Baptiste Caramiaux and Nicola Montecchio. The library has been created and is maintained by Baptiste Caramiaux
*
* Copyright (C) 2015 Baptiste Caramiaux, Nicola Montecchio
* STMS lab Ircam-CRNS-UPMC, University of Padova, Goldsmiths College University of London
*
* The library is under the GNU Lesser General Public License (LGPL v3)
*/
#ifndef _H_GVF
#define _H_GVF
#include "GVFUtils.h"
#include "GVFGesture.h"
#include <random>
#include <iostream>
#include <iomanip>
#include <string>
#include <map>
#include <random>
#include <cmath>
using
namespace
std
;
class
GVF
{
public:
/**
* GVF possible states
*/
enum
GVFState
{
STATE_CLEAR
=
0
,
/**< STATE_CLEAR: clear the GVF and be in standby */
STATE_LEARNING
,
/**< STATE_LEARNING: recording mode, input gestures are added to the templates */
STATE_FOLLOWING
,
/**< STATE_FOLLOWING: tracking mode, input gestures are classifed and their variations tracked (need the GVF to be trained) */
STATE_BYPASS
/**< STATE_BYPASS: by pass GVF but does not erase templates or training */
};
#pragma mark - Constructors
/**
* GVF default constructor
* @details use default configuration and parameters, can be changed using accessors
*/
GVF
();
/**
* GVF default destructor
*/
~
GVF
();
#pragma mark - Gesture templates
/**
* Start a gesture either to be recorded or followed
*/
void
startGesture
();
/**
* Add an observation to a gesture template
* @details
* @param data vector of features
*/
void
addObservation
(
vector
<
float
>
data
);
/**
* Add gesture template to the vocabulary
*
* @details a gesture template is a GVFGesture object and can be added directly to the vocabulqry or
* recorded gesture templates by using this method
* @param gestureTemplate the gesture template to be recorded
*/
void
addGestureTemplate
(
GVFGesture
&
gestureTemplate
);
/**
* Replace a specific gesture template by another
*
* @param gestureTemplate the gesture template to be used
* @param index the gesture index (as integer) to be replaced
*/
void
replaceGestureTemplate
(
GVFGesture
&
gestureTemplate
,
int
index
);
/**
* Remove a specific template
*
* @param index the gesture index (as integer) to be removed
*/
void
removeGestureTemplate
(
int
index
);
/**
* Remove every recorded gesture template
*/
void
removeAllGestureTemplates
();
/**
* Get a specific gesture template a gesture template by another
*
* @param index the index of the template to be returned
* @return the template
*/
GVFGesture
&
getGestureTemplate
(
int
index
);
/**
* Get every recorded gesture template
*
* @return the vecotr of gesture templates
*/
vector
<
GVFGesture
>
&
getAllGestureTemplates
();
/**
* Get number of gesture templates in the vocabulary
* @return the number of templates
*/
int
getNumberOfGestureTemplates
();
/**
* Get gesture classes
*/
vector
<
int
>
getGestureClasses
();
#pragma mark - Recognition and tracking
/**
* Set the state of GVF
* @param _state the state to be given to GVF, it is a GVFState
* @param indexes an optional argument providing a list of gesture index.
* In learning mode the index of the gesture being recorded can be given as an argument
* since the type is vector<int>, it should be something like '{3}'. In following mode, the list of indexes
* is the list of active gestures to be considered in the recognition/tracking.
*/
void
setState
(
GVFState
_state
,
vector
<
int
>
indexes
=
vector
<
int
>
());
/**
* Return the current state of GVF
* @return GVFState the current state
*/
GVFState
getState
();
/**
* Compute the estimated gesture and its potential variations
*
* @details infers the probability that the current observation belongs to
* one of the recorded gesture template and track the variations of this gesture
* according to each template
*
* @param observation vector of the observation data at current time
* @return the estimated probabilities and variaitons relative to each template
*/
GVFOutcomes
&
update
(
vector
<
float
>
&
observation
);
/**
* Define a subset of gesture templates on which to perform the recognition
* and variation tracking
*
* @details By default every recorded gesture template is considered
* @param set of gesture template index to consider
*/
void
setActiveGestures
(
vector
<
int
>
activeGestureIds
);
/**
* Restart GVF
* @details re-sample particles at the origin (i.e. initial prior)
*/
void
restart
();
/**
* Clear GVF
* @details delete templates
*/
void
clear
();
/**
* Translate data according to the first point
* @details substract each gesture feature by the first point of the gesture
* @param boolean to activate or deactivate translation
*/
void
translate
(
bool
translateFlag
);
/**
* Segment gestures within a continuous gesture stream
* @details if segmentation is true, the method will segment a continuous gesture into a sequence
* of gestures. In other words no need to call the method startGesture(), it is done automatically
* @param segmentationFlag boolean to activate or deactivate segmentation
*/
void
segmentation
(
bool
segmentationFlag
);
#pragma mark - [ Accessors ]
#pragma mark > Parameters
/**
* Set tolerance between observation and estimation
* @details tolerance depends on the range of the data
* typially tolerance = (data range)/3.0;
* @param tolerance value
*/
void
setTolerance
(
float
tolerance
);
/**
* Get the obervation tolerance value
* @details see setTolerance(float tolerance)
* @return the current toleranc value
*/
float
getTolerance
();
void
setDistribution
(
float
_distribution
);
/**
* Set number of particles used in estimation
* @details default valye is 1000, note that the computational
* cost directly depends on the number of particles
* @param new number of particles
*/
void
setNumberOfParticles
(
int
numberOfParticles
);
/**
* Get the current number of particles
* @return the current number of particles
*/
int
getNumberOfParticles
();
/**
* Number of prediciton steps
* @details it is possible to leave GVF to perform few steps of prediction
* ahead which can be useful to estimate more fastly the variations. Default value is 1
* which means no prediction ah