Version: 1.1.2 Version: 1.1.2b4 Date: 2017-05-17 1. Fixed a problem where UI would indicate that phantom power was enabled on startup when it was not enabled. Note that phantom power is never automatically turned on when unit boots up (for safety reasons); phantom power is always OFF when unit boots up. Version: 1.1.2b3 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.2b2 Date: 2017-04-12 1. Fixed a problem with headphones being silent. This problem only affected 1.1.2b1. Version: 1.1.2b1 Date: 2017-03-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. Fixed a problem where the iOS host type and iOS host name were not being returned in sysex commands for audio and MIDI ports. 3. 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.1.1 Version: 1.1.1b2 Date: 2016-12-02 1. Increased length of sysex buffer for internal messages from 127 to 159 (needed for processing AMP commands). Version: 1.1.1b1 Date: 2016-08-29 1. Fixed a problem with USB hosting that would affect some MIDI controllers that support both audio and MIDI over USB. Version: 1.1.0 Date: 2016-04-29 1. No changes since 1.1.0b2. Version: 1.1.0b2 Date: 2016-04-01 1. Fixed some problems related to hosting Yamaha keyboards on the USB-A port. Version: 1.1.0b1 Date: 2016-03-31 1. MIDIManager now uses notifications 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.9 Date: 2016-02-16 1. The maximum number of audio frames that can be buffered has been reduced from 6 to 5 (6 was not a valid value). The default value of 3 works most of the time. 2. Added support for new MIDIMonitor sysex commands. 3. Added support for hosting more Yamaha keyboards. 4. Fixed a problem where putting unit to sleep would not turn off phantom power. 5. Fixed a problem where changing the number of mixes to an audio domain would not properly reset all audio domains to ÒblankÓ state. Version: 1.0.8 Version: 1.0.8b3 Date: 2015-06-17 1. Fixed the problem with headphone output not working properly at 88.2 and 96 kHz sample rates. Version: 1.0.8b2 Date: 2015-06-15 1. Increased the number of audio channels from 16 to 20 on USB ports for 44.1 kHz and 48 kHz audio configurations. 2. Increased the number of mixer channels for all audio configurations (both inputs and outputs). 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.8b1 Date: 2015-05-28 1. No new features. First release to use new AudioManager that uses both M4 and M0 processors inside 4333 chip. Version: 1.0.7 Date: 2015-05-27 1. No changes since 1.0.7b3. Version: 1.0.7b3 Date: 2015-05-21 1. Fixed a problem with data corruption of the MIDI event pool. This problem usually manifested itself by the 1822 chip locking up, or iConfig suddenly not communicating with the device anymore. Version: 1.0.7b2 Date: 2015-04-24 1. Fixed the problem where analogue audio channels 1 and 3 were delayed by 1 sample. 2. Fixed a problem with the factory defaults for mixing not being set correctly under some conditions. 3. Fixed the problem where iCA4 would not show up as an audio device under Mac OS 10.6. Version: 1.0.7b1 Date: 2015-04-10 1. Changed how ring readers are used for audio patch bay and mixer. There are now a lot fewer ring readers (part of AudioManager optimization). More significant is that audio channels will now be sample-aligned on a per-port basis. Previously, it was possible to have two or more output channels listening to the same input channel but the outputs were not necessarily sample aligned. Version: 1.0.6 Date: 2015-03-24 1. Fixed the problem with rotary encoder and optimization level 3 that was in 1.0.6b1. Version: 1.0.6b1 Date: 2015-03-20 1. Changing audio or mixer configuration will set mixers and patchbay to something similar to the factory default. Previously, changing audio or mixer configuration would reset mixers to a NULL state where no inputs were assigned and no outputs were assigned. Consider this to be a simple implementation of mixer and patchbay ÒpresetsÓ that are applied whenever audio or mixer configuration is changed. 2. AudioManager is now common code that can be shared by other projects. 3. Headphones are no longer always stereo linked. They are stereo linked by factory default but user can unlink them with iConfig. The UI has changed so that when headphones are selected LEDs 1 and 2 are used to select left and right channels respectively. When headphones are stereo linked both 1 and 2 LEDs will be lit and turning the rotary encoder changes both left and right channel levels. When headphones are not stereo linked LEDs 1 and 2 can be individually selected to adjust just the left or right channel. This effectively turns the headphone output into an additional pair of line outs that can be treated as a stereo pair or as dual mono channels. 4. Line outs 1/2 and 3/4 are stereo linked by default but user can unlink them. 5. Default patchbay links USB1 channels 1/2 to USB2 channels 5/6 and vice versa. Previously USB1 channels 5/6 were connected to USB2 channels 5/6 and vice versa. This should make it easier to send audio from iPad to Mac/PC if iPad only sends audio on the first two channels. 6. Had to reduce optimization level on 1822 code from 3 to 2 otherwise rotary encoder doesnÕt work. Version: 1.0.5 Date: 2015-03-10 1. Fixed a problem where some units would fail after passing testing and licensing. Version: 1.0.5b1 Date: 2015-03-06 1. It is no longer possible to have an (audio) destination channel assigned to both a mixer output and an (audio) source channel. When a destination channel is assigned to a mixer output it will automatically be disconnected from any source channels. Similarly, if a destination channel is assigned to a source channel it will automatically be disconnected from any mixer outputs. The factory defaults have been changed to match this new business rule. 2. Added iSerialNumber to USB device descriptor so that host can differentiate between multiple instances of iCA4. Version: 1.0.4 Date: 2015-03-05 1. Fixed a problem where audio would sometimes be distorted when operating at 96 kHz sample rate with maximum number of audio and mixer channels. 2. Fixed a problem where USB device ports would stop working when passing MIDI with Windows host. Version: 1.0.3 Date: 2015-03-01 1. Line outs and headphones now support -infinity attenuation value (silence). Moving the encoder to minimum position will now silence the output. Previously, the maximum amount of attenuation using encoder was -63 dB which is near silence when using headphones but not when driving powered monitors. Silence was only possible using iConfig to access the MUTE button. 2. TRIM values for line ins, line outs and headphones are now -32 dB min and 0 dB max. This change was made to make it easier for iConfig to implement a PAN control on stereo linked input and output controls. Version: 1.0.3b1 Date: 2015-02-23 1. Fixed some errors with audio mixer configurations that were in the last build (1.0.2b10). 2. Metering is now disabled on analogue input channels when phantom power status is changed (on a per-channel basis). This helps to eliminate the annoying clip indicator warning when turning phantom power on and off. Note that there is still some interaction between input channels when changing phantom power status so it is still possible to get a clip on adjacent channels. Version: 1.0.2b10 Date: 2015-02-19 1. Fixed the problem where changing the number of audio channels for USB device ports was not regenerating the channel names. Previously, some ÒoutputÓ channels could be labeled as ÒinputÓ channels and vice versa or some channel names were just blank. 2. Mixer meters for USB device ports are now working. 3. Changing the audio configuration, or the mixer configuration, or the number of mixes assigned to each audio port will now reinitialize the associated mixers (no inputs assigned, all faders at minimum, all switches off, pan controls are center). Previously, the mixer assignments and controller values would be left with whatever values were appropriate for the previous configuration which was very annoying to clean up manually. 4. Had to cut back on the number of USB audio channels and mixing channels. Prior to mixing, it was possible to handle 26 channels of audio on each USB port at 48 kHz (18 channels at 96 kHz). However, mixing takes considerable processing and the number of channels has had to be cut to compensate. Version: 1.0.2b9 Date: 2015-02-13 1. Fixed a problem that caused iCA4 (or iCM4) to crash if it was hosting another iCA4 over USB. 2. 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). Unfortunately, there is no mechanism to resend the entire configuration from M3 to M4 after boot up so the restored settings do not reflect what the M4 is currently using. There is no easy way to solve this. So, for now, the box is rebooted whenever ÒRestore SettingsÓ command is sent. 3. Fixed the 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. 4. Fixed a problem where mixer input channels were sometimes not working (channel could be assigned but incoming audio was always zero filled). Version: 1.0.2b8 Date: 2015-02-11 1. Fixed a problem with device discovery that resulted in the unit serial number in sysex header always being 0. Version: 1.0.2b7 Date: 2015-02-10 1. Increased stack sizes for some of the 1822 tasks (was experiencing occasional crashes during recent NAMM 2015 show). 2. Added a workaround for problems with cheap rotary encoder not generating correct values. Bad values are now ignored. Previously, bad values could result in volume going ÒupÓ when knob was turned ÒdownÓ. 3. Added support for metering mixer inputs and outputs. 4. Modified USB device descriptors, separating AC2.0 for audio streaming and AC1 for MIDI streaming. 5. USB device code modifications for USB 2.0 chapter 9 compliance. 6. Changed the LED driver for bar graph to update every 20 ms for lower latency. However, peak hold is still 100 ms so that short peaks can be seen on the LED display. This change helps to reduce latency when viewing meters in iConfig. iConfig can also now update its own meters more frequently to reduce latency even further. 7. Added support for hosting MIDI devices that have no OUT endpoint. Version: 1.0.2b6 Date: 2015-01-16 1. Fixed a problem with matrix mixer calculations that could result in some coefficients not being recalculated correctly when changing stereo-mono mode for inputs and outputs. 2. Matrix mixer coefficients are now recalculated on startup. 3. Added factory defaults to mixer. Both USB ports have 1 stereo mix but no inputs are assigned to them. Analogue port has 3 stereo mixes which are assigned to Line Outs 1/2, Line Outs 3/4, and Headphones. The inputs to the Analogue port mixer are the first 4 channels from both USB ports (8 channels total configured as stereo pairs). Mixer input levels are set as follows: - Line Outs 1/2 mix is listening to channels 1/2 of both USB ports. - Line Outs 3/4 mix is listening to channels 3/4 of both USB ports. - Headphone mix is listening to channels 1/2 of both USB ports. Version: 1.0.2b5 Date: 2015-01-09 1. Fixed a problem where patch bay changes would result in a crash (as of 1.0.2b3). 2. Fixed a problem with mixing to USB ports in 16-bit mode (output was heavily distorted). Version: 1.0.2b4 Date: 2015-01-09 1. Solo and PFL are now working in mixer. 2. Metering for analogue outputs (line outs and headphone) connected to mixer is working. Version: 1.0.2b3 Date: 2015-01-07 1. Rework of the UI. The new functionality is as follows: - The active function (phantom power/input gain/output attenuation/headphone attenuation as indicated by bottom row of LEDs in cap touch area) is always in edit mode. - Press the encoder in non-panic mode to save settings to EEPROM (after 800ms delay, to detect for entering panic mode via double-click). Function LEDs flash briefly to indicate when settings are saved. - Press the function buttons to toggle between viewing signal level or viewing gain/attenuation level in LED bar graph (for input gain, output attenuation, and headphone attenuation only, phantom power is not affected and has the same behavior as in previous releases). - The function LEDs are red when viewing gain/attenuation level and is green when viewing signal level. - Both LED bar graph modes are also applicable in panic mode; the function LEDs will blink to indicate when in panic mode (as in previous releases). - When viewing gain/attenuation levels, the LED bar graph will show the minimum of channels 1/3 (and headphone left) on the left ladder and the minimum of channels 2/4 (and headphone right) on the right ladder. - When viewing signal levels, the LED bar graph will show the maximum of channels 1/3 (and headphone left) on the left ladder and the maximum of channels 2/4 (and headphone right) on the right ladder (same behavior as in previous releases). - The LED bar graph values for gain/attenuation mode are: Ins Outs/HP LED6 [60] [0] LED5 [50, 60) [-10, 0) LED4 [40, 50) [-20, -10) LED3 [30, 40) [-30, -20) LED2 [20, 30) [-40, -30) LED1 [10, 20) [-50, -40) LED0 [1, 10) [-63, -50) OFF [0] [-63] 2. Fixed a problem where line outs 3 and 4 were reversed. 3. Added support for matrix mixer. Solo and PFL are not working in this release. Metering is not working for mixer in this release. 4. Before going into sleep mode, the red and top row of orange LEDs in bar graph will be lit. This change was necessary to distinguish between the new mode for viewing gain/attenuation levels. 5. On startup, the unit goes into headphone function mode with signal level on the LED bar graph. Version: 1.0.1 Date: 2014-12-15 1. Fixed a problem where meters would sometimes show maximum level erroneously for line outs and headphones. This only affected 1.0.1b2 and 1.0.1b3. 2. Fixed a problem where UI encoder was changing input gain by 5 dB and output attenuation by 2.5 dB on a single click. Version: 1.0.1b3 Date: 2014-12-08 1. 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.1b2 Date: 2014-12-03 1. Inputs are muted for several seconds whenever phantom power is enabled or disabled (to minimize obnoxious noises). 2. Synchronization calculation now uses USB SOF to Timer3 capture input. This drastically improves the timing and results in very little jitter. Despite problems with NXP chips not always generating a SOF, numerous code workarounds were implemented to make it work. The Sync Factor parameter is now rather superfluous; it has not been removed but it will likely have little to no effect on iCA4. 3. Meter values for line outs and headphone now take into account the current attenuation setting. Previously, the meters always showed full scale values which seemed a bit odd when viewed from within iConfig. There are arguments for both ways of metering. 4. Added a delay when changing audio input levels to minimize obnoxious noises when making large gain changes (e.g. 0 to 60 dB). Gain changes will now ramp up (or ramp down) from the old value to the new value. There is still some zipper noise whenever gain levels are changed but it is not as bad as before. 5. Moved some data structures around in memory to get around a problem with 4333 GPDMA not being able to fill codec properly. Usually this problem causes bad distortion on headphone output. Version: 1.0.1b1 Date: 2014-11-25 1. Audio control values are now saved in FLASH as part of the user settings and are restored on startup. Previously, all audio control settings were lost when iConnectAudio4+ was restarted. 2. Audio channel names are now part of the USB descriptor so they will show up in Audio MIDI Setup and other apps that show USB audio channel names. Previously the default names as described in section 4.1 of the USB 2.0 spec were used (e.g. Front Left, Front Right, Front Center, etc). 3. The stereo link for headphones is always ON and not editable. The UI for headphones is different than for line ins and line outs and assumes that headphones are always stereo linked. 4. Tweaked the code that updates audio controls (AFE and codec) so that changes are only applied if the value actually changes. Also, gain is not changed on inputs when MUTE is activated (gain was being set to 0 when MUTE was enabled). Version: 1.0.0 Date: 2014-11-12 First release for manufacturing test.