two things

1. I think sample rate should be an int where `1 <= sampleRate <= 99`, so we dont have to deal with floats on the server side
2. this should return an error too so that we can propagate back up the chain if things weren't correct (and fail fatally).  unfortunately, this will need a bit of refactoring because we currently assume that `NewChannel` cannot fail (and it would need to propagate the error as well)