I suggest to integrate this with FFMPeg
For documentation, either run Doxygen or see https://portmidi.github.io/portmidi_docs/
Update to v2.0.2 -- these changes mirror github.com/PortMidi/portmidi. See that for more details.
Removed obsolete files and directories. pm_python, pm_qt and pm_cl are now repos in github.com/portmidi in case anyone wants to bring these up to date.
Modified to build PmDefaults program under Ubuntu linux.
Java and pmdefaults works on macOS now. Still need to test/debug on Linux.
Updated some README files and tested Windows implementation of PmDefaults. Removed some old code for creating a "real" PmDefaults application in favor of a bare-bones command-line version.
Simplify CMake files.
modified CMakeLists.txt to build pmdefaults on macOS
Windows has a problem when you type ^C to sysex loopback test. (Probably there are many other times where you can interrupt MIDI operations and cause problems.) Added Ctrl-C handler. Trying to prompt for ENTER before exiting and closing console (which might have important error messages) seems to interact with nested calls to getchar(), so prompting for ENTER (which was the default for DEBUG builds) is now removed. Run from the command line to keep the console alive on exit. Now tests pass on...
Updates now pass all tests on macOS. This PortMidi version is untested on Windows.
Replace ALSA timestamps (which are wrong for virtual devices) with local time in input handler. Discovered that closing in ALSA aborts the output stream, so added documentation and a delay to testio.c before closing so that tests work.
changed virtual -> is_virtual
changed a field name "virtual" to "is_virtual" for C++ compatibility.
Got everything to compile on Windows. Eliminated some compiler warnings.
Got virttest.c to work on macOS -- important reworking of internals to update device list when Pm_Initialize() is called after Pm_Terminte() and to allow for devices to be re-opened.
Omitted a file from the previous commit: virttest.c
Lots of work on error codes and error reporting for ALSA, including cleaning up the documentation. Added virttest.c to test virtual device create/delete functions. Got virtual devices working with separate create and open functions (also close and delete functions are separate).
Adding new test program to the repo.
Changed virtual device API to separate device create/delete from open/close. Also made handling of timestamps more consistent with the idea that incoming timestamps should reflect the message receive time, not zero and not some time that is long gone. This update is tested moderately on macOS, so Linux is not working yet.
Mistake in target directory for docs.
Added script to move any changes to github repo.
Worked on Doxygen comments and created new documentation directory.
Added doxygen output -- this needs some proofreading and refinement for formatting, but the info is all good.
Adding missing file to repo.
In CoreMIDI API, hide host error when closing an input when output is already shut down. It is considered correct to call Pm_Close() even if the sender no longer exists. This version passes all tests on macOS.
Fixed another CMake problem - flags for Linux Release.
forgot to remove print statement from debugging. This version fixes it and compiles Debug and Release versions on VS Community 2019.
Updates to CMakeLists for linux, added some event handling for port connect and disconnect, fixed virtual output to not appear also as input. All tests now pass on Linux.
to test fast on Windows, we need to specify an output buffer based on message rate. Also updated pm_test/README.txt based on running the tests on Windows
Took out some debugging print statements.
Output to virtual ports on macOS are rate limited in the same was as IAC Bus connections. This is implemented along with more options for testing with fast, fastrcv, and midithru. Tests are described in pm_test/README.txt.
Modified CoreMIDI message rate limiting and now they only apply to IAC bus.
fixed some test programs, improved error messages from windows when port is opened by another application.
Fixed some edits to compile on Linux.
Incorporate changes after a review of 4583 related files from github, after reducing changes to 33K lines of diff in 219 pair-wise file comparisons and 476 unique additional files. Obviously, I will have missed some changes, but I found a few things of interest. Since this is such a large change with a lot of cleaning for consistent types, I also cleaned up some formatting conventions that always bothered me. At least the style is more internally consistent, but I've kept the PortAudio-like f...
Delete pm_mac.xcodeproj from repo - use CMakeLists.txt to (re)build this.
Deleted all .vcproj files - these should be generated from CMakeList.txt.
Ported to Windows. Minimal testing. Ready now to integrate and test some pending updates and patches.
Updated pmmacosxcm and pmwinmm to use the new naming conventions of api_info and info for api-specific data. Compiled but untested on macOS, not even compiled yet on Windows, but that is next.
Implemented CreateVirtualInput and CreateVirtualOutput on linux. Changed "descriptor" to "api-info", so this needs to be changed for macOS and Windows. Added pm_test/README.txt with detailed description/checklist for running tests.
Adding missing files.
Added Pm_CreateVirtualInput and Pm_CreateVirtualOutput for macOS. Need to implement for ALSA.
I've just installed Ubuntu on a virtual machine and im trying to use code::blocks IDE to write some C but im having issues installing portmidi. i have an error when i try to run the code which is as follows. ld||cannot find -lportaudio|, and help would be greatly appreciated. Thanks Cam
Hi everybody, it looks like i can't create a new ticket, so i post it here... Cheers!
Installing_portmidi_on_Windows
It turns out the recently updated portmidi.sln has absolute paths that will not work on other machines. This is a "feature" of CMake, so the right thing to do now is start with Cmake and CMakeLists.txt, and build a solution file. The portmidi.sln file has been removed from the repo.
updated portmidi.sln using cmake. This portmidi.sln seems to work correctly using MS Visual Studio Community 2015.
Installing_portmidi_on_Windows
Installing_portmidi_on_Windows
I am interested in allowing Csound to access multiple MIDI devices at the same time. Is this possible currently with PortMIDI? Can we have more than one Input Port in PortMIDI?
I would really like to support the de-facto standard of configuring the default ALSA device with the environment variable ALSA_OUTPUT_PORTS in my application. But PortMidi only tells me the name of the device, not the ALSA client and port ids. How about sorting the devices inside PortMidi so that the ones from ALSA_OUTPUT_PORTS are listed first? This way it will not interfere with PmDefaults.
Modified fast with -n option to send expired timestamps, minor fixes there too.
Created new test: fast.c sends a lot of messages.
Windows 10 now allow bluetooth midi for UWP apps via a new api: https://blogs.windows.com/buildingapps/2016/09/21/midi-enhancements-in-windows-10/ That page links to a Win32 wrapper for the UWP MIDI https://github.com/stammen/winrtmidi which allows regular Win32 desktop apps to utilize this new API. Is there or will there be any effort by PortMidi to support this? Many new midi devices are using bluetooth now. I don't see many commit updates to this PortMidi project, but MuseScore is currently relying...
fixed CMakeLists for Ubuntu -- not sure why the...
Hi I wanted to use your library as a git submodules but this requier that your code...
In short, libporttime.so and libporttime.a are not built during make. I can build...
Sorry - forgot to mention. I'm using portmidi release 217. I'll get a subversion...
Sorry to post this here - looks like the bug queue is currently disabled. I'm running...
Hi, I noticed that some midi controllers are very hard to wake up after a standby...
Set the svn:EOL property to native.
I had to make the following change to the code to have it compile on OS X 10.9.5...
Build log
Build log
Build log
Ok guys, it's pretty simple! The Problem was just using the MS Wavetable synth as...
Hello everyone, I have got an issue regarding the timing performance of Portmidi....
PmDefaultsMac
PmDefaultsWin
PmDefaults
PmDefaultsWin
PmDefaults
Installing_portmidi_on_Linux
Updated pmwinmm.c for x64 architectures.