[#6] Refactor as middleware.
[#6] Add soundwave.listen specs.
[#6] Add soundwave spec.
[#6] Add additional specs for listen.