Support

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

HIFix - open-source Hearing Impairment Fix

For general discussion related FlowStone

Re: HIFix - open-source Hearing Impairment Fix

Postby MichaelBenjamin » Tue Mar 03, 2020 9:05 am

.
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

Postby steph_tsf » Tue Mar 03, 2020 12:40 pm

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).
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

Postby martinvicanek » Tue Mar 03, 2020 9:21 pm

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
User avatar
martinvicanek
 
Posts: 1318
Joined: Sat Jun 22, 2013 8:28 pm

Re: HIFix - open-source Hearing Impairment Fix

Postby steph_tsf » Wed Mar 04, 2020 2:39 am

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:

Bandsplitter - Lipshitz-Vanderkooy - 6 bands (bandpass) (650 pix).jpg
Bandsplitter - Lipshitz-Vanderkooy - 6 bands (bandpass) (650 pix).jpg (67.32 KiB) Viewed 9640 times

Have a nice day
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: HIFix - open-source Hearing Impairment Fix

Postby steph_tsf » Mon Mar 16, 2020 9:35 pm

What if opting for a compressor-limiter, per channel, that's embedding the channel gain control?

hearing aid RMS det comp gain lim.fsm
(18.05 KiB) Downloaded 813 times

hearing aid RMS det comp gain lim.jpg (650 pix).jpg
hearing aid RMS det comp gain lim.jpg (650 pix).jpg (56.34 KiB) Viewed 9640 times

Have a nice day
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: HIFix - open-source Hearing Impairment Fix

Postby steph_tsf » Mon Mar 16, 2020 10:50 pm

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.

sqrt(x) function for audio.fsm
(12.08 KiB) Downloaded 788 times

sqrt(x) function for audio (650 pix).jpg
sqrt(x) function for audio (650 pix).jpg (100.12 KiB) Viewed 9636 times

Have a nice day
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Previous

Return to General

Who is online

Users browsing this forum: No registered users and 26 guests

cron