Hi Charles,
That is the current/next step - a colleague is writing a C module
we'll wrap/include with weave. I was hoping there was a trick
Numeric.where() methodology (which I'm just learning) to do it and
push most all down to C anyway.
Thanks, Ray
At 12:07 AM 6/24/2006, you wrote:
>Why not wrap the C code for use as an C exstension?
>
>Charles BUrnaford
>
>
>Ray Schumacher wrote:
>>I have been working with 24 bit ADC data returned from pyUSB as
>>byte-tuples, which I need to convert to Float32 and save, I
>>currently do it like this:
>><code>
>>WRAP = 2.**23
>>BITS24 = 2.**24
>>data = []
>>for byteN in range(0, len(dataTuple), 3):
>> try:
>> chValue =
>> struct.unpack(">I",
>> struct.pack(">4b", 0,*dataTuple[byteN:byteN+3])
>> )[0]
>> except:
>> chValue = 0
>> if chValue>WRAP: chValue =
>> ((BITS24-chValue) / WRAP)
>> else:
>> chValue = (-chValue / WRAP)
>> data[thisCh].append(chValue)
>>return data
>></code>
>>
>>It is really slow...
>>I have not been able to come up with a trick way to do it in numpy, either.
>>What is really needed is a 24 bit type, or at least a type-cast
>>ability to go to Float32, in core; all of the latest sound cards
>>are now 24 bit, so the demand should be coming.
>>http://www.koders.com/c/fid2226C89ED85B3FF15286288F7CF31CD8647CDD79.aspx
>>for instance, is an LGPL C module for working with them.
>>
>>Cheers,
>>Ray
>>
>>_______________________________________________
>>ActivePython mailing list
>>[email protected]
>>To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>>Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython
>>
>>
>>
>>
_______________________________________________
ActivePython mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Other options: http://listserv.ActiveState.com/mailman/listinfo/ActivePython