Project infrastructure:
- Moved repository to Github.
Fixes:
- `midiutil.open_midiport`:
- Correctly report and log I/O direction and instance type.
- Fix naming of virtual port.
Enhancements / Changes:
- Synced with upstream [RtMidi] (2.1.1-399a8ee).
- `midiutil`:
- The function `midiutil.open_port` has been renamed to
`open_midiport`.
- Added convenience functions `open_midiinput` and
`open_midioutput`, which wrap `open_midiport`.
- RtMidi API to use can be specified via the `RTMIDI_API`
environment variable. Only used when `API_UNSPECIFIED` is
passed for the `api` argument. Value should be one of the
`API_*` constant names with out the `API_` prefix, e.g.
`UNIX_JACK` for the Jack API.
- Cython wrapper class hierarchy restructured to better match the
underlying C++ classes and remove code duplication.
- Some source code re-ordering was done.
Documentation:
- Added basic structure and initial content of Sphinx documentation.
- Documented exceptions raised by `MidiIn/Out.open_[virtual_]port()`.
- Some docstring corrections and formatting fixes.
Building:
- Simplified `setup.py` by throwing out old compatibility stuff.
- Explicitly call `PyEval_InitThreads` from Cython code instead of
using undocumented compiler macro.
Examples:
- Moved [osc2midi] example into its own repository.
- Add new `sequencer` example.
- Add new `noteon2osc` example.
- `midifilter`:
- Moved `main.py` to `__main__.py`, removed old code and fixed
command line args access.
- Streamlined event matching.
- Added `CCToBankChange` filter.
- `Queue` module renamed to `queue` in Python 3.
- Fixed opening of output port erroneously used `"input"`.
- Fixed positional command line args handling.
- Set command name for argparse.
- `midi2command`:
- Added README.
- Added command line option to select backend API.
- Catch errors when opening port.
- Set client and port name.
- Cache command lookup (Python 3.2+ only).
- `sysexsaver`:
- Moved `main.py` to `__main__.py`, some refactoring.
- `models.py`: Fixed wrong entry for manufacturer
`(0, 32, 81)`.
- Moved module level code into `main` function.
- Include model name in output file, if possible.
- `drumseq`:
- Fixed global access in `Sequencer` class.
- Use `args.FileType` for pattern command line args.
[osc2midi]: https://github.com/SpotlightKid/osc2rtmidi.git