<div dir="ltr">I think the problem I'll run into is the 128 channel case. I'm hoping for a general solution... I'm almost positive this will require runtime checks. Your solution is what I was thinking for functions requiring exactly N channels (I'm not sure if there are many functions like that).<br>
<br><br><br><div class="gmail_quote">On Tue, Aug 26, 2008 at 2:11 PM, Henning Thielemann <span dir="ltr"><<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
On Mon, 25 Aug 2008, John Van Enk wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
How well would the storablevector package (Data.StorableVector) work for<br>
storing audio data? One of the major issues I'm still working over is that I<br>
want to maintain something similar to a [[a]] format (since the underlying<br>
PortAudio library and hardware could support hundreds of interleaved<br>
channels) but I would like to be able to build in some typechecking to the<br>
functions to make sure the number of channels matches the nubmer expected in<br>
the functions.<br>
</blockquote>
<br></div>
With<br>
data Stereo a = Stereo !a !a<br>
<br>
you could also use<br>
Stereo (Stereo a)<br>
for quadrophony and so on. Would this be convenient enough?<br>
<br>
StorableVector stores everything of fixed length for which a Storable instance is defined.<br>
</blockquote></div><br><br clear="all"><br>-- <br>/jve<br>
</div>