Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIKMIDI 1.5: A major update #117

Merged
merged 339 commits into from
Nov 14, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
339 commits
Select commit Hold shift + click to select a range
2dab181
MIKMIDISequencer now creates separate default synths for each track. …
Mar 5, 2015
8d9c4d7
Issue #63: Made MIKMIDIChannelEvent headers public in iOS framework t…
Mar 5, 2015
075bc2f
Issue #64: Made MIKMIDIPrivateUtilties.h private.
Mar 5, 2015
4772669
Fixed bug that caused MIKMIDISynthesizer to always synthesize incomin…
Mar 5, 2015
7a8c604
Added +[MIKMIDICommand commandsFromMIDIEvent:clock:] to category in M…
Mar 5, 2015
2706b25
Issue #65: Added MIKMIDIPitchBendChangeCommand.
Mar 5, 2015
20d5477
Issue #66: Added additional init/convenience methods to MIKMIDISequen…
kris2point0 Mar 6, 2015
b4e6695
Fixed framework visibility for several _Subclass.h headers.
Mar 6, 2015
902083b
Issue #64: MIKMIDI.framework module now defines explicit submodules f…
Mar 6, 2015
539f8f2
Issue #63: Added MIKMIDIChannelPressureEvent.
Mar 6, 2015
fa9fe7e
Issue #63: Added MIKMIDIEventTypeMIDIPolyphonicKeyPressureMessage and…
Mar 6, 2015
268232a
Issue #63: Made MIKMIDIChannelPressureEvent.h public and added it to …
Mar 6, 2015
86ded9b
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
Mar 6, 2015
7045bc8
Moved two methods from MIKMIDITrack into MIKMIDITrack_Protected.
Mar 6, 2015
5b293f8
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
Mar 6, 2015
4b4c163
Merge branch 'master' into 1.1
Mar 7, 2015
a406bd1
Issue #35: Implemented -isEqual: and -hash on MIKMIDIEvent.
Mar 7, 2015
77b3612
Added tests target to MIKMIDI framework project.
Mar 7, 2015
f602631
Issue #35: Added -deleteCurrentEventWithError: to MIKMIDIEventIterator.
Mar 7, 2015
c92fb53
Issue #35: MIKMIDITrack is now basically KVO compliant for events. Mo…
Mar 7, 2015
5e7c403
Issue #35: Added -[MIKMIDIEventIterator moveCurrentEventTo:error].
Mar 9, 2015
7f01918
Issue #35: Fixed -[MIKMIDITrack moveEventsFromStartingTimeStamp:...] …
Mar 9, 2015
e29e10b
Issue #35: Added unit tests for -[MIKMIDITrack moveEventsFromStarting…
Mar 9, 2015
b448453
Issue #35: Fixed another edge case for -[MIKMIDITrack moveEventsFromS…
Mar 9, 2015
2dbe4fa
Issue #35: Added tests for -[MIKMIDITrack clearEventsFromStartingTime…
Mar 9, 2015
6b2c7c6
Issue #35: Added tests for -[MIKMIDITrack cutEventsFromStartingTimeSt…
Mar 10, 2015
5263c61
Issue #35: Fixed bugs so that all tests once again pass, particularly…
Mar 10, 2015
e84ebb9
Issue #35: Added tests for -[MIKMIDITrack copyEventsFromMIDITrack:...].
Mar 10, 2015
8492574
Issue #35: Reimplemented -copyEventsFromMIDITrack:... so that all tes…
Mar 10, 2015
521b3e8
Issue #35: Added tests for -[MIKMIDITrack mergemergeEventsFromMIDITra…
Mar 10, 2015
8babf36
Issue #35: Reimplemented -mergeEventsFromMIDITrack: so tests pass. -c…
Mar 10, 2015
7623c85
Issue #35: Made MIKMIDITrack KVO compliant for the notes property.
armadsen Mar 11, 2015
e3cda89
Fixed stupid bug that caused -[MIKMIDISequencer builtinSynthesizerFor…
armadsen Mar 11, 2015
418daac
Issue #35: Cleaned up tests. Doing setup and tear down in -setUp and …
Mar 11, 2015
0a201d2
Issue #35: Added tests for KVO compliance of other appropriate MIKMI…
Mar 11, 2015
29384bf
Issue #35: MIKMIDITrack is now KVO compliant for all methods so-docum…
Mar 11, 2015
598ef76
Issue #35: Fixed use of newly-deprecated MIKMIDITrack methods through…
Mar 11, 2015
b41990d
Merge pull request #69 from mixedinkey-opensource/Issue35
armadsen Mar 11, 2015
9c57f85
Added -testMIDIFileReadPerformance test.
Mar 12, 2015
0f0a0dd
Improved performance of loading an MIKMIDISequence from a file by abo…
Mar 12, 2015
a70a1f0
Fixed bug in tests.
Mar 12, 2015
b34e1e6
Issue #68: Added regression test for -[MIKMIDISequencer builtinSynthe…
Mar 13, 2015
4febc1b
Issue #67: Added tests and fixed MIKMIDISequence's KVO compliance for…
Mar 17, 2015
6952f45
Fixed bug and added test for -[MIKMIDITrack notes] returning nil.
armadsen Mar 21, 2015
19f0823
Merge branch '1.1' into Issue67
armadsen Mar 21, 2015
aa30fd5
Issue #71: Don't compare componentFlags and componentFlagsMask in -is…
kris2point0 Mar 24, 2015
a8d86d2
Issue #67: Added tests and fixed KVO compliance for MIKMIDISequence's…
Mar 24, 2015
ad8319a
Merge branch '1.1' into Issue67
Mar 24, 2015
deebdfe
Merge branch 'Issue67' of github.com:mixedinkey-opensource/MIKMIDI in…
armadsen Mar 25, 2015
dcb48f1
Issue #67: MIDI Files Testbed - Sequence is now in a scrollview and u…
armadsen Mar 25, 2015
8ee755a
Issue #67: MIDI Files Testbed - MIKMIDISequenceView now draws notes a…
armadsen Mar 25, 2015
7b344fd
Merge pull request #73 from mixedinkey-opensource/Issue67
armadsen Mar 25, 2015
e4c3c83
Merge branch 'master' into 1.1
Mar 26, 2015
f698e5f
Merge branch 'master' into 1.1
armadsen Apr 8, 2015
2e122f5
Updated podspec version to 1.1.0.
armadsen Apr 8, 2015
44479ab
Merge branch 'master' into 1.1
armadsen Apr 15, 2015
2351f13
MIDI Files Testbed: Merge fixup.
armadsen Apr 15, 2015
d1afc5a
Issue #60: Refactored available instruments API. Disabled for now on …
Apr 21, 2015
7b5779f
Fixed use of 'private' reserved keyword in MIKMIDIEndpoint.h causing …
Apr 22, 2015
c78ee03
Merged changes from master. Fixed more warnings.
Apr 22, 2015
1abe40f
Fixed build errors introduced in previous merge commit.
Apr 22, 2015
93f1625
Switched back to AUSampler on iOS in MIKMIDISynthesizer, as AUMIDISyn…
Apr 22, 2015
062a4dc
Issue #78: Fixed note off behavior in MIKMIDISequencer. Added -[MIKMI…
kris2point0 Apr 23, 2015
bcbb8dd
Added missing error handing to -[MIKMIDISynthesizer sendBakSelectAndP…
Apr 24, 2015
e4c9e13
Further improved error handing in -[MIKMIDISynthesizer sendBakSelectA…
Apr 24, 2015
8c41a7b
Issue #81: Added a tempo property to MIKMIDISequencer to be able to o…
kris2point0 May 1, 2015
3351a6a
Refactored NSUIApplication+MIKMIDI to move most code into a separate …
May 7, 2015
5dba0e0
Added unit tests for NSUIApplication+MIKMIDI.
May 7, 2015
0db61bb
Issue #82: Added an option to cache the full MIDI responder hierarchy…
May 7, 2015
2de7073
Issue #82: Renamed -refreshRespondersAndSubresponders to -refreshMIDI…
May 7, 2015
4cdb523
Fixed broken -unregisterMIDIResponder:.
May 7, 2015
2af8e14
Improved performance of MIKMIDIMappingManager's mappings lookup methods.
May 7, 2015
187eb64
Improved performance of -[MIKMIDIMapping hash].
May 7, 2015
de1a104
Improved performance of MIKMIDIMapping's mapping items lookup methods.
May 7, 2015
0611dd8
Merge branch 'master' into 1.1
kris2point0 May 13, 2015
38c3e4c
Issue #84: Added -[MIKMIDIMappingGenerator endMapping].
May 14, 2015
d2cc34f
Fixed retain cycle that caused MIKMIDIMappingGenerator to never be de…
May 14, 2015
291ec92
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
May 14, 2015
c142b09
MIKMIDICommands created with alloc/init now have their timestamp set …
May 15, 2015
fdd702c
Coalesced 14-bit commands now have the timestamp of their source LSB …
May 15, 2015
4a4a5a6
Merge branch 'master' into 1.1
May 15, 2015
79e90a4
Added diagnosticLoggingEnabled property to MIKMIDIMappingGenerator.
May 20, 2015
4a7c0c2
Split MIKMIDIMappingItem and MIKMIDIMappableResponder out into their …
May 20, 2015
42b6de0
Fixed bug that caused importing a mapping to sometimes fail if there …
May 20, 2015
413876b
MIKMIDISequencer now sends out a notification prior to looping playba…
kris2point0 May 20, 2015
9cc5ed2
Fixed typo in documentation
kris2point0 May 20, 2015
63f3621
Added -syncedClockForMIDITimeStamp: to MIKMIDISequencer
kris2point0 May 21, 2015
34018e7
Fixed build errors on iOS. Introduced in 4a7c0c2.
May 21, 2015
3912ea6
Documentation improvements.
kris2point0 May 21, 2015
22fb0e4
Moved the historical MIDIClock logic from MIKMIDISequencer to MIKMIDI…
kris2point0 May 21, 2015
d14f756
Added missing documentation
kris2point0 May 21, 2015
11267f9
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
kris2point0 May 21, 2015
bf13e40
Re-added -syncedClock to MIKMIDIClock's header file after inadvertent…
kris2point0 May 21, 2015
901216e
Fixed an issue with negative MusicTimeStamps in -musicTimeStampForMID…
kris2point0 May 22, 2015
d04c79d
Changed lastProcessedMIDITimeStamp to latestScheduledMIDITimeStamp an…
kris2point0 May 22, 2015
73ca83c
Issue #90: Added overriddenSequenceLength property to MIKMIDISequencer.
kris2point0 May 22, 2015
3ca5993
Fixed issue where rounding errors in floating point math sometimes ca…
kris2point0 May 23, 2015
b47ac81
Removed unnecessary division
kris2point0 Jun 1, 2015
ad7c948
No longer creating endpoints for tracks that don't contain any events…
kris2point0 Jun 3, 2015
ee0af41
Fixed currentTimeStamp behavior
kris2point0 Jun 4, 2015
17b3448
Fixed more issues with MIKMIDISequencer's currentTimeStamp. Deprecate…
kris2point0 Jun 5, 2015
e888d13
Fixed typo in documentation, improved method name.
kris2point0 Jun 5, 2015
8eb0cb2
Improved the last currentTimeStamp fix.
kris2point0 Jun 5, 2015
9f580dc
Issue #92: MIKMIDISequencer now processes its sequence on a separate …
kris2point0 Jun 9, 2015
dade71b
Issue #93: MIKMIDIClock is now thread-safe
kris2point0 Jun 9, 2015
7ab4c39
Minor formatting change
kris2point0 Jun 9, 2015
a22c679
MIKMIDIClock's historical clocks no longer create their own queues.
kris2point0 Jun 9, 2015
80eb882
Issue #94: Added a way for MIKMIDISequencer subclasses to modify pars…
kris2point0 Jun 10, 2015
9e2f1da
Removed unnecessary method call.
kris2point0 Jun 10, 2015
8f6e6d0
Issue #95: MIKMIDIClock now checks if you're converting the last sync…
kris2point0 Jun 10, 2015
8ca9f37
Fixed timer frequency
kris2point0 Jun 10, 2015
5887780
Issue #96: The looping property now works properly.
kris2point0 Jun 11, 2015
7ec4129
Added 'mapping' property to MIKMIDIMappingItem.
Jun 11, 2015
7b651bf
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
Jun 11, 2015
14a7f52
Rewrote MIKMIDISequencer's pending note off machinery. This fixes iss…
kris2point0 Jun 12, 2015
f0c4da1
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
kris2point0 Jun 12, 2015
64f2542
Added MIKMIDISequencerEndOfSequenceLoopEndTimeStamp constant to make …
kris2point0 Jun 12, 2015
1392cfe
Fixed compile warnings on iOS.
Jun 12, 2015
c8c7f13
Made loopStartTimeStamp, and loopEndTimeStamp readonly and added -set…
kris2point0 Jun 12, 2015
719bbfd
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
kris2point0 Jun 12, 2015
5ff1f10
-sendAllPendingNoteOffsWithMIDITimeStamp: now runs all of its note of…
kris2point0 Jun 12, 2015
e7402fd
Fixed hang when sequencer would stop itself at the end of the sequence.
kris2point0 Jun 12, 2015
a1f2623
Moved checks for converting the lastSyncedMusicTimeStamp and lastSync…
kris2point0 Jun 13, 2015
915774a
Renamed actualLoopEndTimeStamp to effectiveLoopEndTimeStamp and made …
kris2point0 Jun 15, 2015
c578bf7
Added createSynthsAndEndpointsIfNeeded property to make the automatic…
kris2point0 Jun 16, 2015
bb7bcab
Fixed issue with patch selection when using the DLS synth
kris2point0 Jun 16, 2015
0028e3e
Now setting _sequence on the processingQueue.
kris2point0 Jun 24, 2015
0d10e52
Now disposing of music tracks before disposing the music sequence.
kris2point0 Jun 24, 2015
5b5ba1b
MIKMIDIMapping equality now considers additional attributes.
Jun 24, 2015
64b460c
MIKMIDIMappingManager now uses -[MIKMIDIMapping isEqual:] instead of …
Jun 24, 2015
c2bc048
Merge branch '1.1' of https://github.com/mixedinkey-opensource/MIKMID…
Jun 24, 2015
fe40f6b
Added support for multiple MIDI mappings with the same name (differen…
Jun 24, 2015
4c366ba
Fixed bug that caused multiple copies of a single MIDI mapping to be …
Jun 25, 2015
5eaf4f0
Fixed crash when MIKMIDICommandThrottler is fed a factor of 0.
Jun 25, 2015
f5ecff4
Fixed minor typo in method name.
Jun 25, 2015
5cb9e3d
Added convenience methods to create MIKMIDINoteOn/OffCommand instances.
Jun 26, 2015
ff5754d
Added method to MIKMIDIMappingGeneratorDelegate to allow interception…
Jun 26, 2015
cb30667
MIKMIDISequence and MIKMIDITrack now dispatch work to the sequencer's…
kris2point0 Jun 30, 2015
c118f5c
Updated modulemap file to make private headers explicitly private. Fi…
armadsen Jul 1, 2015
a75adf9
Fix for (harmless) static analyzer warning.
Jul 1, 2015
fbf6428
Changed timer start to DISPATCH_TIME_NOW. Moved KVO registering when …
kris2point0 Jul 1, 2015
75cfa72
MIKMIDISequencer now checks if its already on the processing queue be…
kris2point0 Jul 1, 2015
8cb3b0a
Now sending KVO for properties changed on the processing queue on the…
kris2point0 Jul 1, 2015
25acb28
Fixed incorrect willChange/didChange call order for loopStartTimeStam…
kris2point0 Jul 2, 2015
a65e82a
Issue #36: Added MIKMIDICommandScheduler protocol, which MIKMIDISynth…
kris2point0 Jul 3, 2015
a6fcbe4
Now setting instrumentUnit to NULL on dealloc so render callback is r…
kris2point0 Jul 3, 2015
6c7b1e8
Minimized the time spent in the render callback utilizing our current…
kris2point0 Jul 3, 2015
e8af044
Removed another method call from the render callback.
kris2point0 Jul 3, 2015
2a0d084
Now using quality of service API for MIKMIDIClock and MIKMIDISequence…
kris2point0 Jul 3, 2015
fba696c
Only use the QoS API when available.
kris2point0 Jul 3, 2015
f86d7b4
Added MIKMIDIPort_SubclassMethods.h to MIKMIDI framework targets.
armadsen Jul 6, 2015
a71d9b2
Fixed (accidental) incorrect usage of OS X-only '-isEqualTo:' instead…
armadsen Jul 6, 2015
8fd4fd5
Fixed build error on iOS.
armadsen Jul 6, 2015
03aa229
Fixed compiler warnings on check for dispatch_queue_attr_make_with_qo…
armadsen Jul 6, 2015
c3c6c8e
Fixed module build errors on iOS.
armadsen Jul 6, 2015
9b84c66
Merge branch 'master' into 1.1
armadsen Jul 6, 2015
248c312
Fixed no-ARC errors so they show the correct file name rather than MI…
kris2point0 Aug 11, 2015
6f1ef8f
Added the ability for MIKMIDIMappingManager subclasses to determine f…
kris2point0 Aug 11, 2015
9d7475d
Fixed bug where -[MIKMIDIDevice/MIKMIDIEntity isEqual:] would falsely…
Aug 19, 2015
cafd2ac
Improved tendency for MIKMIDIMappingGenerator to detect absolute knob…
Aug 21, 2015
108070d
Lowered threshold for number of messages to be considered a turntable.
Aug 21, 2015
1689018
Fixed warning in MIKMIDIMappingGenerator.
PatrickMIK Aug 25, 2015
95b3634
Better heuristic for excluding fully-turned absolute knobs from turnt…
Aug 26, 2015
2f5683e
Now checking for equal isBundledMapping in isEqual:
kris2point0 Aug 26, 2015
a7fb3ac
Added +[MIKMIDIMapping userMappingFromBundledMapping:]
kris2point0 Aug 27, 2015
d277f51
MIKMIDIMappingGenerator now waits to remove existing items for a rema…
Aug 27, 2015
feb84c5
MIKMIDIMappingGenerator always waits for a timeout after messages sto…
Aug 27, 2015
5dd7f87
MIKMIDIMappingGenerator's -mappingGenerator:behaviorForRemappingContr…
Aug 27, 2015
d65f6af
Added -legacyFileNamesForUserMappingsObject: to ensure deletion of us…
kris2point0 Aug 31, 2015
bdb7ff6
Issue #102: Added ability to suspend/resume MIKMIDIMappingGenerator.
Sep 1, 2015
a8ff5aa
Updated to latest Xcode7 recommended project settings.
Sep 2, 2015
3e7024b
Ignoring deprecation warnings in MIKMIDITrackTests. We should continu…
armadsen Sep 5, 2015
c0d1ad2
Switched to using CoreFoundation rather than Obj-C in MIKMIDISynthesi…
kris2point0 Sep 11, 2015
0a06eeb
Began optimizing MIKMIDIClock for better efficiency when used in Core…
kris2point0 Sep 14, 2015
afa8caa
Finished optimizing MIKMIDIClock.
kris2point0 Sep 15, 2015
6c8d0ee
Merge branch 'master' into 1.1
Oct 20, 2015
a4f44ef
Now setting latestScheduledMIDITimeStamp to the current time stamp wh…
kris2point0 Oct 21, 2015
234ce47
Fixed issue where MIKMIDITrack instances would always return a length…
kris2point0 Nov 2, 2015
ce917ee
Issue #108: Added generics annotations to MIKMIDIDeviceManager, MIKMI…
Nov 4, 2015
84e2950
Added some nullability annotations.
Nov 4, 2015
c72f864
Issue #39 & #108: Moved conditional macros for nullability and generi…
Nov 4, 2015
e5ecc2d
Issue #39 & #108: Added nullability and more generics annotations to …
Nov 4, 2015
ef212c6
Issue #39 & #108: Added nullability and more generics annotations to …
Nov 4, 2015
f71e399
Issue #109: Refactored MIKMIDIInputPort and MIKMIDIDeviceManager. Sim…
Nov 4, 2015
68467f8
Issue #109: Fixed exception thrown when connecting to second (and sub…
Nov 4, 2015
bfbc326
Issue #109: Removed a little dead code in MIKMIDIInputPort.
Nov 4, 2015
9054d33
Merge pull request #111 from mixedinkey-opensource/Issue109
armadsen Nov 4, 2015
95bc465
Added a mechanism for default error descriptions defined in a single …
Nov 5, 2015
285a37e
Merge branch '1.1' into Issue106
Nov 5, 2015
65c7eb5
Issue #106: Added whole-device connection method to MIKMIDIDeviceMana…
Nov 5, 2015
c19b295
MIDI Testbed: Fixed use of now-deprecated method.
Nov 5, 2015
ea52fe9
Issue #112: KVO notifications for changes to MIKMIDIDeviceManager's a…
Nov 5, 2015
36ba714
Merge pull request #113 from mixedinkey-opensource/Issue112
armadsen Nov 5, 2015
8e45828
Merge branch '1.1' into Issue106
Nov 5, 2015
85af173
Moved definition of MIKMIDIEventHandlerBlock from MIKMIDIInputPort to…
Nov 6, 2015
deabcea
Issue #108: Added additional generics macros.
Nov 6, 2015
8bc1638
Issue #106: Added MIKMIDIConnectionManager for managing and persistin…
Nov 6, 2015
ce9de64
Issue #106: Improved MIKMIDIConnectionManager API particularly around…
Nov 6, 2015
5f2001e
Issue #39: Added nullability annotations to MIKMIDIDevice.
Nov 6, 2015
6f5a524
Issue #39: Added nullability annotations to MIKMIDIUtilities.
Nov 6, 2015
156f10d
Merge branch '1.1' into Issue106
Nov 6, 2015
cbe10ce
Issue #106: Fixed bug where -[MIKMIDIConnectionManager availableDevic…
Nov 6, 2015
41d5ed0
Issue #106: MIKMIDIConnectionManager's connectedDevices and -isConnec…
Nov 6, 2015
0a2f6ce
Issue #106: Fixed issues related to saving MIKMIDIConnectionManager c…
Nov 6, 2015
37df9f4
Fixed bug that caused device / endpoint disconnection to fail to have…
Nov 6, 2015
c95d7a8
Merge branch '1.1' into Issue106
Nov 6, 2015
428fc38
Issue #106: Fixed bug where -[MIKMIDIManager loadConfiguration] clobb…
Nov 6, 2015
8d2002f
Issue #106: Fixed exception thrown by MIKMIDIConnectionManager when u…
Nov 6, 2015
3de4421
Issue #106: Fix for potential to connect to 'half' of a virtual device.
Nov 6, 2015
d12cdf8
Issue #39: Added nullability annotations to remaining code.
Nov 10, 2015
72d8dff
Issue #108: Added generics annotations to remaining headers.
Nov 10, 2015
96532bb
Merged branch 1.1 into Issue106.
Nov 11, 2015
7b25b18
Issue #39 & #108: Fixed up some nullability and generics annotations.
Nov 11, 2015
88b7d30
Merge branch '1.1' into Issue106
Nov 11, 2015
396fc0a
Issue #39: Another minor nullability fix.
Nov 11, 2015
bbaec26
Merge branch '1.1' into Issue106
Nov 11, 2015
7031b7a
Fixed build errors on iOS.
Nov 11, 2015
f6627cb
Issue #106: Added mechanism to deal with 'stuck' note on commands upo…
Nov 11, 2015
e373619
Issue #106: Explicitly unconnected devices in saved configuration are…
Nov 11, 2015
bb6a933
Merge branch '1.1' of https://www.github.com/mixedinkey-opensource/MI…
Nov 11, 2015
a3f6892
Merge branch '1.1' into Issue106
Nov 11, 2015
65a8342
Updated README.
Nov 11, 2015
9632111
Updated MIDI Files Testbed.
Nov 11, 2015
92235ea
Greatly improved MIDI Files Testbed's MIKMMIDISequenceView drawing pe…
Nov 11, 2015
4941d25
Merge branch '1.1' into Issue106
Nov 12, 2015
4ba9b54
Issue #106: Minor documentation improvement to -[MIKMIDIConnectionMan…
Nov 12, 2015
05914de
Issue #114: MIKMIDIMappingManager mapping name customization is now d…
Nov 12, 2015
54792cc
Issue #65: Added MIKMIDIPolyphonicKeyPressureCommand and associated t…
Nov 12, 2015
2798e82
Very minor updates to MIKMIDINoteOnCommand.
Nov 12, 2015
c5200a4
Issue #65: Added MIKMIDIChannelPressureCommand and associated tests.
Nov 12, 2015
0786aba
Issue #116: Added .travis.yml.
Nov 12, 2015
ba46f16
Issue #116: Turned off code signing for Travis builds (hopefully).
Nov 12, 2015
7321a52
Issue #116: Another shot at making iOS builds on Travis work by build…
Nov 12, 2015
2020e28
Added preliminary CHANGELOG (doesn't yet have changes for 1.1.
Nov 13, 2015
3aa79af
Issue #116: More .travis.yml changes.
Nov 13, 2015
3790f6a
Fixed minor NSLog format warnings in MIKMIDISynthesizer when building…
Nov 13, 2015
0b9b5cc
Fixed use of 10.8+ only API in MIKMIDISequencer.
Nov 13, 2015
e8b69eb
Fixed use of 10.8+ only API in MIKMIDIInputPort (introduced in commit…
Nov 13, 2015
510bb50
Made MIKMIDIMappingManager's delegate property unsafe_unretained when…
Nov 13, 2015
ff9d913
Minor documentation improvement to -[MIKMIDISequencer setCommandSched…
Nov 13, 2015
6e263ff
Better documentation of some deprecated API in MIKMIDITrack.
Nov 13, 2015
ade4957
Fixed minor typo in -[MIKMIDIDeviceManager disconnectConnectionForTok…
Nov 13, 2015
14fff61
Added notes for upcoming major release (1.1) to CHANGELOG.
Nov 13, 2015
72786f1
Merge branch '1.1' into Issue106
Nov 13, 2015
264e106
Updated with changes in 1.1.
Nov 13, 2015
e0ea4fc
Issue #106: Added -[MIKMIDIConnectionManager initWithName:] for conve…
Nov 14, 2015
8516f3f
Issue #106: MIKMIDIConnectionManager (optionally) saves its configura…
Nov 14, 2015
424fa42
Merge pull request #115 from mixedinkey-opensource/Issue106
armadsen Nov 14, 2015
3315245
Bumped version in podspec to 1.5.0.
Nov 14, 2015
9cc3aaa
Minor CHANGELOG update.
Nov 14, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
language: objective-c
xcode_project: "Framework/MIKMIDI.xcodeproj"

osx_image: xcode7.1

xcode_scheme:
- MIKMIDI
- MIKMIDI-iOS
xcode_sdk:
- macosx
- iphonesimulator

matrix:
exclude:
- xcode_scheme: MIKMIDI
xcode_sdk: iphonesimulator
- xcode_scheme: MIKMIDI-iOS
xcode_sdk: macosx

108 changes: 108 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Change Log
All notable changes to MIKMIDI are documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).

##[Unreleased]
###ADDED
- `MIKMIDISynthesizer` for general-purpose MIDI synthesis. `MIKMIDIEndpointSynthesizer` is now a subclass of `MIKMIDISynthesizer`.
- `MIKMIDISequencer` now has API for routing tracks to MIDI endpoints, synthesizers,
or other command scheduling objects (`-(setC|c)ommandScheduler:forTrack:`)
- Nullability and Objective-C generics annotations for much nicer usage from Swift. (#39 & #108)
- API for loading soundfont files using `-[MIKMIDISynthesizer loadSoundfontFromFileAtURL:error:]`. (#47)
- Added `MIKMIDIEvent` subclass `MIKMIDIChannelEvent` and related children (`MIKMIDIPitchBendChangeEvent`, `MIKMIDIControlChangeEvent`, etc.). (#63)
- Added `MIKMIDIChannelVoiceCommand` subclasses for remaining MIDI channel voice message types (pitch bend, polyphonic key pressure, channel pressure). (#65)
- API on `MIKMIDISequence` to control whether channels are split into individual tracks or not. (#66)
- Preliminary unit tests (still need a lot more coverage with tests).
- API on `MIKMIDISequencer` to set playback tempo (overrides sequence tempo). (#81)
- Ability to explicitly stop `MIKMIDIMappingGenerator`'s mapping via `-[MIKMIDIMappingGenerator endMapping]`. (#84)
- Looping API on `MIKMIDISequencer` (#85)
- API for syncing `MIKMIDIClock`s (see `-[MIKMIDIClock syncedClock]`). (#86)
- Ability to suspend MIDI mapping generation, then later resume right where it left off (`-[MIKMIDIMappingGenerator suspendMapping/resumeMapping]`). (#102)
- API for customizing mapping file naming. See `MIKMIDIMappingManagerDelegate`. (#114)
- `MIKMIDIConnectionManager` which implements a generic MIDI device connection manager including support for saving/restoring connection configuration to NSUserDefaults, etc. (#106)
- Other minor API additions and improvements. (#87, #89, #90, #93, #94)

###CHANGED
- `MIKMIDIEndpointSynthesizerInstrument` was renamed to `MIKMIDISynthesizerInstrument`. This **does not** break existing code, due to the use of `@compatibility_alias`
- `MIKMIDISequencer` creates and uses default synthesizers for each track, allowing a minimum of configuration for simple MIDI playback. (#34)
- `MIKMIDISequence` and `MIKMIDITrack` are now KVO compliant for most of their properties. Check documentation for specifics. (#35 & #67)
- `MIKMIDISequencer` can now send MIDI to any object that conforms to the new `MIKMIDICommandScheduler` protocol. Removes the need to use virtual endpoints for internal scheduling. (#36)
- Significantly improved performance of MIDI responder hierarchy search code, including adding (optional) caching. (#82)
- Improved `MIKMIDIDeviceManager` API to simplify device disconnection, in particular. (#109)

###FIXED
- `MIKMIDIEndpointSynthesizer` had too much reverb by default. (#38)
- `MIKMIDISequencer`'s playback would stall or drop notes when the main thread was busy/blocked. Processing is now done in the background. (#48 & #92)
- `MIKMIDIEvent` (or subclass) instances created with `alloc/init` no longer have a NULL `eventType`. (#59)
- Warnings when using MIKMIDI.framework in a Swift project. (#64)
- Bug that could cause `MIKMIDISequencer` to sometimes skip the first events in its sequence upon starting playback. (#95)
- Occasional crash (in `MIKMIDIEventIterator`) during `MIKMIDISequencer` playback. (#100)
- KVO notifications for `MIKMIDIDeviceManager`'s `availableDevices` property now includ valid `NSKeyValueChangeOld/NewKey` entries and associated values. (#112)
- Exception is no longer thrown when setting "empty" `MIKMutableMIDIMetaTimeSignatureEvent`'s numerator. (#57)
- Other minor bug fixes (#71, #83)

###DEPRECATED
This release deprecates a number of existing MIKMIDI APIs. These APIs remain available, and functional, but developers should switch to the use of their replacements as soon as possible.

- `-[MIKMIDITrack getTrackNumber:]`. Use `trackNumber` @property on `MIKMIDITrack` instead.
- `-[MIKMIDISequence getTempo:atTimeStamp:]`. Use `-tempoAtTimeStamp:` instead.
- `-[MIKMIDISequence getTimeSignature:atTimeStamp:]`. Use `-timeSignatureAtTimeStamp:` instead.
- `doesLoop`, `numberOfLoops`, `loopDuration`, and `loopInfo` on `MIKMIDITrack`. These methods affect looping when using `MIKMIDIPlayer`, but not `MIKMIDISequencer`. Use `-[MIKMIDISequencer setLoopStartTimeStamp:endTimeStamp:]` instead.
- `-insertMIDIEvent:`, `-insertMIDIEvents:`, `-removeMIDIEvents:`, and `-clearAllEvents` on MIKMIDITrack. Use `-addEvent:`, `-removeEvent:`, `-removeAllEvents` instead.
- `-[MIKMIDIDeviceManager disconnectInput:forConnectionToken:]`. Use `-disconnectConnectionForToken:` instead.
- `-setMusicTimeStamp:withTempo:atMIDITimeStamp:`, `+secondsPerMIDITimeStamp`, `+midiTimeStampsPerTimeInterval:` on `MIKMIDIClock`. See documentation for replacement API.
- `+[MIKMIDICommand supportsMIDICommandType:]`. Use `+[MIKMIDICommand supportedMIDICommandTypes]` instead. This is only relevant when creating custom subclasses of `MIKMIDICommand`, which most MIKMIDI users do not need to do. (#57)

##[1.0.1] - 2015-04-20

###ADDED
- Support for [Carthage](https://github.com/Carthage/Carthage)
- Better error handling for `MIKMIDIClientSource/DestinationEndpoint`, particularly on iOS.
- `MIKMIDISequence` initializer methods that include an error parameter.

###CHANGED
- Improved documentation.

###FIXED
- `MIKMIDIMetronome` on iOS (8).
- `MIKMIDICommand`'s channel now defaults to 0 as it should.

###DEPRECATED
- `-[MIKMIDISequence initWithData:]`. Use `-[MIKMIDISequence initWithData:error:]`, instead.
- `+[MIKMIDISequence sequenceWithData:]`. Use `+[MIKMIDISequence sequenceWithData:error:]`, instead.
- `-[MIKMIDISequence/MIKMIDITrack setDestinationEndpoint:]`. Use API on MIKMIDISequencer instead.

##[1.0.0] - 2015-01-29
###ADDED
- MIDI Files Testbed OS X example app
- Added `MIKMIDISequence`, `MIKMIDITrack`, `MIKMIDIEvent`, etc. to support loading, creating, saving MIDI files
- API on `MIKMIDIManager` to allow obtaining only bundled or user mappings
- `MIKMIDIPlayer` for playing MIDI files
- Preliminary (experimental/incomplete) implementation of `MIKMIDISequencer` for both playback and recording
- `MIKMIDIEndpointSynthesizerInstrument` and associated instrument selection API for MIDI synthesis
- API (`MIKMIDIClientSource/DestinationEndpoint`) for creating virtual MIDI endpoints
- iOS framework target.

###CHANGED

- Improved README.

###FIXED
- Fixed bug where sending a large number of MIDI messages at a time could fail.
- `MIKMIDIMapping` save/load is now supported on iOS.
- Warnings when building for iOS.

##[0.9.2] - 2014-06-13
###ADDED
- Added `MIKMIDIEndpointSynthesizer` for synthesizing incoming MIDI (OS X only for now).
- Added Cocoapods podspec file to repository.

###FIXED
- `MIKMIDIInputPort` can parse multiple MIDI messages out of a single packet.

##[0.9.1] - 2014-05-24
###FIXED
Minor documentation typo fixes.

##[0.9.0] - 2014-05-16
###ADDED
Initial release
Loading