If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
HIFix - open-source Hearing Impairment Fix
36 posts
• Page 4 of 4 • 1, 2, 3, 4
Re: HIFix - open-source Hearing Impairment Fix
.
Last edited by MichaelBenjamin on Mon Sep 21, 2020 10:47 am, edited 1 time in total.
- MichaelBenjamin
- Posts: 275
- Joined: Tue Jul 13, 2010 1:32 pm
Re: HIFix - open-source Hearing Impairment Fix
Post erased, because of the absence on Flowstone, of a x86 SSE Mono4 64-tap FIR filter component, and a x86 SSE 64-tap Widrow-Hoff LMS Machinery.
There is no use in mystifying people with various unproven unfinished "alternatives" that are requiring a "double" floating point precision, a FFT then inverse FFT process, a PhD in complex plane navigation, etc.
The HIFix (open-source Hearing Impairment Fix) must remain a back-envelope sketch, a kind of sandbox, an idea shaker, that's relying on mainstream stuff.
In case there are fatal unavoidable limitations within Flowstone, preventing a 64-tap FIR filter and a direct derivative like the Widrow-Hoff LMS Machinery to become commodities, think about relying on ASIO, seen as synchronous FIR filter provider, eventually hardware assisted by a ASIO-USB2 software driver and ASIO-USB2 hardware dongle that's embedding a STM32H747 (USB High Speed 480 Mbit/s, grabbing audio from USB2, returning the processed audio to USB2), eventually helped by one or two more STM32H747 (grabbing audio using SAI, processing audio full steam, returning the processed audio to SAI).
There is no use in mystifying people with various unproven unfinished "alternatives" that are requiring a "double" floating point precision, a FFT then inverse FFT process, a PhD in complex plane navigation, etc.
The HIFix (open-source Hearing Impairment Fix) must remain a back-envelope sketch, a kind of sandbox, an idea shaker, that's relying on mainstream stuff.
In case there are fatal unavoidable limitations within Flowstone, preventing a 64-tap FIR filter and a direct derivative like the Widrow-Hoff LMS Machinery to become commodities, think about relying on ASIO, seen as synchronous FIR filter provider, eventually hardware assisted by a ASIO-USB2 software driver and ASIO-USB2 hardware dongle that's embedding a STM32H747 (USB High Speed 480 Mbit/s, grabbing audio from USB2, returning the processed audio to USB2), eventually helped by one or two more STM32H747 (grabbing audio using SAI, processing audio full steam, returning the processed audio to SAI).
Last edited by steph_tsf on Fri Mar 06, 2020 5:37 pm, edited 2 times in total.
- steph_tsf
- Posts: 249
- Joined: Sun Aug 15, 2010 10:26 pm
Re: HIFix - open-source Hearing Impairment Fix
For Linear Phase Linkwitz Riley I could offer this: https://vicanek.de/articles/ReverseIIR.pdf
For a 1024 tap FIR I would recomend FFT else CPU will be prohibitive. Something like this: viewtopic.php?f=4&t=13137&p=44319
For a 1024 tap FIR I would recomend FFT else CPU will be prohibitive. Something like this: viewtopic.php?f=4&t=13137&p=44319
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: HIFix - open-source Hearing Impairment Fix
What if opting for a phase-linear 6-band splitter, costing almost the same CPU% than a 4th-order Linkwitz-Riley one (that's not phase-linear)?
See it here:
Have a nice day
See it here:
Have a nice day
- steph_tsf
- Posts: 249
- Joined: Sun Aug 15, 2010 10:26 pm
Re: HIFix - open-source Hearing Impairment Fix
What if opting for a compressor-limiter, per channel, that's embedding the channel gain control?
Have a nice day
Have a nice day
- steph_tsf
- Posts: 249
- Joined: Sun Aug 15, 2010 10:26 pm
Re: HIFix - open-source Hearing Impairment Fix
I understand the audiophile preoccupation of managing the compressor-limiter side-chain in dB domain instead of in LINear domain. Unfortunately, the lin2db block and dB2lin block appear to be CPU% hungry. Times six, in case there are six channels.
There exist various analog audio compressors-limiters, that are managing the gain (attenuation) in various unspecified domains defined by some vacuum tube in low V anode-cathode region, some JFET in low VDS region, some BJT in low VCE region, some vactrol (LED + LDR), etc. all recognized as working satisfactory. All providing transfer curves lying between "log(x)" and "sqrt(x)".
Speaking of digital, why not trying the sqrt(x) domain?
I am making such proposition, because the Flowstone Assembly Code component supports the x86 sqrtps xmm1,xmm0; instruction, much faster than a lin2db block. Consequently, the side-chain can manage the gain (attenuation) in sqrt(x) domain. At the beginning of the side chain, instead of placing a lin2db block, we place a sqrt(x) block, much faster than a lin2db block. At the end of the side chain, instead of placing a db2lin block, we place a x^2 block, much faster than a db2lin block.
I am attaching a .fsm, showing the validity and precision of the x86 sqrtps xmm1,xmm0; instruction.
Have a nice day
There exist various analog audio compressors-limiters, that are managing the gain (attenuation) in various unspecified domains defined by some vacuum tube in low V anode-cathode region, some JFET in low VDS region, some BJT in low VCE region, some vactrol (LED + LDR), etc. all recognized as working satisfactory. All providing transfer curves lying between "log(x)" and "sqrt(x)".
Speaking of digital, why not trying the sqrt(x) domain?
I am making such proposition, because the Flowstone Assembly Code component supports the x86 sqrtps xmm1,xmm0; instruction, much faster than a lin2db block. Consequently, the side-chain can manage the gain (attenuation) in sqrt(x) domain. At the beginning of the side chain, instead of placing a lin2db block, we place a sqrt(x) block, much faster than a lin2db block. At the end of the side chain, instead of placing a db2lin block, we place a x^2 block, much faster than a db2lin block.
I am attaching a .fsm, showing the validity and precision of the x86 sqrtps xmm1,xmm0; instruction.
Have a nice day
- steph_tsf
- Posts: 249
- Joined: Sun Aug 15, 2010 10:26 pm
36 posts
• Page 4 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: No registered users and 46 guests