| @@ -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 | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||