void CtrlrMidiInputComparatorMulti::addMatchTarget (CtrlrModulator *m)
{
	for (int i=0; i<m->getMidiMessage().getNumMessages(); i++)
	{
		messageTypesContainer.set(midiMessageToType(m->getMidiMessage().getReference(i).m), 1);
	}

	if (!messageSizeContainer.contains(m->getMidiMessage().getData().getSize()))
	{
		messageSizeContainer.addSorted (messageSizeContainerSorter, m->getMidiMessage().getData().getSize());
	}

	BigInteger bi = memoryToBits(m->getMidiMessage().getMidiPattern());

	CtrlrMultiMidiMapIterator it = map.find(bi);

	if (it == map.end())
	{
		map.insert (CtrlrMultiMidiMapPair(bi,m));
	}
	else
	{
		map[bi].targets.add (m);
	}
}
void CtrlrMidiInputComparatorSingle::addMatchTargetSysEx (CtrlrModulator *m)
{
	BigInteger bi = memoryToBits(m->getMidiMessage(source).getMidiPattern());

	CtrlrMultiMidiMapIterator it = mapSysEx.find(bi);

	if (it == mapSysEx.end())
	{
		mapSysEx.insert (CtrlrMultiMidiMapPair(bi,m));
	}
	else
	{
		mapSysEx[bi].targets.add (m);
	}
}