Version: 1.1.0 Version: 1.1.0b2 Date: 2017-04-26 1. Fixed a problem where channel remapping would sometimes not work correctly, particularly if a MIDI event was routed to more than one port. Version: 1.1.0b1 Date: 2017-03-14 1. Added rules for device name, MIDI/audio port names, audio channel names, and various other nameable objects. Some users were doing things like giving ports blank names or names beginning with a minus sign that were causing problems with various operating systems. The new rules should help prevent that from happening. This is common code that affects all products using MIDIManager. 2. Fixed a problem where computer would not synchronize audio properly when computer was not the clock master. This problem has likely been in Mac OS (and iOS) for a while because Apple changed their rules for decoding implicit feedback points. Also changed the USB audio descriptor to use synchronous endpoints for input and output when computer is the clock master (this change is needed for an upcoming Apple release). Version: 1.0.9 Version: 1.0.9b2 Date: 2016-10-25 1. Increased length of sysex buffer for internal messages from 127 to 159 (needed for processing AMP commands). 2. Tweaked the LED driver for MIDI activity to be more responsive. Previous version could have delays up to 100 ms. New driver has maximum delay of 20 ms. The LEDs are no longer synchronized to turn on and off at the same time (e.g. LED2 can turn off while LED1 is still on) so the display may appear a bit different in use. 3. Added support for audio patchbay (for iCM2 only, not MIO2). Works the same as audio patchbay on iCM4. Note that upgrading to this version of firmware will erase current user settings. Version: 1.0.9b1 Date: 2016-07-11 1. Changed the low voltage threshold for iPad detection from 1V to 0V to see if this helped fix a problem reported by a user. It didnÕt so the change will be rolled back in the next build. Version: 1.0.8 Date: 2016-04-15 1. MIDIManager now uses notifications for when USB and UART output buffers become full. This change was made for mio10 in common MIDIManager code so all projects that use MIDIManager need to be updated. 2. Added a data throttle to USB device port driver. This will help mitigate lost data problems when a host sends large bursts of data over a short time interval. 3. When audio is disabled for PC and iOS, the USB descriptor will contain only the MIDI portion. Previously, the USB descriptor contained both the audio and MIDI portions but would return an error code on audio SetInterface calls. This worked fine for Mac and iOS but with Windows the host would no longer communicate using MIDI. Version: 1.0.7 Date: 2015-12-14 1. Fixed a problem where changing ÒRunning Status on DIN PortsÓ would fail. This problem only occurred in 1.0.6 and 1.0.5 (another casualty of moving to common code for MIDIManager in 1.0.5). 2. Made some changes to configuration descriptor for iOS connection: Òself poweredÓ flag was not set correctly, current draw was changed from 0 mA to 10 mA. 3. Before writing to FLASH, USB ports are turned off. After writing to FLASH iCM2 is rebooted. This is necessary to prevent Mac and iPad from crashing if user happens to be passing audio when writing to FLASH. 4. Increased the size of the ring buffer for USB MIDI OUT endpoint from 1024 to 2048 bytes. I was finding some cases where large sysex transfers under Windows were failing. No problem with Macs, just Windows. 5. iCM2 is rebooted whenever ÒRestore SettingsÓ command is sent (from iConfig). This is necessary since some settings require a reboot before becoming effective. 6. iCM2 is rebooted whenever ÒRestore DefaultsÓ command is sent (from iConfig). This is necessary since some settings require a reboot before becoming effective. 7. Fixed a problem where the MIDI event pool could become corrupted. Problem was noticed with iCA4 but could also affect iCM2 and iCM4 since it is common code. 8. Added support for 88.2 kHz sample rate. The 88.2 kHz options are currently shown at the bottom of the list (rather than in Òsample rate vs. bit depthÓ order). This is necessary to preserve compatibility with previously saved presets. Future products will have the 88.2 kHz options in a more sensible location in the list. iConfig could be changed to place the audio configurations into a sensible order. 9. Added iSerialNumber to USB device descriptor so that host can differentiate between multiple instances of iCM2. 10. Added support for new MIDIMonitor sysex commands. 11. Added support for mio2. Common code is now used for iCM2 and mio2. Version: 1.0.6 Date: 2014-02-07 1. Added ability to set audio clock source to one of the USB ports. This allows a host computer (Mac, PC, iPad) to be the audio clock source which may help things run more smoothly when using aggregate audio devices. A new version of iConfig is required to change the audio clock source. Changes to audio clock source require saving settings and rebooting iCM2 before the changes will take effect. In the absence of a reliable clock source the system will fall back to using the internal clock. The internal clock is the audio clock source when restoring settings to factory default values. 2. Added a failsafe to guard against bad ADC voltages. Sometimes the ADC reports voltages exactly double what they really are which causes problems connecting to iPad (iPad gets wrong USB descriptor). 3. Fixed a problem where the initial read index into audio ring buffer could be set incorrectly which would result in higher latency and an increased risk of ring buffer overflow. 4. Fixed a problem where the reset commands were reversed (bootloader mode vs. application mode). This problem only occurred in the previous release (1.0.5). 5. Fixed a problem where the user settings were not being saved/restored correctly. This problem only occurred in the previous release (1.0.5). 6. Using Keil 5.01 now (was using 4.60 previously). 7. Eliminated the FEATURE unit in the USB descriptor. The FEATURE unit didnÕt do anything useful, it was a leftover from earlier development. Mac OS will still show volume and mute controls for inputs and outputs but the controls are now always disabled. Previously, some of the controls were enabled which led users to believe that they could control the signal levels but they couldnÕt because iConnectMIDI2+ doesnÕt support level changes. 8. Changed the default MIDI port names to make them shorter so that they donÕt get truncated by applications that insist on prepending the MIDI port names with the device name. This should make it easier to select a MIDI port on iPad applications. For device ports, the MIDI port names indicate the default routing which should also help when selecting a port. To see updated port names on Mac, user must disconnect iCM2 from Mac then open MIDI window in Audio MIDI Setup, select iCM2 and delete it, then reconnect iCM2 to Mac and click Rescan MIDI button, Mac will then load and display the new port names. On iOS there doesnÕt seem to be any way to reload the names, iOS caches the names and doesnÕt provide any user interface to delete iCM2 device from MIDI list. Version: 1.0.5 Date: 2013-12-13 1. Removed interrupt endpoint for Lingo (no longer needed and causes warnings during certification). 2. Enable audio pass through for iOS devices on USB2 (right USB port on front). Only difference between the USB ports now is that the left port (USB1) will charge iPad at 2.1A max while the right port (USB2) will charge iPad at 1.0A max. 3. USB descriptors are now dynamically created (same as iCM4). 4. LingoManager and MIDIManager are now shared with iCM4. 5. Memory optimizations allow increasing size of USB MIDI event pool from (1024*2) to (1024*3) MIDI events. 6. Added a 1 second delay at startup, after bootloader, to allow hardware a better chance to settle. LEDs will now be all on for 1 second, then all off for 1 second before device becomes operational. 7. Using CMX 5.0.4 now (was using 5.0.3 previously). Version: 1.0.4 Date: 2013-10-02 1. Added support for iAP2 for newer Apple devices with Lightning connector. iAP1 is still supported for earlier Apple devices with 30-pin connector. An iConnectivity iCM1 Lightning cable is required (Lightning connector at one end, USB-B connector at the other end). Version: 1.0.3 Date: 2013-09-27 1. Changed the upper cutoff value from 3.0 V to 4.0 V for detecting if an iOS device is connected. 2. Changed the upper cutoff value from 6.2 to 6.3 V for detecting if power adapter is supplying power to iOS device. Version: 1.0.2 Date: 2013-08-16 1. Added support for new sysex commands for device discovery. This change is needed only when iCM4 is hosting iCM2. 2. Changed the lower cutoff value from 5.2 V to 5.1 V for detecting if power adapter is supplying power to iOS device. Some units were failing at the 5.2 V value due to resistor tolerances being a bit slack. Version: 1.0.1 Date: 2013-07-11 1. Fixed a problem where USB ring buffer for MIDI IN packets would get filled up if host was not polling iCM2 MIDI IN endpoint. All USB MIDI IN activity would cease. This would happen if host did not have a MIDI program running, or if host decided to stop polling MIDI IN endpoint for some reason. Ring buffer is now overfilled (oldest data lost) when host stops polling MIDI IN endpoint and ring buffer fills up. Version: 1.0.0 Date: 2013-07-10