private OSCMessage convertMessage() {
		OSCMessage message = new OSCMessage();
		message.setAddress(readString());
		List<Character> types = readTypes();
		if (null == types) {
			// we are done
			return message;
		}
		moveToFourByteBoundry();
		for (int i = 0; i < types.size(); ++i) {
			if ('[' == types.get(i).charValue()) {
				// we're looking at an array -- read it in
				message.addArgument(readArray(types, ++i).toArray());
				// then increment i to the end of the array
				while (types.get(i).charValue() != ']') {
					i++;
				}
			} else {
				message.addArgument(readArgument(types.get(i)));
			}
		}
		return message;
	}