- better channel name handling: "unused" is not a channel, and unknown channels are now named by number (e.g. Channel_20 for channel 20)
- never throw a std::string or a char*, use std::exception or its standard derived classes (see <stdexcept>)