I have a Studio Logic MIDI music keyboard which I have plugged into
my PC
via a USB cable. Windows has automatically installed the appropriate
driver/s. I am attempting to read the MIDI input from the keyboard as I
want to see if I can use a Macro to modify the sound before it goes
to the
speaker. (Actually I want to try to programmatically mix sine waves
like
a Hammond Organ does - it may not be possible, but I'd like to give it a
try!)
I installed a trial version of Device Monitoring Studio, see
https://www.hhdsoftware.com/device-monitoring-studio which enables
me to
trap the raw data from the keyboard, and I'm able to identify which keys
are pressed or released, and also the keyboard sliders' movements and
slider positions. For my purposes, that is all I need to extract
from the
MIDI stream.
I then went on the Web to see if I could find examples of Macro code
that
would enable my program to emulate what I had been able to do with
Device
Monitoring Studio. It turns out that USB coding is very complex and the
only examples I could find were in C, C++ or Visual Basic, none of
which I
have, or have ever worked with.
I then had a look at LibreOffice 5.3 SDK API. I believe that is the API
that Base uses, and over several years I have developed a number of
databases using macros that make calls to the API. One API service I
found
was, com.sun.star.io.pipe, which looks as though it might be what I
need,
but I don't know if it would work with a USB port, and I could not
find any
macro code examples that might point me in the right direction.
So my questions are -
1. Does anyone know if it is possible to read from a USB port using a
LibreOffice macro utilising the API? If so can you point me to some
example code (preferably in Basic)?
2. Failing that, is there a simple application on the market that
can read
a USB MIDI stream into a buffer or file? I think Device Monitoring
Studio
can do that, but it is expensive and has far more features than I'll
ever
need.
Any help in this regard would be much appreciated
Thanks,
Noel
--
Noel Lodge
lodgemn@gmail.com