thestk / rtmidi

A set of C++ classes that provide a common API for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMIDI) and Windows (Multimedia)
Other
996 stars 273 forks source link

Issue with SysEx Bulk Dump and Active Sensing #247

Open benbenz opened 3 years ago

benbenz commented 3 years ago

Hello,

I am running into an issue when trying to receive a bulk dump from a Access Virus TI Snow: the Active sensing produced by the device is polluting the bulk dump, causing the final dump to be around 800-900 bytes instead of 524 bytes. The dump exhibits a lot of 254 (= 0xFE aka Active Sensing). I have tried to de-activate active sensing with the ignoreTypes method but the dump still contains parasite elements. Somehow, MIDI Monitor is able to display the proper dump without any Active Sensing 'pollution'....

This issue is visible in cmidiin:

SpotlightKid commented 3 years ago

I assume you are using the CoreMIDI backend API?

benbenz commented 3 years ago

That's correct. I forgot to mention I was on MAC OSX 10.9. The Cmake configuration is as follow:

-- The CXX compiler identification is Clang 10.0.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/ben/dev/llvm/clang+llvm-10.0.0-x86_64-apple-darwin/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /opt/local/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'jack'
--   No package 'jack' found
-- Looking for jack_port_rename
-- Looking for jack_port_rename - not found
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
CMake Deprecation Warning at CMakeLists.txt:154 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

-- Compiling with support for: jack coremidi
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_C_FLAGS