Add error handling

WithSound now uses IPC::open3 so it can handle errors in sound process.