@@ -178,7 +178,10 @@ src/resources_rc.py: resources/resources.qrc | |||
# ------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
CPP: carla-backend carla-bridge carla-discovery jackmeter xycontroller | |||
CPP: caitlib carla-backend carla-bridge carla-discovery jackmeter xycontroller | |||
caitlib: | |||
$(MAKE) -C c++/caitlib | |||
carla-backend: carla-engine carla-native carla-plugin | |||
$(MAKE) -C c++/carla-backend | |||
@@ -216,6 +219,7 @@ debug: | |||
$(MAKE) DEBUG=true | |||
doxygen: | |||
$(MAKE) doxygen -C c++/caitlib | |||
$(MAKE) doxygen -C c++/carla-backend | |||
$(MAKE) doxygen -C c++/carla-bridge | |||
$(MAKE) doxygen -C c++/carla-engine | |||
@@ -251,6 +255,7 @@ wine64: | |||
# ------------------------------------------------------------------------------------------------------------------------------------------------------ | |||
clean: | |||
$(MAKE) clean -C c++/caitlib | |||
$(MAKE) clean -C c++/carla-backend | |||
$(MAKE) clean -C c++/carla-bridge | |||
$(MAKE) clean -C c++/carla-discovery | |||
@@ -268,7 +273,7 @@ clean: | |||
install: | |||
# Create directories | |||
install -d $(DESTDIR)$(PREFIX)/bin/ | |||
install -d $(DESTDIR)$(PREFIX)/lib/carla/ | |||
install -d $(DESTDIR)$(PREFIX)/lib/cadence/ | |||
install -d $(DESTDIR)$(PREFIX)/share/applications/ | |||
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/16x16/apps/ | |||
install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/ | |||
@@ -353,10 +358,11 @@ install: | |||
install -m 755 src/*.py $(DESTDIR)$(PREFIX)/share/cadence/src/ | |||
install -m 755 \ | |||
c++/caitlib/*.so \ | |||
c++/carla-backend/*.so \ | |||
c++/carla-bridge/carla-bridge-* \ | |||
c++/carla-discovery/carla-discovery-* \ | |||
$(DESTDIR)$(PREFIX)/lib/carla/ | |||
$(DESTDIR)$(PREFIX)/lib/cadence/ | |||
# Install addtional stuff for Cadence | |||
install -m 644 data/pulse2jack/* $(DESTDIR)$(PREFIX)/share/cadence/pulse2jack/ | |||
@@ -411,5 +417,5 @@ uninstall: | |||
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla.svg | |||
rm -f $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/carla-control.svg | |||
rm -f $(X11_RC_DIR)/99cadence-session-start | |||
rm -rf $(DESTDIR)$(PREFIX)/lib/carla/ | |||
rm -rf $(DESTDIR)$(PREFIX)/lib/cadence/ | |||
rm -rf $(DESTDIR)$(PREFIX)/share/cadence/ |
@@ -19,16 +19,13 @@ OBJS = \ | |||
# -------------------------------------------------------------- | |||
all: caitlib.so test | |||
doxygen: caitlib.doxygen | |||
doxygen $< | |||
all: caitlib.so | |||
caitlib.so: $(OBJS) | |||
$(CC) $^ $(LINK_FLAGS) -o $@ && $(STRIP) $@ | |||
test: $(OBJS) test.o | |||
$(CC) $^ -lm -lpthread -ljack -o $@ && $(STRIP) $@ | |||
doxygen: caitlib.doxygen | |||
doxygen $< | |||
# -------------------------------------------------------------- | |||
@@ -46,6 +46,7 @@ typedef struct _RawMidiEvent { | |||
jack_midi_data_t data[MAX_EVENT_DATA_SIZE]; | |||
size_t dataSize; | |||
jack_nframes_t time; | |||
double value; // used for special events | |||
} RawMidiEvent; | |||
typedef struct _CaitlibOutPort { | |||
@@ -0,0 +1,287 @@ | |||
# Doxyfile 1.7.6.1 | |||
#--------------------------------------------------------------------------- | |||
# Project related configuration options | |||
#--------------------------------------------------------------------------- | |||
DOXYFILE_ENCODING = UTF-8 | |||
PROJECT_NAME = "Caitlib" | |||
PROJECT_NUMBER = | |||
PROJECT_BRIEF = | |||
PROJECT_LOGO = | |||
OUTPUT_DIRECTORY = ../../doc/caitlib | |||
CREATE_SUBDIRS = NO | |||
OUTPUT_LANGUAGE = English | |||
BRIEF_MEMBER_DESC = YES | |||
REPEAT_BRIEF = YES | |||
ABBREVIATE_BRIEF = | |||
ALWAYS_DETAILED_SEC = NO | |||
INLINE_INHERITED_MEMB = NO | |||
FULL_PATH_NAMES = YES | |||
STRIP_FROM_PATH = | |||
STRIP_FROM_INC_PATH = | |||
SHORT_NAMES = NO | |||
JAVADOC_AUTOBRIEF = NO | |||
QT_AUTOBRIEF = NO | |||
MULTILINE_CPP_IS_BRIEF = NO | |||
INHERIT_DOCS = YES | |||
SEPARATE_MEMBER_PAGES = NO | |||
TAB_SIZE = 4 | |||
ALIASES = | |||
TCL_SUBST = | |||
OPTIMIZE_OUTPUT_FOR_C = NO | |||
OPTIMIZE_OUTPUT_JAVA = NO | |||
OPTIMIZE_FOR_FORTRAN = NO | |||
OPTIMIZE_OUTPUT_VHDL = NO | |||
EXTENSION_MAPPING = | |||
BUILTIN_STL_SUPPORT = NO | |||
CPP_CLI_SUPPORT = NO | |||
SIP_SUPPORT = NO | |||
IDL_PROPERTY_SUPPORT = YES | |||
DISTRIBUTE_GROUP_DOC = NO | |||
SUBGROUPING = YES | |||
INLINE_GROUPED_CLASSES = NO | |||
INLINE_SIMPLE_STRUCTS = NO | |||
TYPEDEF_HIDES_STRUCT = NO | |||
SYMBOL_CACHE_SIZE = 0 | |||
LOOKUP_CACHE_SIZE = 0 | |||
#--------------------------------------------------------------------------- | |||
# Build related configuration options | |||
#--------------------------------------------------------------------------- | |||
EXTRACT_ALL = YES | |||
EXTRACT_PRIVATE = NO | |||
EXTRACT_STATIC = NO | |||
EXTRACT_LOCAL_CLASSES = YES | |||
EXTRACT_LOCAL_METHODS = NO | |||
EXTRACT_ANON_NSPACES = NO | |||
HIDE_UNDOC_MEMBERS = NO | |||
HIDE_UNDOC_CLASSES = NO | |||
HIDE_FRIEND_COMPOUNDS = NO | |||
HIDE_IN_BODY_DOCS = NO | |||
INTERNAL_DOCS = NO | |||
CASE_SENSE_NAMES = YES | |||
HIDE_SCOPE_NAMES = NO | |||
SHOW_INCLUDE_FILES = YES | |||
FORCE_LOCAL_INCLUDES = NO | |||
INLINE_INFO = YES | |||
SORT_MEMBER_DOCS = NO | |||
SORT_BRIEF_DOCS = NO | |||
SORT_MEMBERS_CTORS_1ST = NO | |||
SORT_GROUP_NAMES = NO | |||
SORT_BY_SCOPE_NAME = NO | |||
STRICT_PROTO_MATCHING = NO | |||
GENERATE_TODOLIST = YES | |||
GENERATE_TESTLIST = YES | |||
GENERATE_BUGLIST = YES | |||
GENERATE_DEPRECATEDLIST= YES | |||
ENABLED_SECTIONS = | |||
MAX_INITIALIZER_LINES = 30 | |||
SHOW_USED_FILES = YES | |||
SHOW_DIRECTORIES = NO | |||
SHOW_FILES = YES | |||
SHOW_NAMESPACES = YES | |||
FILE_VERSION_FILTER = | |||
LAYOUT_FILE = | |||
CITE_BIB_FILES = | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to warning and progress messages | |||
#--------------------------------------------------------------------------- | |||
QUIET = NO | |||
WARNINGS = YES | |||
WARN_IF_UNDOCUMENTED = YES | |||
WARN_IF_DOC_ERROR = YES | |||
WARN_NO_PARAMDOC = NO | |||
WARN_FORMAT = "$file:$line: $text" | |||
WARN_LOGFILE = | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the input files | |||
#--------------------------------------------------------------------------- | |||
INPUT = | |||
INPUT_ENCODING = UTF-8 | |||
FILE_PATTERNS = | |||
RECURSIVE = NO | |||
EXCLUDE = caitlib.c list.h memory_atomic.h memory_atomic.c | |||
EXCLUDE_SYMLINKS = NO | |||
EXCLUDE_PATTERNS = | |||
EXCLUDE_SYMBOLS = | |||
EXAMPLE_PATH = | |||
EXAMPLE_PATTERNS = | |||
EXAMPLE_RECURSIVE = NO | |||
IMAGE_PATH = | |||
INPUT_FILTER = | |||
FILTER_PATTERNS = | |||
FILTER_SOURCE_FILES = NO | |||
FILTER_SOURCE_PATTERNS = | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to source browsing | |||
#--------------------------------------------------------------------------- | |||
SOURCE_BROWSER = NO | |||
INLINE_SOURCES = NO | |||
STRIP_CODE_COMMENTS = YES | |||
REFERENCED_BY_RELATION = NO | |||
REFERENCES_RELATION = NO | |||
REFERENCES_LINK_SOURCE = YES | |||
USE_HTAGS = NO | |||
VERBATIM_HEADERS = YES | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the alphabetical class index | |||
#--------------------------------------------------------------------------- | |||
ALPHABETICAL_INDEX = YES | |||
COLS_IN_ALPHA_INDEX = 5 | |||
IGNORE_PREFIX = | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the HTML output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_HTML = YES | |||
HTML_OUTPUT = . | |||
HTML_FILE_EXTENSION = .html | |||
HTML_HEADER = | |||
HTML_FOOTER = | |||
HTML_STYLESHEET = | |||
HTML_EXTRA_FILES = | |||
HTML_COLORSTYLE_HUE = 220 | |||
HTML_COLORSTYLE_SAT = 100 | |||
HTML_COLORSTYLE_GAMMA = 80 | |||
HTML_TIMESTAMP = YES | |||
HTML_ALIGN_MEMBERS = YES | |||
HTML_DYNAMIC_SECTIONS = NO | |||
GENERATE_DOCSET = NO | |||
DOCSET_FEEDNAME = "Doxygen generated docs" | |||
DOCSET_BUNDLE_ID = org.doxygen.Project | |||
DOCSET_PUBLISHER_ID = org.doxygen.Publisher | |||
DOCSET_PUBLISHER_NAME = Publisher | |||
GENERATE_HTMLHELP = NO | |||
CHM_FILE = | |||
HHC_LOCATION = | |||
GENERATE_CHI = NO | |||
CHM_INDEX_ENCODING = | |||
BINARY_TOC = NO | |||
TOC_EXPAND = NO | |||
GENERATE_QHP = NO | |||
QCH_FILE = | |||
QHP_NAMESPACE = org.doxygen.Project | |||
QHP_VIRTUAL_FOLDER = doc | |||
QHP_CUST_FILTER_NAME = | |||
QHP_CUST_FILTER_ATTRS = | |||
QHP_SECT_FILTER_ATTRS = | |||
QHG_LOCATION = | |||
GENERATE_ECLIPSEHELP = NO | |||
ECLIPSE_DOC_ID = org.doxygen.Project | |||
DISABLE_INDEX = NO | |||
GENERATE_TREEVIEW = NO | |||
ENUM_VALUES_PER_LINE = 4 | |||
USE_INLINE_TREES = NO | |||
TREEVIEW_WIDTH = 250 | |||
EXT_LINKS_IN_WINDOW = NO | |||
FORMULA_FONTSIZE = 10 | |||
FORMULA_TRANSPARENT = YES | |||
USE_MATHJAX = NO | |||
MATHJAX_RELPATH = http://www.mathjax.org/mathjax | |||
MATHJAX_EXTENSIONS = | |||
SEARCHENGINE = YES | |||
SERVER_BASED_SEARCH = NO | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the LaTeX output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_LATEX = NO | |||
LATEX_OUTPUT = latex | |||
LATEX_CMD_NAME = latex | |||
MAKEINDEX_CMD_NAME = makeindex | |||
COMPACT_LATEX = NO | |||
PAPER_TYPE = a4 | |||
EXTRA_PACKAGES = | |||
LATEX_HEADER = | |||
LATEX_FOOTER = | |||
PDF_HYPERLINKS = YES | |||
USE_PDFLATEX = YES | |||
LATEX_BATCHMODE = NO | |||
LATEX_HIDE_INDICES = NO | |||
LATEX_SOURCE_CODE = NO | |||
LATEX_BIB_STYLE = plain | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the RTF output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_RTF = NO | |||
RTF_OUTPUT = rtf | |||
COMPACT_RTF = NO | |||
RTF_HYPERLINKS = NO | |||
RTF_STYLESHEET_FILE = | |||
RTF_EXTENSIONS_FILE = | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the man page output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_MAN = NO | |||
MAN_OUTPUT = man | |||
MAN_EXTENSION = .3 | |||
MAN_LINKS = NO | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the XML output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_XML = NO | |||
XML_OUTPUT = xml | |||
XML_SCHEMA = | |||
XML_DTD = | |||
XML_PROGRAMLISTING = YES | |||
#--------------------------------------------------------------------------- | |||
# configuration options for the AutoGen Definitions output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_AUTOGEN_DEF = NO | |||
#--------------------------------------------------------------------------- | |||
# configuration options related to the Perl module output | |||
#--------------------------------------------------------------------------- | |||
GENERATE_PERLMOD = NO | |||
PERLMOD_LATEX = NO | |||
PERLMOD_PRETTY = YES | |||
PERLMOD_MAKEVAR_PREFIX = | |||
#--------------------------------------------------------------------------- | |||
# Configuration options related to the preprocessor | |||
#--------------------------------------------------------------------------- | |||
ENABLE_PREPROCESSING = YES | |||
MACRO_EXPANSION = NO | |||
EXPAND_ONLY_PREDEF = NO | |||
SEARCH_INCLUDES = YES | |||
INCLUDE_PATH = | |||
INCLUDE_FILE_PATTERNS = | |||
PREDEFINED = DOXYGEN | |||
EXPAND_AS_DEFINED = | |||
SKIP_FUNCTION_MACROS = YES | |||
#--------------------------------------------------------------------------- | |||
# Configuration::additions related to external references | |||
#--------------------------------------------------------------------------- | |||
TAGFILES = | |||
GENERATE_TAGFILE = | |||
ALLEXTERNALS = NO | |||
EXTERNAL_GROUPS = YES | |||
PERL_PATH = /usr/bin/perl | |||
#--------------------------------------------------------------------------- | |||
# Configuration options related to the dot tool | |||
#--------------------------------------------------------------------------- | |||
CLASS_DIAGRAMS = YES | |||
MSCGEN_PATH = | |||
HIDE_UNDOC_RELATIONS = YES | |||
HAVE_DOT = NO | |||
DOT_NUM_THREADS = 0 | |||
DOT_FONTNAME = Helvetica | |||
DOT_FONTSIZE = 10 | |||
DOT_FONTPATH = | |||
CLASS_GRAPH = YES | |||
COLLABORATION_GRAPH = YES | |||
GROUP_GRAPHS = YES | |||
UML_LOOK = NO | |||
TEMPLATE_RELATIONS = NO | |||
INCLUDE_GRAPH = YES | |||
INCLUDED_BY_GRAPH = YES | |||
CALL_GRAPH = NO | |||
CALLER_GRAPH = NO | |||
GRAPHICAL_HIERARCHY = YES | |||
DIRECTORY_GRAPH = YES | |||
DOT_IMAGE_FORMAT = png | |||
INTERACTIVE_SVG = NO | |||
DOT_PATH = | |||
DOTFILE_DIRS = | |||
MSCFILE_DIRS = | |||
DOT_GRAPH_MAX_NODES = 50 | |||
MAX_DOT_GRAPH_DEPTH = 0 | |||
DOT_TRANSPARENT = NO | |||
DOT_MULTI_TARGETS = YES | |||
GENERATE_LEGEND = YES | |||
DOT_CLEANUP = YES |
@@ -58,6 +58,7 @@ typedef void* CaitlibHandle; | |||
#define MIDI_EVENT_TYPE_PROGRAM 0xC0 //!< Program Event, uses Program data. | |||
#define MIDI_EVENT_TYPE_CHANNEL_PRESSURE 0xD0 //!< Channel Pressure Event, uses Pressure data. | |||
#define MIDI_EVENT_TYPE_PITCH_WHEEL 0xE0 //!< PitchWheel Event, uses PitchWheel data. | |||
#define MIDI_EVENT_TYPE_TIME 0xF1 //!< Time Event, uses Time Data. | |||
/**@}*/ | |||
/*! | |||
@@ -76,7 +77,8 @@ typedef struct _MidiEvent | |||
uint8_t channel; | |||
/*! | |||
* MidiEvent Data (values depend on type) | |||
* MidiEvent Data (values depend on type). | |||
* \note Time event types ignore channel value. | |||
*/ | |||
union MidiEventData { | |||
struct MidiEventControl { | |||
@@ -101,6 +103,12 @@ typedef struct _MidiEvent | |||
int16_t value; | |||
} pitchwheel; | |||
struct MidiEventTime { | |||
double bpm; | |||
uint8_t sigNum; | |||
uint8_t sigDenum; | |||
} time; | |||
#ifndef DOXYGEN | |||
// padding for future events | |||
struct _MidiEventPadding { | |||
@@ -241,6 +249,12 @@ void caitlib_put_program(CaitlibHandle handle, uint32_t port, uint32_t time, uin | |||
CAITLIB_EXPORT | |||
void caitlib_put_pitchwheel(CaitlibHandle handle, uint32_t port, uint32_t time, uint8_t channel, int16_t value); | |||
/*! | |||
* Put a MIDI Time event into a Caitlib instance. | |||
*/ | |||
CAITLIB_EXPORT | |||
void caitlib_put_time(CaitlibHandle handle, uint32_t time, double bpm, uint8_t sigNum, uint8_t sigDenum); | |||
/**@}*/ | |||
// ------------------------------------------------------------------------------------------ | |||
@@ -1,151 +0,0 @@ | |||
/* -*- Mode: C ; c-basic-offset: 2 -*- */ | |||
/***************************************************************************** | |||
* | |||
* DESCRIPTION: | |||
* | |||
* | |||
* NOTES: | |||
* | |||
* | |||
*****************************************************************************/ | |||
#include "caitlib.h" | |||
#include <unistd.h> | |||
int main() | |||
{ | |||
CaitlibHandle handle = caitlib_init("test"); | |||
const uint32_t port = caitlib_create_port(handle, "midi-outX"); | |||
int sampleRate = 44100; //jack_get_sample_rate(client); | |||
int m = sampleRate/1000; // whatever | |||
// 0 Par ch=1 c=7 v=99 | |||
// 0 Par ch=1 c=10 v=63 | |||
// 0 Par ch=1 c=0 v=0 | |||
caitlib_put_control(handle, port, 0*m, 0, 7, 99); | |||
caitlib_put_control(handle, port, 0*m, 0, 10, 63); | |||
caitlib_put_control(handle, port, 0*m, 0, 0, 0); | |||
// 0 PrCh ch=1 p=0 -- TODO jack_midi_put_program() | |||
// 0 On ch=1 n=64 v=90 | |||
// 325 Off ch=1 n=64 v=90 | |||
// 384 On ch=1 n=62 v=90 | |||
// 709 Off ch=1 n=62 v=90 | |||
// 768 On ch=1 n=60 v=90 | |||
// 1093 Off ch=1 n=60 v=90 | |||
caitlib_put_note_on(handle, port, 0*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 325*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 384*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 709*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 768*m, 0, 60, 90); | |||
caitlib_put_note_off(handle, port, 1093*m, 0, 60, 90); | |||
// 1152 On ch=1 n=62 v=90 | |||
// 1477 Off ch=1 n=62 v=90 | |||
// 1536 On ch=1 n=64 v=90 | |||
// 1861 Off ch=1 n=64 v=90 | |||
// 1920 On ch=1 n=64 v=90 | |||
// 2245 Off ch=1 n=64 v=90 | |||
caitlib_put_note_on(handle, port, 1152*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 1477*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 1536*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 1861*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 1920*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 2245*m, 0, 64, 90); | |||
// 2304 On ch=1 n=64 v=90 | |||
// 2955 Off ch=1 n=64 v=90 | |||
// 3072 On ch=1 n=62 v=90 | |||
// 3397 Off ch=1 n=62 v=90 | |||
// 3456 On ch=1 n=62 v=90 | |||
// 3781 Off ch=1 n=62 v=90 | |||
caitlib_put_note_on(handle, port, 2304*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 2955*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 3072*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 3397*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 3456*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 3781*m, 0, 62, 90); | |||
// 3840 On ch=1 n=62 v=90 | |||
// 4491 Off ch=1 n=62 v=90 | |||
// 4608 On ch=1 n=64 v=90 | |||
// 4933 Off ch=1 n=64 v=90 | |||
// 4992 On ch=1 n=67 v=90 | |||
// 5317 Off ch=1 n=67 v=90 | |||
caitlib_put_note_on(handle, port, 3840*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 4491*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 4608*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 4933*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 4992*m, 0, 67, 90); | |||
caitlib_put_note_off(handle, port, 5317*m, 0, 67, 90); | |||
// 5376 On ch=1 n=67 v=90 | |||
// 6027 Off ch=1 n=67 v=90 | |||
// 6144 On ch=1 n=64 v=90 | |||
// 6469 Off ch=1 n=64 v=90 | |||
// 6528 On ch=1 n=62 v=90 | |||
// 6853 Off ch=1 n=62 v=90 | |||
caitlib_put_note_on(handle, port, 5376*m, 0, 67, 90); | |||
caitlib_put_note_off(handle, port, 6027*m, 0, 67, 90); | |||
caitlib_put_note_on(handle, port, 6144*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 6469*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 6528*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 6853*m, 0, 62, 90); | |||
// 6912 On ch=1 n=60 v=90 | |||
// 7237 Off ch=1 n=60 v=90 | |||
// 7296 On ch=1 n=62 v=90 | |||
// 7621 Off ch=1 n=62 v=90 | |||
// 7680 On ch=1 n=64 v=90 | |||
// 8005 Off ch=1 n=64 v=90 | |||
caitlib_put_note_on(handle, port, 6912*m, 0, 60, 90); | |||
caitlib_put_note_off(handle, port, 7237*m, 0, 60, 90); | |||
caitlib_put_note_on(handle, port, 7296*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 7621*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 7680*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 8005*m, 0, 64, 90); | |||
// 8064 On ch=1 n=64 v=90 | |||
// 8389 Off ch=1 n=64 v=90 | |||
// 8448 On ch=1 n=64 v=90 | |||
// 9099 Off ch=1 n=64 v=90 | |||
// 9216 On ch=1 n=62 v=90 | |||
// 9541 Off ch=1 n=62 v=90 | |||
caitlib_put_note_on(handle, port, 8064*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 8389*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 8448*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 9099*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 9216*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 9541*m, 0, 62, 90); | |||
// 9600 On ch=1 n=62 v=90 | |||
// 9925 Off ch=1 n=62 v=90 | |||
// 9984 On ch=1 n=64 v=90 | |||
// 10309 Off ch=1 n=64 v=90 | |||
// 10368 On ch=1 n=62 v=90 | |||
// 10693 Off ch=1 n=62 v=90 | |||
caitlib_put_note_on(handle, port, 9600*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 9925*m, 0, 62, 90); | |||
caitlib_put_note_on(handle, port, 9984*m, 0, 64, 90); | |||
caitlib_put_note_off(handle, port, 10309*m, 0, 64, 90); | |||
caitlib_put_note_on(handle, port, 10368*m, 0, 62, 90); | |||
caitlib_put_note_off(handle, port, 10693*m, 0, 62, 90); | |||
// 10752 On ch=1 n=60 v=90 | |||
// 12056 Off ch=1 n=60 v=90 | |||
caitlib_put_note_on(handle, port, 10752*m, 0, 60, 90); | |||
caitlib_put_note_off(handle, port, 12056*m, 0, 60, 90); | |||
// 13824 Par ch=1 c=64 v=0 -- ?? | |||
while (1) | |||
sleep(1); | |||
caitlib_close(handle); | |||
return 0; | |||
} |
@@ -0,0 +1,11 @@ | |||
#!/bin/bash | |||
if [ -f /usr/bin/python3 ]; then | |||
PYTHON=/usr/bin/python3 | |||
else | |||
PYTHON=python | |||
fi | |||
INSTALL_PREFIX="X-PREFIX-X" | |||
export PATH="$INSTALL_PREFIX"/lib/cadence:$PATH | |||
exec $PYTHON $INSTALL_PREFIX/share/cadence/src/caitlyn.py --with-libprefix="$INSTALL_PREFIX" "$@" |
@@ -0,0 +1,9 @@ | |||
[Desktop Entry] | |||
Name=Caitlyn | |||
GenericName=Caitlyn | |||
Comment=JACK MIDI Sequencer | |||
Exec=caitlyn | |||
Icon=cadence | |||
Terminal=false | |||
Type=Application | |||
Categories=AudioVideo;AudioEditing;Qt; |
@@ -7,5 +7,5 @@ else | |||
fi | |||
INSTALL_PREFIX="X-PREFIX-X" | |||
export PATH="$INSTALL_PREFIX"/lib/carla:$PATH | |||
export PATH="$INSTALL_PREFIX"/lib/cadence:$PATH | |||
exec $PYTHON $INSTALL_PREFIX/share/cadence/src/carla.py --with-libprefix="$INSTALL_PREFIX" "$@" |
@@ -34,7 +34,6 @@ except: | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
# Pre-definitions | |||
c_enum = c_int | |||
c_uchar = c_uint8 | |||
# --------------------------------------------------------------------------------------------------------------------- | |||