You are on page 1of 7

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 doesnt 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.

You might also like