Version: 1.0.8 Version: 1.0.8b4 Date: 2017-05-17 1. Fixed a problem where USB device ports would not disconnect from host when unit was put into sleep mode. Version: 1.0.8b3 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.0.8b2 Date: 2017-04-12 1. Fixed a problem where ethernet would not work if ethernet cable was connected before device powered up. Note that if the device loses power (or if the device is put into sleep mode) the RTP-MIDI connections will need to be re-established on the computer when the device is powered up again (nothing I can do about that, thatŐs an Apple limitation). But at least you donŐt have to disconnect then reconnect the ethernet cable anymore. Version: 1.0.8b1 Date: 2017-03-13 1. 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.7 Date: 2017-02-22 Version: 1.0.7b1 Date: 2017-02-16 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. Added support for Ňchain modeÓ. This is an alternate mode that affects device discovery and how sysex messages are routed between iConnectivity devices. When chain mode is active the status LED will wink twice every 4 seconds (as opposed to just staying lit all the time). Version: 1.0.6 Version: 1.0.6b7 Date: 2016-12-02 1. Disabled the MIDI-CI code (was only for Yamaha testing). Version: 1.0.6b2 through 1.0.6b6 Date: 2016-10-xx 1. Various MIDI-CI enhancements for Yamaha testing. Version: 1.0.6b1 Date: 2016-10-14 1. Increased length of sysex buffer for internal messages from 127 to 159 (needed for processing AMP commands). 2. Fixed a problem with USB hosting that would affect some MIDI controllers that support both audio and MIDI over USB. 3. 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. 4. First build with test code for MIDI-CI (aka MIDI-DCD). Version: 1.0.5 Date: 2016-04-18 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 drivers. 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. 4. Fixed some problems related to hosting Yamaha keyboards on the USB-A port. Version: 1.0.4 Date: 2016-02-16 1. Added support for new MIDIMonitor sysex commands. 2. Added support for hosting more Yamaha keyboards. 3. Added support for mio4. Common code is now used for iCM4 and mio4. 4. Fixed an error with default routing on DIN2 port (wasnŐt going to Host5-8 or Ethernet). Version: 1.0.4b2 Date: 2015-07-16 1. Fixed some errors in USB driver for rear USB port regarding SetInterface command. 2. Reinstated AudioManager V1 sysex commands for this build. Version: 1.0.4b1 Date: 2015-06-15 1. Added support for new AudioManager V2 sysex commands. A new version of iConfig is required to use this version of firmware because the old AudioManager V1 commands are no longer supported. 2. 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. 3. 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. Version: 1.0.3 Date: 2015-03-12 1. Fixed a problem where ŇRestore SettingsÓ command sent from iConfig was not working since the change to use EEPROM for storage (command was still trying to retrieve settings from FLASH). The box is rebooted whenever ŇRestore SettingsÓ command is sent. 2. Fixed a problem where ŇRestore Factory DefaultsÓ command sent from iConfig was not working. The only way to make this work correctly is to erase EEPROM and reboot the box. 3. Added iSerialNumber to USB device descriptor so that host can differentiate between multiple instances of iCM4. Version: 1.0.3b1 Date: 2015-02-09 1. Made some changes to how MIDI messages are dispatched to hosted MIDI devices. Previously, it was possible to lose some MIDI events when sending large sysex messages to hosted MIDI devices. 2. Added support for hosting MIDI devices that have no OUT endpoint. 3. Now using EEPROM for saving user settings. This eliminates the need to shutdown USB and reboot the box every time settings are saved. Version: 1.0.2 Date: 2014-07-21 1. Before writing to FLASH, USB ports are turned off. After writing to FLASH iCM4 is rebooted. This is necessary to prevent Mac and iPad from crashing if user happens to be passing audio when writing to FLASH. 2. Increased the size of the ring buffer for USB MIDI OUT endpoint (for rear USB port) from 256 to 2048 bytes. There were incidences where large sysex transfers under Windows were failing. No problem with Macs, just Windows. Front USB ports were not changed (not enough RAM on 11U14). 3. Added support for interrupt endpoints for MIDI data. Novation Launch series of controllers use interrupt endpoints, not bulk endpoints, which did not work with our USB host driver. Version: 1.0.1 Date: 2014-02-11 1. Fixed a problem with USB not working on newer Macs that have USB 3 ports. Version: 1.0.0 Date: 2014-02-07 Post NAMM 2014 last minutes changes. 1. Eliminated the FEATURE unit in the USB descriptor. The FEATURE unit didnŐt do anything useful, it was a leftover from iConnectMIDI2+ 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 iConnectMIDI4+ doesnŐt support level changes. 2. Fixed a problem where changes to the number of input and output audio channels could lead to invalid entries in the patch bay. 3. 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 iCM4 from Mac then open MIDI window in Audio MIDI Setup, select iCM4 and delete it, then reconnect iCM4 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 iCM4 device from MIDI list.