DSP – how, why, troubleshooting, different hardware, etc.

Blog Forums DIY Amplifiers and Electronics DSP – how, why, troubleshooting, different hardware, etc.

Viewing 100 reply threads
  • Author
    Posts
    • #14121
      AJC
      Participant

      So, I decided to open this thread to consolidate work on DSPs here. Regardless if you are using Texas Instruments solution that is similar to SigmaStudio, using DIRAC, using miniDSP’s software alternative to SigmaStudio, etc.

      DSPs and active crossovers have their own challenges. I even considered putting this in the crossover section because of the DSP relation to active crossovers. But there isn’t a neat place to tuck this. @TVOR-Ceasar – if you want, you can add a new topic in that section for DSPs, as it is similar to crossovers, amplifiers (as some DSPs now have amps with them, such as the JAB series among others), pre-amplifiers due to the signal processing, etc.

      @ElliottDesigns – wanted to tag you since you mentioned about this.

      Now, recently, I found the problem I was having with some of my designs for the JAB5. When trying to add the part for external potentiometers for each speaker after the active crossover, it stops playing sound. I am still trying to figure out why, as I have decided to do three independent gain knobs for the 3-way, then the master volume.

      Does anyone have more experience with sigmastudio? Otherwise, I’ll post the solution once I figure it out.

      Edit: turns out it was working, but unlike the master volume which defaulted to full volume, the gain switches defaulted to off. I didn’t plug the potentiometers in because of being lazy, but plugged them in to try. And they work. so now back to figuring out how to import the frequency response (or what I am doing wrong) for the autoEQ. Then is making FIR filters. Then just playing around with different ways to adjust phase, to adjust timing, etc. That way when I build my boxes, I can tune them quickly.

    • #14126
      Elliott
      Participant

      There should be an FIR block in sigma studio that you can add lines to in order to accommodate more taps, should then just be able to paste it in in the form of text. To get the text coefficients I just use a program called rePhase.

    • #14134
      AJC
      Participant

      @elliottdesigns rephase worked well for the coefficients, and you can just load the txt file into sigmastudios. Much easier than changing the format from REW saved txt files for the auto-EQ. Results are quite nice.

      So I have now fixed the python code from the ADI wiki pages so that it properly converts the REW files over for use.

      2652-REWSigmaMLSSAConversion.zip

      https://ez.analog.com/dsp/sigmadsp/f/q-a/65120/mlssa-and-auto-eq-algorithm (credit to those that wrote it, I just fixed an error in the code which made it not run; You will need to change the filename in the program for each run, or you can save the text file to the same as the filename in the program, then change filename after you do the conversion to work with sigmastudio).

      If you have a python already installed and install another one, then you may need to fix which path is being run in environment variables (if in windows). You may also need to get numpy (which aside from pointing to a different python to run it, the other python didn’t have numpy installed, so had to install that then run it after figuring out the environmental variables setting for PATH; just giving some hints here at what may need checked to get this to work depending on how you have your programs setup on windows).

      After having done that, the block format for sigmastudio works directly with rePhase, so you can import measurements easily after the python conversion. You then just set the number of coefficients and a couple other variables and start playing. Thank you for pointing me towards that (I think you mentioned it before, but I now am to where I played with it finally).

    • #14135
      Elliott
      Participant

      @ajc9988 Yeah, I’m not using the Jab boards any more, too much hassle for their limited DSP capabilities in my opinion. Hopefully this will help others though 🤞

    • #14136
      AJC
      Participant

      @elliottdesigns – I am, but there is another reason, which is that I may use a sigmastudio compatible chip in the future for upgrades. Another reason is Texas Instruments has generated a GUI based software with roughly equivalent functionality, meaning more in the space will likely adopt having a software that is similar in function for programming.

      But I definitely understand the limitations. Moving forward in future builds, I will have the amps separate from the data processing boards. Possibly even just doing an RPi or Teensy to a HAT for ADC/DAC, then optimized code for FIR filtering, which that would be (for an RPi4b with a HAT around $65 for a HiFi-berry ADC/DAC, $35 for the RPi4b 2GB, and then the cost for the amplifiers being fed from the HiFi-berry).

      In fact, one could even do the RPi to the HIFIberry ADC/DAC to a JAB5 if making it needlessly complicated (no master slave, just an extra digital to analog conversion). You do all pre-processing on the RPi, then use the jab (or an adau1701) for simple active crossover routing, then to the amplifiers.

      Is there a good solution for acting as an active crossover for RPi or Teensy? Granted, you can put out 3 outputs off the Hifi berry, so it is limiting the frequency range per output.

      Could you talk about your project and its current direction? This thread is about DSP, regardless of manufacturer. All solutions welcome here.

    • #14138
      Elliott
      Participant

      @ajc9988 Yeah, I’ll get to doing a write up sooner or later. What I’ve been doing is creating a stereo filter where the left channel is a linear low pass with the linear version of the REW correction filter applied and the right channel is the same but with a high pass. I then use the left channel output from the amplifier for the woofer and the right channel for the BMR. That’s the basic gist of it. 👍

      (My current setup is just using the many analogue outs of my motherboard that have been rerouted and had FIR filters applied using Equaliser APO, only have stereo ATM, but I have enough outputs to do quadrophonic 2-way outputs before having to get teensy boards set up)

    • #14141
      AJC
      Participant

      @elliottdesigns completely understandable on doing channel out instead of L/R using one for BMR.

      I’m also looking at the newer chips from ADI. The person on the forums pushed for the ADAU1452, which can do over 20,000 taps. The ADAU1466 and 1467 can do more than the 1452.
      https://www.aliexpress.com/item/4000570223162.html

      That is a core board on top of a board with all the inputs and outputs. If you then connect the outs (which this board is only stereo), you could put that straight into small amps for each driver (still thinking of this in a plate amp scenario), while also having good performance. But, that is just another option for those that have not seen it. Just note, the version of just the core board is around $50, the version of the core board connected to the other board is $160 and I am talking the latter. Then is buying an amp per channel. Solution (with power supply) would likely run $250-350 would give good performance. But, once there per speaker, you could look at the SHARC lineup. https://www.aliexpress.com/item/1005003234803636.html?algo_pvid=04b0d785-c8fb-4b1a-9c36-dd216b53f7a1&algo_exp_id=04b0d785-c8fb-4b1a-9c36-dd216b53f7a1-1 ($135 for a core board for a 21489 SHARC) ( https://www.aliexpress.com/item/4000685375571.html?algo_pvid=5fbf5f0f-d60f-430a-9c5c-fbf351293c18&algo_exp_id=5fbf5f0f-d60f-430a-9c5c-fbf351293c18-7 ) The second link shows a really cool setup for the SHARC, although you have to buy all the components which will be around $250, plus the additional cost of each amplifier and your PSU (power supply unit), that really isn’t too bad to get a SHARC going.

    • #14142
      Elliott
      Participant

      @ajc9988 True, but you could just instead use a Teensy for far cheaper and only lose 2000 taps of capability since the Uniformly Partitioned FFT program/audio library add-on does 18 000 taps. 🤷‍♂️ Just a suggestion. Why spend over 5x the price for barely any more taps? 😉

      Edit: sorry didn’t see the other prices included amp and power supply, still. It’s probably a little cheaper and a lot easier to set up 🤷‍♂️

    • #14144
      AJC
      Participant

      I do agree, which is why I may, for this project, get that and try to set it up with an ADC, then just output it to the JAB to finish with the amplifier and crossover and knobs (not like it is doing much more than that after using the FIR on the Teensy4.1). Or throw a passive crossover somewhere in the mix. In any case, you are right in it costing so much more for the same outcome.

      What have you decided to use for the ADC/DAC with the Teensy?

      Also, you read right, those solutions are before including Amp and PSU. So $162 for the ADAU1467 (which has triple the program memory and double the parameter memory of the ADAU1452 which does 20,000 taps, but the processing speed, etc., is the same; You do not need to deal with ADC/DACs), you get a fair amount. With the SHARC solution, you are dealing with a ready made routing solution that can support USB, ethernet/ tcp/ip, the modular nature, and it being able to do many more calculations. I also did not check if the modular board implemented the internet support or USB support, I just know the processor on it is capable.

      You are correct. That is probably the economic decision there. But let me know a bit more what you are doing for ADC/DAC. 

    • #14152
      123toid
      Keymaster

      You both are doing great work!  I really don’t have much to add to the discussion.  But I am impressed with what is going on here.  I’m not sure I’ll be much of help, but I am following this thread closely. 

    • #14166
      AJC
      Participant

      @ElliottDesigns – I figure I can start collecting the data here on different options and daughter boards (HATs, EZ expansion boards, etc.) as well as start better describing why some of the higher cost items may be a better option (even though they all take work and the highest cost option is just buying a finished product).

      All In One Solutions

      JAB series
      This is a good entry into this area. It contains the most basic of filtering and acts as an active interposer with ways to address time and phase shifts. The downside is that it is limited severely on the instruction count, which causes it to really be a limited choice. Total cost is at most $70 at the moment with 4CH@100W@6Ohms, thereby being the amplifier, the crossover, and entry level correction. There is a learning curve to the SigmaStudio software, but once you get the ropes, it generally is easy (and if you plan to use ADI’s more advanced chips down the road, this is a good way to cut your teeth). As with any AIO, it is a jack of all, but master of none.

      ARM Boards

      Teensy 3.6/4.0/4.1

      This is possibly the lowest cost solution, although the HATs/expansion boards may greatly increase, depending on selection. It is able to do around 20,000 taps for a fir filter. Now, you still have to buy amplifiers if this is going inside of a plate amp, but it also can be stand alone to drive multiple channel speakers as well as integrated. It is a cheap, powerful solution. If you add the cost of the 4.1, the extra memory to solder on, and the Hi-Fi Berry DAC+ ADC Pro, you would be around $100 in, not including power supply (PSU) or amplifier. But, for 20,000 fir taps, that is not bad at all.

      Raspberry Pi 4b

      Starting with the Pi 4B, the processing power of the Pi greatly increased over prior generations. This is comparable with Intel’s mobile processors from circa 2015, IIRC (not meaning Atom processors, meaning laptop, and one of the pages I saw compared it to either an Ivy or Haswell laptop processor, which still won, but not by much). This can be a power house, but requires the right expansion boards as there is no analog connections for this processor. That means buying an ADC/DAC, as well as any other components you would like. You also have to buy the PSU and the amplifiers separately. Being such a large community, a lot of legwork has been done on this developer board. But, there is a time and learning cost. The board runs linux and runs arm instructions instead of x86-64. You will still have to learn to compile kernels, integrate kernel modules, etc. You may have to learn some basic python/c/c++ coding (more of google copy paste, with a learning curve and discovering enough to know when to change specific variables; please whenever possible credit the original sources of code, as it is their work that gets this done and they will usually appreciate the shout out). The cost of the basic RPi 4b with 2GB ram is about $35 before shipping. With an HDMI mini to get it programmed (need at least one), there is another $7-8. Plus the SD card, there is another $5-10. Then the HAT like the HiFi berry is $65. Then the amplifiers. You quickly are looking at $115 before the amplifier, plus then needing to know a bit more on programming. But, there are even HATs that can extract 8-channel audio from HDMI, meaning you can create a pre-amp that pulls the audio, then a different hat not mentioned can output to your entire 7.1 system, all while running a FIR filter which one person claims can do over 200,000 taps per channel. Feed that into amps per channel and you could have a really good time. The downside is the learning curve and getting everything to speak to each other correctly (if it was easy, this would just be the way). The FIR claim was made on the git page of CamilleDSP, which works with known software on the platform like Pulse Audio. You can even do low level coding to make this work. Lot’s of options, but to use the advanced features, the learning curve is steep. Not for the faint of heart.

      ADI Boards

      Analog Devices Inc. (ADI) is a somewhat large presence in the DSP market. They have made from Blackfin and Sharc systems that work with Dirac products to their DSP and Codec lines that work with SigmaStudio. Many of miniDSP’s products are based in one way or another on their chips (although competing product lines exist from Texas Instruments for DSP, with them releasing a graphical programming interface; I have seen LabVIEW and Code Composing Studio, which are similar to ADI’s sigmastudio and CrossCore Embedded Studio, respectively). And not only that, companies can then develop their own, more limited software so that certain abilities are not accessible to the end user, which makes sense so you do not have to talk through advanced features on the more advanced software platforms to troubleshoot someone trying to add functionality. See the miniDSP 2×4 non-HD as an example (uses the ADAU1701, just like the JAB series from Sure Electronics).

      With this, if doing a one off project, one might consider buying project evaluation boards with their expansion boards directly from ADI. Some of the following are examples that might be worth considering at varying costs.

      EV-SC594-EZKIT

      https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/EV-SC594-EZKIT.html#eb-overview
      This was one of the higher rated chips for doing DSP for awhile, even though some may consider it getting long in the tooth. The price is listed as $315 from ADI, but you have to contact them directly to buy it. The link is at the bottom of the attached page.

      What you are getting is the following:

      • Analog Devices ADAU1979 – Quad Analog-to-Digital Converter
      • Analog Devices ADAU1962A – 12 Channel, High Performance, 192kHz, 24-bit DAC
      • CAN-FD 2x ADM3056E
      • Macronix MX66LM1G45G 1 Gbit OSPI Flash Memory
      • Gigabit Ethernet TI DP83867
      • 10/100 Ethernet TI DP83848
      • USB 2.0 PHY Microchip USB3340
      • USB 2.0 to QSPI FTDI
      • MicroSD Card Socket
      • 2x A2B® Interface Connectors
      • Debug Interface (JTAG), On-Board ICE-1000 Emulator

      The ICE-1000 Emulator, bought separately, costs $150 from them. You also have multiple ethernet connectivity, the DAC and ADC chips, the engineering for the board, etc. What you are paying for is an extra cost for what they developed to showcase the product. It supports a linux kernel as well. It works with CCES. I do not know that this is DIRAC ready, but after getting it setup, there is a chance you could negotiate a DIRAC license from DIRAC directly (possibly $100, give or take depending on functionality, but they charge that for a product from JBL integrating the 21489 SHARC chip, with that license covering the full range of frequencies; but this is an individual negotiation between you and them, so the pricing could be more or less). Even with the license, you will need to integrate the software and debug/troubleshoot to get it to work right. If you have all the equipment and knowledge on testing, this may be a good solution for you, especially since the OpenDRC product from miniDSP uses the weaker 21369 chip (which has other benefits over the 21489 chip, like 8 different native convolution frequencies instead of 4 as is found on the other AlieExpress product that I pointed to), costs around $315, doesn’t support DIRAC but does support openDRC (as its name suggests) and importing filters from third party software, such as RePhase. It is a finished product, so less hassle, has 2.4GFLOPs of compute (21489 has 2.7GFLOPs and a larger L2), and works with software many of us already know. The point is, you are now paying in the range that you can start buying finished products, although weaker in processing capabilities, that require less work to get the results desired. Always be aware of the point at which buying a finished product becomes the better choice over building your own, as unless doing it for skill building or projects to keep us busy, it is at this point introspection is needed. To be clear, though, products using the SC594 chip have costed $750-1500, so if you can get it working at half that $750 mark (ignoring the price of the case, PSU, etc.), then maybe it is worth it to push forward. I just wanted it to be clear that there is a point after which the cost/benefit of DIY switches, and looking above the $300 threshold, you may be quick approaching the threshold. But, these boards also include DAC/ADCs and the hardware is known to work with each other, so the main issue is getting software working correctly. That is part of the benefit. And some functions, like DIRAC, if willing to pay and get them working, are a hell of a software library to access.

      There is also a SigmaStudios for SHARC, so once you get to that point, you can work with that and include advanced libraries as well. https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/sh_sigst_00.html#software-overview

      But, there are some boards from ADI that cost too much and should be ignored, like the $500 board for the 21489, especially when alternatives to it are on the market at lower pricing.

      EVAL-ADAU1467Z

      https://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adau146x.html#eb-overview

      This board comes with 4in and 8output, thereby saving on the need to buy an ADC/DAC board. It is able to quickly be programmed with sigmastudio. You do not have amplifiers with it, but that is fine. This can do 20,000 taps, similar to the Teensy 4.0/4.1 board. What you are paying for is the convenience of it being already done and as a single board, instead of multiple boards wired together. You are also paying for the ease of integration, as you can quickly run the wire from this over to the amplifier in a plate amp, or have this as a small form factor for a home theater (although with only 4 in, capabilities are limited, although it could run a 2 speaker 4-way crossover scenario easily).

      But these are examples of buying evaluation boards from the manufacturer, which designed these to make other companies want to buy their chips and design their own. These are not made for end consumers, but that, arguably, is what makes them fine for DIYers that are willing to put in the elbow grease to do what the corporations are doing to make their products.

      AlieExpress Boards

      Anyone interested in DIY electronics has no doubt stumbled across AlieExpress a time or two. Who could resist looking through, after all, so many boards are assembled or products assembled in China, there is a plethora of talent. Not all is good, but with a keen eye, you can find some possible gems (note, I have not bought the specific products yet, but they are interesting and can deserve consideration).

      https://www.aliexpress.com/item/1005003082062828.html?algo_pvid=5a1aa78e-3163-43ce-9159-00422ffbfc35&algo_exp_id=5a1aa78e-3163-43ce-9159-00422ffbfc35-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000023971356270%22%7D
      This ADAU1467 board has dropped in price to $143.78, it is the core board and the expansion board, it has an AD1938 4 ADC 8 DAC chip and an ADAU1977 4 ADC,  giving a total of 8 input and 8 output, making this a board that can be used for a 7.1 correction pre-amp. Once again, the premium is for the 8 input and output and the convenience because the hardware and the expansion card are made for each other, that way you throw it in sigmastudio and get started. The chip is capable, doing approximately the FIR taps of the Teensy, supposedly. The question is, is it worth the premium. That is a personal question. Also, you may want to change the channel in plugs to something else, like RCA or any other number of connectors. If so, you either have to desolder and resolder, or get the two channel plugs (like for headsets) that break out into a pigtail where you can attach it to each channel having RCA or something similar mounted on the back of the case. But those are personal choices, just be aware of there being other cost considerations before diving in.

      https://www.aliexpress.com/item/33004600557.html?algo_pvid=d1a0d38e-935a-44dc-a263-0d8a94b1dab5&algo_exp_id=d1a0d38e-935a-44dc-a263-0d8a94b1dab5-7&pdp_ext_f=%7B%22sku_id%22%3A%2210000015292068166%22%7D

      It seems from the cursory look I read this posting wrong. The total cost is $147, has one ADC card with 4 channels of input, then 4 DAC boards with 2 channels of output each, the backplane (everything plugs into), and the core board for the SHARC ADSP-21489.

      This uses the Burr-Brown TI PCM1804 ADC and the Burr-Brown TI PCM1798 for the DACs. That is, these have an extremely high SNR, 24-bit 192kHz sampling, etc. Stop band attenuation of -98dB, pass-band ripple of 0.0002dB according to TI on the data sheet ( DAC https://www.ti.com/lit/ds/symlink/pcm1798.pdf?ts=1631033417699&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FPCM1798 ; ADC https://www.ti.com/lit/ds/symlink/pcm1804.pdf ).
      T

      So what are you paying the extra for? You are paying for great quality ADCs and DACs, the engineering for the plug and play, the ability to mount the backplane right to the back of the case for the RCA connectors, and the capabilities of a SHARC processor while using the SigmaStudio for SHARC program with the libraries that that has access to.

      Edit (new content below):

      HATs

      So, there are numerous HATs that can be used with the raspberry pie, but there are a couple to note:

      HiFiBerry DAC+ ADC/ Pro

      $50 version https://www.hifiberry.com/shop/boards/hifiberry-dac-adc/
      $65 version https://www.hifiberry.com/shop/boards/hifiberry-dac-adc-pro/ (better ADC THD+N of 90dB instead of 85dB, slight other differences, SNR on both devices is the same)

      Now these use the PCM5122 (32-bit 384kHz DAC with an SNR of 112dB; https://www.ti.com/lit/ds/symlink/pcm5122.pdf?ts=1631050235133&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FPCM5122 ) and the PCM1863 (2 channel 192kHz 110SNR ADC https://www.ti.com/lit/ds/symlink/pcm1863.pdf?ts=1631050443126&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FPCM1863 ).

      This would be good if doing a speaker build for up to 4-way with a raspberry pi.

      Suptronic X6000/k

      http://www.suptronics.com/miniPCkits/x6000-8.0ch.html
      If you are looking to get audio extracted from an HDMI plug, such as using the RPi with camilledsp, and using this to feed a room FIR system, this may be an accessory. You do not have to mount it as a hat. This can allow you to use an audio HAT, then connect this to the RPi through alternative means. That will allow the signal to be processed, then put out through the DAC HAT, opening up different possibilities. This is discussed at DIYAudio forums. https://www.diyaudio.com/forums/pc-based/334443-2-8-dsp-platform-using-raspberry-pi-hats.html . If this is what you want to do, one might consider the Audio Injector Octo sound card (below), which allows for 6 inputs and 8 outputs.

      As such, this build becomes looking at more of a full room pre-amp scenario, with an ability to take in the HDMI audio for 7.1, then deliver it out to the amplifier. But, this is also possibly a solution to take in the audio for a home soundbar, possibly (although it is not clear that ARC is working on the RPi, so this use does need fleshed out and I have not fully read the thread yet, so I am not fully informed of the nuance yet).

      Audio Injector Octo
      https://shop.audioinjector.net/detail/Sound_Cards/Octo+RCA+sound+card
      Details are light on this, so just be aware.
      https://www.audioinjector.net/rpi-octo-hat

      https://elinux.org/RPi_Expansion_Boards#Sound (listing Wolfson and other sound cards).

      Not all HATs are worthwhile, and depending on what you are building, suddenly the ADAU1467 and ADSP-21489 may become more viable options.

    • #14168
      Elliott
      Participant

      @ajc9988 aha, it all makes sense now. The reason I am happy with the teensy is that I am doing it on a per speaker basis (making each speaker active). Whereas you want an all in one processing unit, like a miniDSP. I get it now 👍

    • #14169
      AJC
      Participant

      @elliottdesigns – I’m also doing it on a per speaker basis, but have looked through to understand what these different solutions are, cost comparisons, etc., after our last conversation and not being able to answer why the higher cost solutions should be considered. In fact, that SHARC one, by finding a different listing on AliExpress, looks even more compelling. Per speaker, after buying your individual amplifiers or a 2.1 amp for a 3-way, etc., you can keep a couple of the DAC cards out and just hook them to the amps to the driver units.

      And yes, I do prefer one unit doing all the processing and making it simple. Hell, if I had an easy way to hook up the I2S to the RPi 4B (even with all the work done, no one has created a simple GPIO map to say connect the MCLK here, connect the BCLK here, connect the LRCLK here, connect the sdata here), I would even recommend considering the JAB5 to the RPi. Right now, if starting over, I’d likely go RPi with the HiFi Berry DAC+ ADC hat and call it a day. Take the output straight into the amplifiers and be done. Nice, simple, elegant. ( https://github.com/HEnquist/camilladsp ). Add in the kernel support that was removed from the more recent builds for the DAC+ ADC, run camilladsp plugin to pulse audio, output that to the amps. Sure, that costs a fair bit more than $70 per, but since I’m talking about the $50+ extra to add in the RPi, I’m now approaching the cost of just going with some of these other solutions.

      I bought the JAB5s early on, not realizing how much I planned to take this project into a higher quality product. Now that I’ve done more research, I could buy better dedicated amps, better all in one processing solutions, better DAC and ADC chips, better SNR, etc.

      Also, I looked at the other solutions because building a pre-amp may be in my future for when I look at building a 5.1 or 7.1 system. That could easily be turned into a receiver if you want to put amps in the same case (better have good cooling), along with then outputting more watts per channel than you can get on even high end receivers (also means a MASSIVE power supply to feed the amps so much, so keep that in mind).

      I’m a techie, but even I have much to learn. Had I known audio had such good tech and nuance involved, I may have done this as a hobby sooner (building computers and overclocking took up that budget, but now, something tells me audio will take it up for a good while now)!!! Same was true with display calibration.

      Also, thank you on the RePhase point. That was awesome!

      Right now, I’m researching HATs (which started to figure out how they implemented the GPIO connections, that way to do the same from the JAB5 to the RPI and back). But, I found some cool ones, like taking 8ch audio from HDMI connections and a breakout to an 8-output. That will be added shortly above, followed by moving back to figuring out how to get the JAB5 and RPI to speak.

    • #14170
      Elliott
      Participant

      @ajc9988 Pretty sure most hats use I2S if that helps 😉

    • #14174
      AJC
      Participant

       

       

      BTW, this is the sigmastudio program for a single channel (I believe I have left channel setup here) that I have designed. I do plan on adding in, if needed, the baffle step compensation and time delays. Once I figure out how to connect the JAB to the Pi, then the FIR would be loaded onto that.

    • #14209
      AJC
      Participant

      @elliottdesigns – so this morning, while still waking up, I flipped an input GPIO debounce to a data line and blew up one of the amp chips in my JAB5. Turns out they use the TDA7498E chips. I have a few other SMB components right by it to check and ask the values from Sure Electronics to verify if those need replaced along with the TDA7498E, but it looks primarily like the chip being replaced may fix the issue.

       At least on this board, I do not see a mirror on size of the SMB resistors that come after the amp chips.

      But, looks like I will get to practice my soldering. LOL.

    • #14211
      123toid
      Keymaster

      I really just want to say I’m enjoying following this thread. I really wish there was more that I could personally input, but this has been really awesome. I thought I would share this with you guys as well. My Patreon Philip found this and shared it with me. I hope this was a pretty amazing thing to do with sigma studios. https://youtu.be/INw3HPlR0bs

    • #14212
      123toid
      Keymaster

      @ajc9988 dang that’s rough. I hate soldering small little components like that. 

    • #14214
      tvor-ceasar
      Moderator

      @ajc9988 ooooh, that’s not pretty. As you said, it looks like only the 7498 let out the magic smoke. The other passives look like they only have some soot on them. A little 99% isopropyl alcohol will clean that right up.

      A nice micro tip on your pencil will do a good job on those legs. Just hope the pads are okay. Good luck on the repair.

    • #14215
      AJC
      Participant

      @123toid – It happens. At least with shipping it is only around $6 or $7 to replace the amp chip. Also, it did give me a reason to take the heatsink and fan off to take a look at other chips used. So, now we know that the JAB5 uses 2 x TDA7498E chips.

      Now, they rated it for 100W@6Ohm, but looking at that data sheet ( https://www.st.com/content/ccc/resource/technical/document/datasheet/ad/92/18/e8/c0/bf/42/b6/DM00044235.pdf/files/DM00044235.pdf/jcr:content/translations/en.DM00044235.pdf ) it seems that is pushing right up to the edge of the chip’s performance.

      160-W + 160-W output power at THD = 10% with RL = 4 Ω and VCC = 36 V
      1 x 220 W output power mono parallel BTL at THD = 10% with RL = 3 Ω and
      VCC = 36 V

      So, even in bridged, keeping it under 150W likely is a smart play at 4Ohm, if for no other reason than trying to keep THD under 1% potentially.

    • #14216
      AJC
      Participant

      @tvor-ceasar That was my thought also. And initial checks with a multi-meter suggest the SMBs there are in the right range. So it should just be the chip and praying the pads are intact.

    • #14217
      AJC
      Participant

      @123toid – btw, found this as an example of how a person could build their own DSP from the 21489 SHARC board I showed before:

      https://www.aliexpress.com/item/1005001659282393.html?pdp_ext_f=%7B%22ship_from%22:%22CN%22,%22sku_id%22:%2212000017019877428%22%7D&scm=1007.26694.140541.0&scm_id=1007.26694.140541.0&scm-url=1007.26694.140541.0&pvid=d610eda2-8faa-4151-86ab-c11f0bd2cf30&fromRankId=11708252&_t=fromRankId:11708252

      Type 8 comes with the usbi programmer and the power supply for $157.26. This listing on AliExpress has the 4 in 8 out without the programmer or the power supply unit for $125.06.

      Just wanted to give an example of doing a very nice DSP for a home theater fairly easily here. Or just having a per driver out on some tower speakers or bookshelves and having the signal go from here to an amp to the drivers. Either way, just thought I’d share this because it looks good.

    • #14219
      Elliott
      Participant

      @ajc9988 yeah, sm soldering is a real pain so good luck with that 👍. Might be worth putting a tiny dab of thermal paste on the chip before putting the heatsink back on, when driven hard those chips can get pretty hot, so the thermal paste should help reduce distortion.

    • #14220
      Elliott
      Participant

      @ajc9988 Also you’ll probably find that because it’s rated for a 6ohm load you’ll have sm-inductors that are rated for said 6ohm load. If you were to then use a 4ohm load you would get some high frequency attenuation, which I know is the case when seeing measurements of tpa3116 boards that have the inductance for an 8ohm load even though the suggested load on the listing is 4ohm, it’s just bad design in that case, but it counts to what I’m saying anyways.

    • #14221
      AJC
      Participant

      @elliottdesigns – I did forget to mention that the chips did have a white thermal paste that was used which seemed to be of a decent quality. I was going to use the Kingpin KPX thermal paste I have (which I have a 50g tube of, as I mentioned, I overclock PCs as my other hobby). So definitely going to put thermal paste on before closing it back up. And KPX is a pretty good paste. Lord knows I’ve used Coollabs Liquid Ultra, Arctic silvers (this hobby goes back to the early 90s when I built my first computer with my dad), arctic MX4, gelid extreme, IC Diamond, Kryonaut, Prolimetech (sic?), etc.

      In fact, I am using a copper shim with the RPi along with the KPx and swapped the thermal pads with the heatsink I bought for it for Thermal Grizzly pads I had left over from fitting a GPU water block awhile back.

      https://www.igorslab.de/en/waermeleitpasten-chart-2/2/ (Igor used to do the thermal paste testing for Tom’s Hardware before he broke off for his current YouTube and website testing).

    • #14222
      AJC
      Participant

      @elliottdesigns That is why with the JAB5, they do in their material say use only 6 or 8 Ohm loads, or you can bridge it to output 3 and 4 Ohm loads. In other words, if you are only pushing 4 Ohm loads, you can only use two channels with the JAB5. If you are only pushing 6 and 8 ohm loads, then you can have 3-4 channels.

      I have a tweeter that is run at 6 Ohm loads, a woofer running 8 Ohms, and a subwoofer running 4 Ohm loads. So, 2.1. I blew the chip on that board for the one driving the subwoofer channel. I have an old 8 inch 3 Ohm samsung “sub” that I had plugged in at the time I toasted that chip. But, that was toasted more due to inverting a signal on a GPIO feeding the amp chip rather than pulling too much on the chip. So a different type of stupid move. LOL.

      I still wish they would do more like ICE in reporting the 1% THD+Noise rather than the watts for 10%.

      Either way, in future builds, I will buy the amps and DSP separate to have more control on that aspect. It isn’t even saying the quality is bad on the device. Just that I now know better how to read the specs and would buy a different product better fitting my need.

    • #14223
      Elliott
      Participant

      @ajc9988 yeah, that’s why I’ll probably be getting 2x100w per channel amplification and then only using 2×50 of those watts. That way I know I’ll be below distortion 👍

    • #14224
      AJC
      Participant

      Oh, found another interesting DSP board. An ADAU1452 with an AD1938 codec chip (read 4xADC, 8xDAC; 192kHz, 24-bit; -94dB THD+N) for $59.42 plus shipping.

      https://www.aliexpress.com/item/1005002028126635.html?algo_pvid=09780f38-fc06-43d9-ad75-70906f657279&algo_exp_id=09780f38-fc06-43d9-ad75-70906f657279-1&pdp_ext_f=%7B%22sku_id%22%3A%2212000018461251555%22%7D

      What is cool with this is that this could do about what the Teensy 4.0 does, give or take. It’s a little weaker than the ADAU1466/67 chips, but not by a lot. If you add the Teensy+ADC/DAC costs, this becomes a viable alternative. And with 8 outputs, you could throw this inside a speaker without an issue and route it per driver. The two boards stack (like how the Dayton rebrand of Sure electronics adau1701 and ADC/DAC board stack), which can help for space constraints when used with a plate amp. Still have to buy the amplifier boards, but wanted to show an embedded solution I found. This price also assumes you have an USBi programmer from somewhere to interface for use with sigmastudio. Otherwise, I would buy the programmer other than from this listing.

      @ElliottDesigns – since we previously compared the Teensy and the ADAU1452/66/67, I figured this might interest you.

    • #14226
      AJC
      Participant

      https://dspconcepts.com/sites/default/files/pd8_beckmann.pdf

      Interesting powerpoint presentation comparing multiple Arm cortex, blackfin, and the Sharc ADSP-21489 (the one I showed made into a box). Even though they do not make it clear on many slides, when they are using number of cycles to complete the task, those slides are lower is better. The one I showed here is normalized performance. The RPi is a newer Cortex that has more performance than the A15 (hence why an RPi 4b is a potential candidate, at least in regard to FIR filtering).

      Just sharing it here as something to thumb through.

    • #14227
      AJC
      Participant

      Update:

      The JAB5 from Wondom (sure-electronics) only allows for the Master OR the Slave output and input spots to be used. You cannot use out and in at the same time. Because of that, if using the RPI, then you would need a master clock and to use the async connection with bclk and LRclk from the RPI.

      Another alternative is using the JAB5 as a slave and picking up one of the ADI based boards that can be a master to it. But, that also means whatever board you use has to have its own ADC, because you have to do the analog to digital on the master since it cannot send a signal from the JAB5 when in slave. So, ADC to master (RPI or an Analog Devices board) to JAB5 which has the DAC and amp.

      So, considering the cost of the amplifiers I would use if I didn’t buy the JAB5 would probably cost around $250 (the ICE ones I would consider I cannot find, but spec’ing out from sure, that would be a 750W@4Ohm single channel for the sub and a 2x750W@4Ohm dual channel amp for the 6Ohm and 8Ohm speaker drivers, with the 1% being above double the continuous/long term ratings of the drivers themselves, meaning even transient bursts would not tap out the SNR and the THD+N ratings; see https://store.sure-electronics.com/product/AA-AB32431 & https://store.sure-electronics.com/product/AA-AB31431 ).

      The ratings seem a bit overkill, but remember if you were buying off of the 1% THD+N rating instead of 10%, that would be 590W@4Ohm. Meanwhile, their offerings with lower than that didn’t have 99dB SNR. For comparison, the ICE 200AS2 has a 1% THD+N of 215W@4Ohm and 120W@8Ohm. That costs $165 for a sample and I haven’t found an alternative source to buying a sample ATM. But, I also do not trust Sure to be 100% accurate, so going so much larger is an assurance of low noise and harmonic distortion, where RMS of the drivers is around 1/4 to 1/3 of the 1% rating for the 2 channel board and the RMS of the sub being used is 1/4 of the power of the single channel amplifier. I possibly would go for the ICE if more easily available, but if the price is equivalent ($149 for the 2 channel, $100 for the 1 channel from Sure and $165 for the dual channel from ICE; and the 300W@4Ohm from ICE 300A1 costs $85, meaning the end costs to go with ICE or with Sure here are about equal), then either solution would likely be sufficient (note: if integrating into your own plate amp, the heatsink on the WONDOM boards for these particular amplifiers show in the pictures having 3 holes drilled into the heatsink; if that is there, then it is a matter of drilling the hole and screwing the heatsink tight to the aluminum housing where thermal paste should be placed between the two surfaces). But, I’ll save the $250 per speaker on amplifiers and instead upgrade these speakers in steps. First is better DSP board for each pair. Then the amplifiers, which may also require a better power supply to power them as they need 72V nominal for those specific amplifiers, not 36V which is what I have. That means possibly spending an extra couple hundred on that as well when upgrading the amplifiers.

      But thought I would give a heads up on finding that out on Master and slave.

    • #14239
      Elliott
      Participant

      @ajc9988 that’s good and all but to program these chips (unless it’s a wondom), you need a device called a usbi and these can be very expensive. Otherwise, yes it does look very compelling.

      On another note, I just found out that the teensy 4.0 can be safely overclocked to 1Ghz! When using a black pi heatsink though. But this is only 200Mhz off of double the clocks per cycle, nearly doubling the performance of the chip, which is insane! Although we are still limited to 16bit 44.1khz, but to be honest I’m happy with that. 16bit actually goes well beyond what we can hear at reference level, especially when room noise floors are considered. As for the 44.1khz, I have never actually heard a difference between that and even 192khz and that’s using my sennheisers and a 32bit DAC with 144db snr.

    • #14240
      AJC
      Participant

      @elliottdesigns – I thought I used to see those USBi emulator programmers for cheaper. But for that one, now I only see it for $35 or more. So I guess grabbing it bundled isn’t as bad as I thought (I used to see those for cheaper I thought). Chalk one up for getting it wrong. LOL.

      And you are right to point out that it is practically impossible, from tests from engineers decades ago, to determine above 44.1 or 48kHz. That is why they determined to use those rates as the standards. People can chase the dragon on lower distortion (which some have suggested it isn’t distortion that causes a bad listening experience) or lower noise to the point where there are diminishing gains.

      The teensy will be able to do the bulk of what anyone would need. Same with a raspberry pi. And the Teensy is already overclocked from the stock speed for a Cortex-M7, meaning at 1GHz, it is going double what was mentioned in the one comparison powerpoint that I had tagged. That would mean dividing the cycles to process in half because you doubled the cycles in a period.

    • #14241
      Elliott
      Participant

      @ajc9988 yikes you are lucky. Here is the UK, the cheapest I can find in terms of usbi is £100, with most being closer to 200-300!

      Yeah, and if using that code I mentioned a while ago, it means a total close to 40,000 taps 🤣

    • #14242
      AJC
      Participant
    • #14243
      Elliott
      Participant

      @ajc9988 I don’t even know what those last two are 😂. But yeah import taxes would be terrible from America but that AliExpress one should be fine. Good to know for any others that want to go that route here in England. I think I’ll stick to my teensy stuff though, I find it a lot easier to program than sigmastudio anyways.

    • #14244
      AJC
      Participant

      @elliottdesigns – The JTAG Emulator is for playing with the evaluation boards being cranked out by ADI. Basically, ADI creates evaluation boards to give people an idea of what can be done with their projects. But, they are complying with the JTAG standard for debugging, so that is its own can of worms (see Louis Rossmann videos for his destruction of JTAGs on Apple boards, lol). The last one in the edit for $100 looks like the wondom programmer, but is from ADI for evaluation purposes. Definitely would pass on that at that price, although the ADI one can connect both i2c and SPI, instead of wondom’s only connecting i2c IIRC.

      But I am glad that there are options for England.

      I am actually better with sigmastudio than traditional programming. I can do alright with programming, but I often forget one word here or a flag there and have to go back and redo it again and again. With sigmastudio, each thing dragged onto the program is a graphical representation of the module or code piece where you just input the information that would have to be manually changed for your scenario in traditional coding anyways. Because of that, it acts as a shorthand, at least for me, in laying out the program. But, different strokes. And I would not be able to use a graphical programming tool like sigmastudio but for the coders that coded each module and block that is graphically represented in the program.

      I mean, I can look at code and once in awhile find where I went wrong, but if it comes to a spacing issue, tabs versus spaces, or something like that, not always am I the best to find that. It’s like tracking down the error in the Python script that was basic and reformatted text files to then bring into other programs like REW to SigmaStudio. It still took me awhile to track down that error. With linux, I’m learning the syntax along with learning to check on what I need to change. I’m OK with it, just not as fast.

      Now, camilledsp seems fairly easy to do a multi-way crossover in the program, which is why I was going to do that with the RPi. Then I found out Wondom makes the JAB5 without being able to output and input at the same time with i2s. So, then comes the question of how to address it.

      My first thought is to get a second board that can act as a master and do piecemeal upgrades. My second thought is to just use what I have and design new plate amps at different price points with different features and build a replacement that can slap in sometime in the future. And then I started researching low distortion, low noise amplifier boards and power supplies and rectifier boards and input buffer boards, etc.

      But, I do agree, the Teensy and the RPi are great routes. I’d have to learn a bit more linux, but that is me, not them. Turns out I probably properly loaded the driver for the RPi and probably also did the device tree overlay properly. But because of JAB5 not allowing for in and out at the same time over the lanes I was using, I cannot know without buying a proper ADC/DAC HAT for it. After that part of it, the rest should be easy. I basically mirrored the pin assignments of the Hifi berry. I’ll repost links to the sources that helped me find out how to connect it and do the overlay as soon as I find which tabs I have it in on my browser (I’m a tab whore, leaving everything open; probably over 1000 tabs open in multiple browser windows).

      Edit:

      Here was one of the sources (but working on a DAC/ADC for a Jetson Nano or RPi):

      https://kentaromitsuyasu.medium.com/creating-an-audio-input-output-board-for-raspberry-pi-jetson-nano-pcm5102a-pcm1808-e3e6f3ad0834

       

      Detailed writeup of RPI music server with crossover:
      https://www.instructables.com/Raspberry-Pi-Music-Server-With-Built-in-Crossover-/

      Discussion of some commands to check things regarding i2s

      https://forum.digikey.com/t/raspberry-pi-i2s-driver-slave/13320

      discussion of Volumio and i2s options, including DACs and a master clock board with an ess sabre 9023 (DIYINHK)

      https://volumio.org/raspberry-pi-i2s-dac-sounds-so-good/

      Fast install for setting up modules needed and loading the drivers for the hifi-berry (with slight modification, this can be adapted to a number of devices, especially if the same pinout described above is used with pins 12, 35, 38, and 40).
      https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage

      https://bytesnbits.co.uk/raspberry-pi-i2s-sound-output/

      GPIO function chart, including showing ALTs for the pins
      https://elinux.org/RPi_BCM2835_GPIOs

      I know I am missing one other source that discussed the topic, but this is a good start for someone trying to pick up from here.

    • #14275
      nixem
      Participant

      @ajc9988 @elliottdesigns This is a good DSP thread. I’ll throw in something ive been looking at.

       

      I have been trying to understand SPI/i2c controls for sigmastudio and am having a hard time.

       

      I was thinking it would be cool to have an arduino or something simple be able to remotely control digital volume or source selection to the ADI board. Individually the arduino and ADI boards seems to be capable and easy enough for the novice, however, when you try to interface them is where I get lost. 

       

      Any idead or reading material to suggest?

       

    • #14278
      AJC
      Participant

      @nixem – So, can you tell me which board for Analog Devices Inc. chip is being used? I also forgot to include the link, but you have to do a loop in sigmastudio.

      If you look at this image, on the board I have, 0 and 1 equate to analog in, 4 and 5 are bluetooth in, with 0 and 4 being left and 1 and 5 being right (or vice versa). Now, 2 and 3 are digital in on Sdata_in_0, IIRC. I will look for the post from the sigmastudios wiki where they lay it out.

      In any case, what I was trying to do (before finding out that Sure Electronics/Wondom wired the JAB5 to ONLY allow digital out or digital in over the MISO/MOSI i2s lines, which would connect to the device similarly to the SPI rather than i2c, which is preferred because i2c is the slowest and on this board is reserved for comms with the micro-controller). So, if you were doing an out and inbound digital signal, that is how you do it, with digi0 and digi2 being left and right digital out, respectively.

      Now, if designing for a digital input, such as having a ADC on the arduino, then you would instead of looping simply output the digital signal from the arduino to the digital input on the dsp board, which then is input 2 or 3 or both, depending on how you are setting it up, then you design your schematic and exit through the digital out, with dig0 for left and dig2 for the right channel, sending that digital signal straight to the amplifier board you selected.

      Does that make more sense? As to showing which pins to connect to wire the boards together, I’d have to see the boards and familiarize myself with their inputs and outputs.

    • #14280
      nixem
      Participant

      @ajc9988  

       

      I have an adau1701 which I will be donating to a friend soon and I have an adau1467 on the way. I don’t have a microcontroller yet, just started looking into them. Sounds like Arduino, ESP32, or Teensy 4.0 would be good. I heard Arduino is most beginner friendly, but leaning towards Teensy 4.0. I do not have any experience programming microcontrollers. 

      Originally I was thinking the microcontroller to control the ADI board, so the microcontroller would tell the ADI board which input to use, it would only be controlling and not providing any audio input itsself. I wasn’t sure how this works, and it has been kinda hard figuring it out so far. Basically whatever a button or pot could do, the microcontroller would do. Ex. Volume, input selection, etc. I am hoping to be able to have an IR remote and change inputs or adjust volume.

      I stumbled across this: https://ez.analog.com//dsp/sigmadsp/f/discussions/67296/general-purpose-input-parameters-controlled-by-an-external-microcontroller

      Is this along the right track, kinda like a virtual GPIO where communication comes from i2c/SPI into ADI board but sees GPIO? Or is there some other way to achieve this?

       

      Thanks!

    • #14281
      nixem
      Participant

      @elliottdesigns

      Do you have any MATLAB/Simulink experience?

    • #14282
      AJC
      Participant

      @nixem

      Well, if written properly, the microcontroller won’t switch input, the ADI chip will. There are a couple ways to do this (if you do it wrong, then the audio will not be as loud). The easiest way is an input mixer, like in my examples above. It takes and mixes all signals into the mixer, then outputs the composite. It is like using the logical add function, as adding one signal (1) with another signal (0) still comes out to (1). But, this has a severe flaw: if a signal is coming in from both sources at the same time, you just mixed both sources together, resulting in a mess.

      The next way to do it is to create a muxer. With a muxer, you can put in a switch to go between sources. This can be triggered from either a GPIO or an Auxiliary ADC Input, or both.

      If I did this right (I’d have to double check because I do not currently have a reason to run the XOR logic in my designs), then when input comes from one source or the other, it should logically exclude the other input, meaning you can run it from a physical switch, rotary, etc., or you can run it from the GPIO, which is your stated purpose.

      That post seems to be the right track.

      Now, where to select the sdata input to be the gpio, I do not know.

      In this example, SData_0 or SData_1 (I forgot which is assigned to input 2) can be plugged in as one of the two sources for the logic Xor command. The input is the input from the external digital source. That does not mean it has to be i2s. Whether or not hooked up this way works, I do not know. And I currently am not able to test this. I probably could try, but since I’ve never done it, it could take a couple hours, could take a day or two (accounting for the nuance related to the specific JAB5 board I have).

      But, that is to start to get you thinking about the use of muxers and triggers. If you need a DC bias, there are ways to add that as well, but I did not cover that above (I’d have to go back and check sources to make sure it is correct).

      Also, the reason for my uncertainties is I threw the ADAU1467 in for this example, but I was not familiar with this specific chip in sigmastudio. As such, I could not find under the hardware tab which sub-tab contained the information needed regarding setting an external source to be a specific GPIO. That doesn’t mean it isn’t possible, just that I have not found it yet.

      Does that help?

      Also, if you set a muxer up wrong, it will effect the output volume negatively. So compare with a mixer for sanity check, then look for if your implementation is incorrect.

      There are also GPIO conditioning tools to familiarize yourself with.

      Sorry if not the perfect answer, but I do hope this helps to move along your implementation.

    • #14283
      AJC
      Participant

      @nixem – Unfortunately, I do not have experience with either. I’ll have to learn a little matlab at some point, but I’ve been pushing that off.

      edit:

      Here is an example of how Wondom did their logical switching for XOR for GPIO input, also using a DC bias, a multiplier, and many mux operations to select whether the signal is for the left or for the right.

      If you are not used to hierarchy boards being used, here is this:

      That is the baseline JAB5 program but without using hierarchy boards as Wondom did. In this way, you ca better see where the XOR operation is and what is feeding the mux operations. You can also see them using AUX ADC for a moving bandpass for each channel. Then you can see the mixers, including where they mixed the left and right channel before sending the signal forward. UGH! I mean, really? Fine if doing mono, but they took the time to design a logical left/right circuit to determine output. Why mix the signal? But, I digress.

       

      And by multiplying, if a signal is not coming from the left, you multiply by 0, thereby getting 0, and vice versa. So, this is why you use multiply for some parts. I would recommend using the shift+F1 often when looking at what each toolbox item does. By highlighting the unit and clicking that, it brings you to the wiki webpage. You then drill down the links for the toolbox to read up on how the function works.

    • #14284
      Elliott
      Participant

      @nixem MATLAB, yes, I’ve learned some through my engineering course at university

    • #14298
      nixem
      Participant

      @ajc9988 I need to digest this and play in SigmaStudio more. Thanks!

    • #14299
      nixem
      Participant

      @elliottdesigns @ajc9988

      Have y’all used the Teensy 4.0 as USBi for the ADI boards?

    • #14300
      Elliott
      Participant

      @nixem didn’t even know that was an option 🤣

    • #14301
      nixem
      Participant
    • #14302
      Elliott
      Participant

      @ajc9988 In regards to the post at this time and date: 19/09/2021 2:38 pm

      I don’t really like the built in crossovers due to the limitation of not being able to do both linear phase and having a flat response (as far as I am aware), that is why I put my crossovers in rePhase when doing my FIR filters for convolution.

    • #14303
      Elliott
      Participant

      Seems like a great solution and should work great! 👍

    • #14304
      nixem
      Participant

      @elliottdesigns @ajc9988

      If I understand correctly, by interfacing the Teensy 4.0, it can provide USBi as well as live controls. Ex, volume, source selection, touch display, loudness, etc. 

      Basically $20 microcontroller with $40 adau1467, full powerful core. Could make it a preamp, DAC, dsp, whatever. With remote, switches, display, etc.

    • #14305
      AJC
      Participant

      @nixem – I have not, but I can say I am familiar with the concept. I started there when wanting to interface the RPI with the JAB5 from Wondom which has an adau1701 on it.

      But, I also noticed that Wondom uses only the i2C connections on their board to interface with the microcontroller, rather than taking up the pins for SPI and I2C. Instead, the SPI on their board is reserved for the MISO and MOSI (Master I/O, Slave I/O, with it telling you the direction in the name) between master and slave boards, using I2S over SPI.

      So, although familiar, because of a limitation of how Wondom made the boards, it could only do input from the MISO or output through the MOSI, but not both at the same time. But I can complain some other time about that. No ragretz! lol

      As to sigmastudio, one of the ways I learned was taking the base file for my device from Wondom (in case you flash a non-working, for you to flash to), then to walk myself through each thing they did, meaning open a blank file and try to replicate it. That taught me how to do hierarchy boards, etc. I then started taking out what I didn’t need, because it would be used in the left or the right, not both. That saved on instructions allowing for more FIR taps. Then I played with the autoEQ, which then required learning how to import the readings from REW and convert those to read correctly in SigmaStudio.

      That means, for learning, I just recommend replication, reading in the wiki, and thinking up cool things you want to do with it.

    • #14306
      Elliott
      Participant

      @nixem Yeah, sounds pretty cool, but since I’m personally going multichannel and multiroom with my speakers, I’m doing processing on a per speaker basis, and therefore just need the teensy.

    • #14307
      AJC
      Participant
      Posted by: @nixem

      @elliottdesigns @ajc9988

      If I understand correctly, by interfacing the Teensy 4.0, it can provide USBi as well as live controls. Ex, volume, source selection, touch display, loudness, etc. 

      Basically $20 microcontroller with $40 adau1467, full powerful core. Could make it a preamp, DAC, dsp, whatever. With remote, switches, display, etc.

      What are you using for the ADC on the $40 ADAU1467 board? The core board would need the ADC to input to it. Or are you using the microcontroller as a master?

    • #14309
      AJC
      Participant
    • #14310
      nixem
      Participant

      @ajc9988 

       

      I actually don’t have any analog sources. 

      You could pick up a nihtila ADC AK5572 if you needed analog in, or something else.

      I would not want to use the microcontroller for anything except control, so inputs would be direct to the ADI board and audio flow would be only through the ADI board. Would prefer to keep 48k/24bit or higher with digital volume control, just a personal preference. 

      I haven’t messed with the microcontroller portion, or tinkered with the programming. For myself, I may just keep it simple and do ddrc-24 -i2s> adau1467 -i2s> ma12070p. I am working on an active 3-way.

      The microcontroller portion may be more of a side / 2nd project for me. It would be neat to do a more stand alone all in one control system for less $ and more features than minidsp. There is enough i2s to have whatever audio I/O you could want, and those microcontrollers with ADI boards are powerful.

      Edit: adau1467 has spdif pinouts I think.

    • #14411
      Elliott
      Participant

      I’ve given up on the programs for FIR convolution for my teensy that I find on GitHub. So now I’m just going minimum phase biquads. Let’s hope I can at least get those working. Soldered up the board and I am happy to say I do get an output with the 7 band parametric that comes on the audio board. I am getting a lot of noise from somewhere though which I’ll have to look into, the minimum SNR from the components used is 85db, so at the volumes I was giving it a test at should have made the noise inaudible, but I’ll look into it 😉

    • #14428
      AJC
      Participant

      @elliottdesigns – Sorry to hear about the issues regarding the GitHub files for implementation. I’ve been busy doing FEA on bracing, constrained layer damping, and insulation. Looking over the numbers I’ve seen to date, Laurie Fincham was absolutely correct, insulation is king, followed by constrained layer damping, and then bracing itself. Also, how it is braced can definitely impact the resonance of the enclosure. My studies to date, using a constrained 24(width)x48in (height) board (3/4″), have included 1-4 vertical braces, 1-8 horizontal braces, 1-2 vertical braces combined with 1-4 vertical braces, constrained layer damping with 1/4″ and 3/4″ sheets (and the inverse for which side the pressure is acting upon), CLD with 1/2″ on both sides, 3/4″ both sides, and 3/8″ both sides with 1/4″ rubber mat in between the two layers. Then I have run the 2″ rockwool and 1″ rockwool simulations.

      All of this, except for the front baffle design, means I may step down to 1/2″ for the enclosure, change the bracing design, then use 1″ rockwool in the sub chamber, then change the bracing slightly of the upper chamber and keep the 2″ planned for there.

      I still have studies to do on Dacron (PET) and a couple other common insulation materials.

      Also, the cheaper pre-made DSPs from China could really make it worth it to consider, although there is a cost. And if a person wanted, they could do 3-4 out that could connect to the other speaker and have one master speaker and the other slave, driven by the same DSP (Splitting the $150 among 2 speakers is $75, as an example).

      In any case, good to see you making headway, even if not working out as you have planned.

    • #14430
      Elliott
      Participant

      @ajc9988 That’s really interesting about the damping. Have you had a look to see what different materials do to different frequencies (e.g. rockwool being better for low frequencies for example), or even the performance of different fillers. I’m interested to know because I have a bunch of long haired sheep’s wool since my dog’s raw food always comes wrapped in the stuff as a thermal insulator. I’m particularly interested since I’m designing a quarter wave transmission line for my GRS 8sw-4 since the driver has such a high QTS, and damping is crucial in the way such an enclosure performs. In my design there’s a small section of line (at the opposite end to the opening and before the driver) that has to be totally filled with absorption to work correctly, stopping higher harmonics in their tracks and allowing the drivers excursion to be massively lowered with even more output. Not entirely sure how stuffing can do so much but that’s what hornresp said. So, effectively, I need the most effective absorber I can find! (Or combination of absorbers for the matter)

    • #14431
      AJC
      Participant
      Posted by: @elliottdesigns

      @ajc9988 That’s really interesting about the damping. Have you had a look to see what different materials do to different frequencies (e.g. rockwool being better for low frequencies for example), or even the performance of different fillers. I’m interested to know because I have a bunch of long haired sheep’s wool since my dog’s raw food always comes wrapped in the stuff as a thermal insulator. I’m particularly interested since I’m designing a quarter wave transmission line for my GRS 8sw-4 since the driver has such a high QTS, and damping is crucial in the way such an enclosure performs. In my design there’s a small section of line (at the opposite end to the opening and before the driver) that has to be totally filled with absorption to work correctly, stopping higher harmonics in their tracks and allowing the drivers excursion to be massively lowered with even more output. Not entirely sure how stuffing can do so much but that’s what hornresp said. So, effectively, I need the most effective absorber I can find! (Or combination of absorbers for the matter)

      I have not yet. What my assumption was using 0.5% critical damping (1% structural, approximately), constraining the edges in a structural position, then applying pressure over the whole on the one side (assuming in the system, you would have the internal and external air pressure cancel out as vectors, thereby simplifying the model at the moment). This also does not take into account the sinusoidal nature of the speaker’s pressure, at the moment, where you only get that high a pressure in peaks, then a vacuum to pull air back in in a vented enclosure, meaning you will have swings in pressure acting upon the bracing and insulation (although the spring sinusoidal analysis of this type is always present for the type of analysis being done; I’m doing a crap job of explaining the limits of my current modeling). I’m saving the more complex modeling for later, instead just examining frequency vs mode and frequency vs displacement to understand which modes have the largest effect on certain designs.

      This is the current design I showed using roughly similar assumptions. I know I can do better than that.

      I can look for material properties for long haired sheep’s wool, and can say that it has been used in speakers before for damping. But until I find the physical properties to estimate it’s behavior, I cannot yet give a clear answer.

      Edit: I also have some restrictions on rotational behaviors, etc., currently being used. I’ll update the modeling later, as I’ve learned a fair amount about FEA modeling since running that first simulation on my speaker design. So the actual behavior may differ down the road as I change the conditions of the model.

       

      Edit 2: I am also using 20 Pascal, which is 120dB, which is 0.0029007548 psi.

    • #14432
      nixem
      Participant

      @ajc9988 

       

      This is really interesting!!

      Lately I have been looking at foam board – dampening adhesive – 1/4″ plywood, with possible bracing. I vaguely recall something from Tech Ingredients about certain dimensional ratios, maybe 3/5ths, I think 2-3 iterations of 3/5ths bracing would be interesting. I have no idea if any of this would actually work or be better, the idea just sounds good to me.

      Keep us updated on what all you learn!

    • #14433
      nixem
      Participant

      @ajc9988

      Melamine (magic eraser sponge) foam would be interesting too, not sure if it’s easier to simulate.

    • #14434
      AJC
      Participant

      @nixem – If you can give me the information for the material to be modeled, such as the behavior (isotropic, etc.), Young’s Modulus, Poisson’s Ratio, Shear Modulus, density, I should be able to do something. Nice to haves are Yield strength and tensile strength, but no necessary, so to speak.

      So it is a question of tracking down the material’s properties. If you have those where it can be inputted, then it can be modeled.

    • #14435
      nixem
      Participant

       

      @ajc9988 

      *Hard for me to paste on my phone, I’ll try to edit it later.

      Edit: trying to fix links

       

       

      This is what I have found, I’ll try to find more parameters when possible:

      See page 3/6: 

      https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.704.8096&rep=rep1&type=pdf

       

       

      Not sure if this is helpful, I am not an engineer.

      Click to access 145050898.pdf

      Click to access JRD08.pdf

       

      It’s hard for me to interpret, but are people having a hard time getting Young’s modulus of melamine foam?

    • #14436
      AJC
      Participant

      @nixem – You’ll have to give me some time to run the model. That first source seems to have what I need, from a cursory glance.

      I have been using primarily a mesh size of 0.5″, which is good to about 1kHz. To model for 20kHz, the mesh size needs to be 1/10th of that, and that will push the edge of my system on ram and storage needed to model (depending how high the modal analysis is pushed due to the insulating nature of the material). Now, if you want to buy me more ram or another larger SSD…

      But, in all seriousness, I’ll see what I can do and how many TB that model will take. So far, the most I’ve seen a model take is a couple TB on my 8TB HDD (so, yes, a little slower due to spinning rust instead of SSD). And this workstation only has 32GB of ram, so guaranteed to take up more than I have in ram. CPU is fine (8 core Intel 10700KF overclocked to 5.2GHz all core, 5.1 for AVX workloads), especially for the serial portions of some of these calculations. I just need more ram and more storage (and I’ll take a newer GPU, if anyone feels like granting a wish these days, lol).

      I’ll make more of an effort to look around in the next little bit.

      Question: How thick are you wanting this material to be?

    • #14437
      nixem
      Participant

      @ajc9988 

       

      You don’t have to model it for me, but I really appreciate it!

       

      I was just throwing something interesting into the mix. Melamine foam I’m talking about are those cheap cleaning pads, you can get a 50 pack for $13 on Amazon, dimensions around 10cm x 6cm x 2cm each. 

       

      Just throwing out ideas of cheap things that might work well that I’ve seen other people use.

       

    • #14438
      AJC
      Participant

      @nixem – so about 2cm. I may give it a go sometime in the near future.

    • #14439
      Elliott
      Participant

      @ajc9988 Just got 17920 taps processing on my teensy! It works! Also, it’s a ram limitation, it’s only taking 6% CPU usage! Insane! And to think people spend £220 on a miniDSP 2×4 hd when it can only handle 4096 taps. What a rip off 😂

    • #14440
      Elliott
      Participant

      Also if running minimum phase rather than linear. It’s less than 20ms of processing time, if I remember correctly it might even be less than 10!

    • #14441
      AJC
      Participant

      @elliottdesigns – Nice! looks like you just need to work on the memory now. Did you buy with the extra chip to solder on? IIRC, the teensy has where you have that blank memory spot where you can solder one of two types of memory. Just trying to see if you can increase the memory slightly, thereby potentially going even farther.

    • #14442
      Elliott
      Participant

      @ajc9988 nah, I won’t risk it, not only are the surface mounted components too miniscule for me to attempt to desolder them, I have no reflow plate or oven

    • #14443
      Elliott
      Participant

      @ajc9988 Anyways 17920 taps is plenty enough for me. You can get very detailed EQ in the bass region which is really quite uncommon in the commercial market (as far as I’m aware). I’ll probably then use Biquads for the high pass and low pass so I can use it to make my two way, and then correct for the crossover phase with the FIR convolution, that way I don’t have to reprogram it to work with 2 different lists of filters, one for left, the other for the right. Not only would that be a real pain to code, but I’d be left with 8960 taps for room correction and a crossover slope, which isn’t quite enough for the accuracy I want, especially with the bass region

    • #14444
      Elliott
      Participant

      @ajc9988 as for your simulation, I imagine 1khz is more than enough for a sealed box because I very much doubt anything above that not being damped by the MDF. But for things like transmission lines, a smaller mesh size could be very useful!

    • #14445
      AJC
      Participant

      @elliottdesigns – oddly enough, for the setup I did for linear (sorry, the software being used doesn’t have nonlinear analyses components and I don’t currently have access to some that do, although I maybe can convince someone at some point down the road to allow me to use their resources), it was using insulation that pushed the first mode above 1,500Hz with 1″ rockwool, and 2500 for 2″. Note, I probably needed to adjust the critical and structural damping on those runs, which I did not, meaning that the accuracy is in question, instead I had done the same to see apples to apples for the other runs, whereas looking up melamine put the damping coefficient at 0.1, instead of what I have been using, so just want to premise that the numbers are wrong, even though the trend is correct.

      As such, insulation just is so far above plain MDF or using constrained layer damping (As said, I’ve been using the same value, which for structural MDF, should be approximately the same for MDF in CLD, although it didn’t account for the damping coefficient of the rubber mat put between the layers, even though it does factor in the physical properties otherwise of the rubber mat in elasticity, etc., showing a large reduction in displacement under pressure and driving higher the frequency to mode).

    • #14449
      AJC
      Participant

      @nixem – The results are bad. They are about the same as one vertical brace (which is less than horizontal). I haven’t tried it in conjunction, which one vert and one hor brace is the same as roughly 5-6 horizontal braces meeting certain criteria.

      Personally, I would not use the melamine. It just isn’t as promising as others out there. I am trying PET next.

    • #14450
      nixem
      Participant

      @ajc9988 

      Interesting! I wonder if it or other open foams do better for higher frequencies.

      Is the PET you are using like the Dacron polyester fabric fiber for upholstery?

    • #14451
      AJC
      Participant

      @nixem – yes. So it should be like Dacron, polyester varieties, etc.

    • #14452
      AJC
      Participant

      @nixem – That is Dacron/PET/Polyester types material. At 0.0003in displacement compared to 0.016 from the Melanine, and with a way higher starting frequency around 621Hz compared to 116Hz for Melanine, and with that only being half an inch of Dacron, I’d say do dacron/polyester before trying with the foam. It is already decently cheap.

    • #14461
      nixem
      Participant

      @ajc9988 

       

      Do you think two 1/8″ tempered hardboard panels laminated with a dampening adhesive would be any good, then add bracing/Dacron? Trying to think of ways to increase cabinet volume by reducing thickness but keep resonance/dampening reasonable.

    • #14462
      AJC
      Participant

      @nixem – From my tests to date, Insulation > CLD (which is what a dampening layer or adhesive between two panels is) > bracing.

      I’m on that same mission, now running simulations on 1/2″ (12mm) boards instead of 3/4″ (18mm) which is where I first started, that way to reduce weight (and cost).

      So, first thing is pick an insulation. Whether that is mineral wool or denim or polyester/dacron, how those perform is well known for acoustic properties. Certain foams help (melamine doesn’t seem to be that great). Wool used to be more common, though synthetics are found a lot more in speakers now.

      After you pick the insulation, you then can reduce how much bracing you do as the insulation absorbs the pressure from the drivers better than the bracing reduces the displacement, so you already would be far ahead just by using even 1/2″ (12mm) dacron for furniture. Then do cross bracing (meaning vertical and horizontal across the plane, I’m currently running models on the effects of braces running to the opposing walls) about 2″ toward the center (or less if you have to due to size).

      If you have a reason to do the CLD with a viscoelastic adhesive, then do it. It is much better than bracing, but is less than insulation.

      You can reduce bracing, though, just on the performance of the insulation alone. So, first decide on the insulation and the thickness of said insulation. Then, move onto bracing. If you have a reason to use CLD, like absorbing tons more energy not captured by the insulation due to frequency or something like that (sub-100Hz), then doing that is fine.

    • #14463
      AJC
      Participant

      @nixem – yes. When looking up Dacron, it gave me PET, so I plugged those numbers in. When I next looked up polyester, it pointed to PET being a large variety of polyester now used, so I didn’t do a separate polyester run. As such, I group Dacron with PET and Polyester with PET. And it did perform well in the FEA. Further, it looks like what was used with the acclaimed subwoofer from monoprice, the THX one. It has been used for decades in the loudspeaker industry, so is a safe and cheap bet.

    • #14464
      nixem
      Participant

      @elliottdesigns 

      Do you have experience with adding an IR remote to the Teensy? Or, how are you controlling it?

    • #14465
      nixem
      Participant

      @ajc9988 

      Man, this will be super interesting, keep us updated!!

    • #14466
      Elliott
      Participant

      @nixem I’m programming it through usb and then running it off of usb power. It doesn’t need to be controlled after that since the profile has been applied and it’s just a processor, the main volume will be controlled using the device outputting the audio, the teensy just processes it and passes it through.

    • #14471
      nixem
      Participant

      @elliottdesigns @ajc9988

       

      Just thought I would share.

       

      The first half of this video about audio is interesting.

       

      This one is also interesting.

       

    • #14937
      nixem
      Participant

      @ajc9988 

       

      Hey, not sure if you saw Tech Ingredients – Anechoic Chamber – DIY Sound Absorption Panels on youtube, but roxul / stone wool insulation might be worth a go. 

       

      I wonder if those rock wool starter cubes for planting would be any good. They are super cheap and would be easy for DIY.

       

      $6.99

       

    • #14938
      tvor-ceasar
      Moderator

      @nixem if you want to see a really good demonstration of just how effective it is, check out the build videos that PS Audio is putting up about the new home of Octave Records studio. Paul takes you into some of the rooms that are fully insulated and the way his voice changes is astounding.

    • #14939
      AJC
      Participant

      @nixem – Although I have seen from them, I would point toward a couple other resources on information on insulation materials and would recommend getting other than $7 per sq. ft.

      Insulation changes a LOT. Especially in the modeling of box absorption (Qa). Absorption losses being accounted for in winISD, BassBoxPro, and Unibox suggests that anywhere from a Qa = 20 for lining all walls with insulation to a Qa =5 for heavily stuffed means you can then go between 10-25% more wattage before Xmax, depending on the driver (some, due to suspension, etc., gain less).

      Because of that, and because I have more size in my room than sense, I intend on using 2″ insulation on all walls and splitting it to glue to glue to braces spanning the center.

      ATS Acoustics is one of the few places to easily find insulation for this purpose.
      https://www.atsacoustics.com/cat–Fiberglass-and-Mineral-Wool-Batts-and-Boards–106.html

      Specifically the 2″ denim and the Roxul 60, which has equivalents out there.

      https://www.atsacoustics.com/recycled-cotton-batts.html

      https://www.atsacoustics.com/item–Roxul-Rockboard-60-Case-of-6–RB60.html

      Now, if you really had more room than sense, I would actually recommend the cotton 3.5″ batts from Lowe’s. This will basically even be effective tested down to 125Hz, nearly fully.

      https://www.lowes.com/pd/UltraTouch-R-13-Recycled-Denim-Batt-Insulation-with-Sound-Barrier-15-in-W-x-93-in-L/3731875

      Here is a good resource on different types of materials on the market and their acoustic coefficients

      http://www.bobgolds.com/AbsorptionCoefficients.htm

      But, remember, Polyester is fairly transparent. Sure, it helps, and you can get it in 2″ versions, but at some point, you may just go denim or rockwool.

      https://fabricwarehouse.com/2-inch-upholstery-batting-poly-2-inch-loft-30-w-2-oz-extra-extra-dense?sku=DACRON2MAX10yp

    • #14940
      nixem
      Participant

      @ajc9988 

       

      Is denim / rock wool ever used inside a speaker?

    • #14941
      nixem
      Participant

      @ajc9988

       

      Do you know of an easy way to identify i2s signals (SCK, WS, SD, etc) without any schematic or reference identifiers?

       

    • #14942
      nixem
      Participant

      @ajc9988

       

      Or do you have any suggestions on an inexpensive 4 channel scope?

       

    • #14943
      AJC
      Participant

      @nixem – First, yes, insulation is used in speakers. Polyester/Dacron/PET is more common (up to 1″), but you can use different thicknesses and materials and that does effect how well it works.

      As to identifying without a schematic or reference, no good recommendation. For a 4-channel scope, maybe check out these recommendations:

       

      edit:

      Also, if you want 48″x24″x2″ x 6 panels, here is another vendor: https://www.acoustimac.com/acoustic-insulation-materials/acoustic-insulation/mineral-wool-acoustic-insulation/roxul-rb6-2in

    • #14946
      tvor-ceasar
      Moderator

      You can also get it at Home Depot. Check your local store online. Not sure what rating it is, but it’s there.

    • #14950
      AJC
      Participant

      @tvor-ceasar – yeah, my local HD has to special order for the 3.5″ denim, and it is a sizeable order of like $700-800. Then there are the 5.5″ at Lowes and HD, both of which, for me, have to special order.

      Or can they order the 2″ version? Because 2″ is about as big as I can go. I’ve worked out the math and to do 5.5 cu. ft. box, it is around 10.25 cu. ft. after using 2″ insulation to line everything. I made a comment to a guy on here which had the (Edited driver) SI HS-24 driver in a 14 cu. ft. box which was huge. Turns out, I’m planning on doing something not that much smaller for a 12″. When I realized that, it made me think about some things. Then I decided to move forward with 2″ insulation lined sub compartment anyways. YOLO

    • #24248
      AJC
      Participant

      So, I am adding pictures of the layouts of the variations on firmware putout by Dayton Audio for the JAB5 (KABD-4100).

      This includes the standard firmware without hierarchies so people can trace what is actually happening. Now, the part I disagree with most on the default is using a L/R mixer, which then makes the signal mono. But, I’ll talk more later if there is interest.

    • #24834
      AJC
      Participant

      Here is my current documentation and the schematics for the 3-way and 2-way. @elliottdesigns , I still need to add your youtube videos to the FIR filter discussion. Turns out 15 PEQ and 480 taps for phase correction is what it can do.
      @123toid , wanted some feedback on the guide I wrote up yesterday. Same with you elliott, @tvor-ceasar , and anyone else that cares to look it over.

      • #24841
        Elliott
        Participant

        I only just saw it now, I put a couple of comments under the original guide you wrote. I’ll see if I can think of anything else 👍

      • #24842
        Elliott
        Participant

        Flipping awesome guide! If I remember rightly, there’s a way to integrate loudness into these boards? Perhaps an offshoot in the schematic with a switch to bypass or not could include this? I think it could be super useful. Although, maybe that should be done as a separate document (or maybe I could do a video on it), as standard implementation is based on old Fletcher Munson curves, whereas it was found out more recently that we hardly need any super high frequency compensation, it’s mostly all about the bass and sub-bass regions. I’d need to figure it out though, it would have to be done with average volume triggers and some kind of prescaler that the user inputs based on the playback volume of a -12dB pink noise signal in their room (a reference volume offset). Nevertheless, I digress yet again… A short comment on how it’s probably best to use a linkwitz Riley crossover over the others since it’s linear in volume level (sums to flat). It also seems like delay is configured in samples, I doubt many people know how to convert s or ms into a number of samples. Not really common knowledge, so maybe a table on how to convert based on sample rate used. I’m not even sure an infrasonic filter is useful on these chips, accuracy of filters starts to decline even below 200Hz on these adau1701s, simply doesn’t seem to be enough processing power for it. I presume it making the filters less accurate is its way of dealing with that. That’s been my experience with the miniDSP non-HD anyways, and that has the same chip. For rePhase, recommendation for setting to 44.1khz rate for best use of the limited samples. As well as limiting optimisation to a -40dB noise floor, and only using the fully parametric phase and filters linearisation tabs so taps aren’t wasted on gain changes, just fixing the minimum phase of filters already applied. I think that’s all it for now. Really professional document, and a job well done!

      • #24843
        AJC
        Participant

        Thank you for the excellent feedback. I went for a casual read with lots of images. I was going to wait until I played with it for my projects, but those were taking too long and I wanted to get it out. Plus it snowed yesterday, so I used my time constructively and created a document.

        For the sample and ms conversion, I forgot to mention which elements on the schematic can change what the input is by clicking on it. If you click on samples, it switches to ms. So I will need to put that in.

        And explaining the benefits of LR filters does need done and I can link over to Linkwitz’s page where he discusses filters for the citation.

        As to the infrasonic filter/excursion filter, the important part isn’t whether or not it accurately causes the fall, it is about whether it can prevent it from reaching X-Max in normal listening and prevent extraneous distortion. Even if you have to set it higher than the target frequency, the main goal is to get it headed down to prevent those events from occurring. But I do need to explain that better. I can also mention if a person prefers, they can save the instructions and remove those, then add an L-pad or make their own analog filter with components, thereby assuring the filtering of those frequencies from the signal chain and adding back more instructions to dedicate to the FIR filter.

        The suggestion to go to -40 I’ll check out. At that point, it may cause some songs that have quiet intros to stay muted as those sounds build. But I won’t know until I test it. There’s a couple songs I can think to test it out with. One is the rolling thunder in The Thunder Rolls by Garth Brooks. There’s also a couple songs I can’t remember that have that in their intro during the first 30 seconds or so. Just have to check to make sure it won’t trigger during that and other than that, good suggestion.

        For the sample rate, I should have a breakout section on that to explain where, in each of the programs, that is at and how to match them. That way there is no way someone will be confused by that and also so people can go to 44.1kHz easily to get the extra instructions.

        Once again, thank you for the kind words and the notes on the document.

      • #24846
        Elliott
        Participant

        The -40 was just for the noise floor of the optimisation filter in rePhase, it takes everything that would have been used and reapplies it above -40. Helps spread the number of taps further

      • #24847
        Elliott
        Participant

        Also, it’s not about the extra instructions. It’s the fact that at a lower sampling rate, each sample represents a longer amount of time. So a small amount of samples can more easily represent lower frequencies inside of rePhase, I quickly went over that in my Linear Phase EQ Pt2: rePhase tutorial.

      • #24848
        AJC
        Participant

        For sigmastudio, though, it all comes down to instructions per cycle. You have fixed amounts of instructions that you can feed, mostly dictated by the size of memory, but also limited to the IPC/IPS of the ADAU1701 chip itself. At a lower sampling rate, it actually uses fewer instructions available for the chip in sigmastudio. And every saving of instructions there means more coefficients may be possible.

        I also glossed over the fact that implementation of IIR filters can shift time alignment done through the sine-sweep method of impulse response. That is also why I recommend the time alignment between drivers before PEQs are applied. I left links to an article on the topic in a footnote, but that is a little easter egg if you care to read them.

        But for the -40, good to know that was for rephase, not the signal detect / mute function.

    • #24849
      tvor-ceasar
      Moderator

      Aw man, you’re going to have to give me some time to get into this-office move is next week and I’m still packing up in addition to keeping the field crew(s) going and info flowing through the office, plus internal IT. Not to mention home life and 2nd job.

      • #24851
        AJC
        Participant

        Don’t worry, take your time. If I have a new version for the guide, I’ll post it in the interim. Not asking for you to put yourself thin, of course.

    • #24878
      AJC
      Participant

      @elliottdesigns – So, here is a comparison of memory requirements for extended depth bi-quads as compared to FIR filters with single precision with 10,000 to the sub, then 5,000 each to the mids and tweeter. Just thought you would be interested in understanding the difference in required instructions size and difference in memory requirements. It shows why PEQs are still used, because you can offload the massive lift to PEQ filters, then fix up the linear phase after the fact with FIR. But you want the majority of the heavy lifting to be done before a FIR filter to try to make its work easier.

      • #24882
        Elliott
        Participant

        Yep! That’s what I was suggesting in my previous comments! Do PEQ stuff for the minimum phase EQ and crossovers. Fix crossover and minimum phase PEQ to linear, using phase only FIRs to fix the phase. Not ideal since PEQ can be inaccurate in low frequencies depending on how they’re implemented, but definitely a great compromise to make.

      • #24906
        AJC
        Participant

        So here is the next iteration of the Sharc schematic (this time designed in the Block Schematic area which has many more selections for modules), along with the compiling with the new compiler in CrossCore Embedded Studio 2.11, which is a much newer version of the compiler implementation that gave an extra 100 taps for the FIR filter.

        Next I need to implement compressors for the RMS compressor and the peak compressor/limiter.

        I also need to research more how to do adjustable gain depending on dB level to get it where it adjusts to more closely match perceptual hearing for volume. That is where things get interesting.

      • #25082
        giant
        Participant

        which processor goes beyond 20000 taps?

    • #24914
      AJC
      Participant

      <div>So, here are a couple examples of AGC designs that can be implemented in SigmaStudio.</div><div>

      One issue with AGC (automatic gain control) is that after you have compressed and/or added gain, you also add gain to the noise floor, meaning that you would also need to add a noise filter in addition to the AGC in order to then remove or cancel out the noise that is more audible after implementation. But, if you add an AGC to your project, you shouldn’t need an RMS limiter nor the peak compressor as the AGC should be set so you don’t go passed a certain point on power to your drivers.

      Research continues.

      </div>

    • #24921
      AJC
      Participant

      @elliottdesigns – so what do you think of this design:
      edit: I also decided to use the fourth out to route into the second analog in. I then use this signal merged with the signal for the trigger of the noise gate. I also use this signal, then subtract from it the signal just passed the volume soft limiter. That, in theory, should pick up the noise in the chain aside from that which was already gated. So deleting the second input signal from the output signal should allow for identifying the noise from the DAC, etc. I then take the noise sample, invert the phase, then add that to the signal to then act as negating the noise beyond that point. Adding the inverse should, in theory, negate the noise level. Is it needed, probably not, but if doing a merger for the external source to trigger the noise gate, might as well see if that further cancels out the noise. In theory, subtracting would do roughly the same as adding the inverse.

      Sources: https://ez.analog.com/dsp/sigmadsp/f/discussions/67392/creating-a-noise-gate-in-sigmastudio/206699

      https://ez.analog.com/dsp/sigmadsp/f/q-a/65611/limiter-with-zero-attach-time

      I had to modify the limiter model due to what modules are available with Sharc. I also used a soft clip instead of a hard clip in the limiter circuit, which in theory should give better performance for audio.

      https://ez.analog.com/dsp/sigmadsp/f/q-a/65078/automatically-selecting-active-audio-source-in-adau1452/149014

      That is the signal detect block.

      • #24938
        Elliott
        Participant

        Looks good to me, but a lot of this signal analysis goes over my head. I saw you were doing some stuff to do with dBFS, so figured I’d talk a bit about what I learned about loudness. So I’m adding that post on the forum now. Figured I should do it at some point or another.

        But yeah, you’re stuff seems great!

    • #25065
      giant
      Participant

      Dear friends, in accordance with your advices I finally bought a Chinese card based on the ADSP 21489 SHARC processor. All OK, no problem at the moment even with sigmastudio. The only big problem I have is that of the factory-set 96K sampling rate while it would be convenient for me to have it set at 48K. I’ve been looking for a solution on the internet for several weeks, but nothing. Obviously, as an enthusiast, I don’t have the knowledge to correctly use CrossCore embedd and flash the card. Can anyone here help me?

      • #25100
        AJC
        Participant

        First, crosscore embedded studio is for deeper programming for custom works. You would need it to implement, for example, Dirac.

        Depending on the model, you can flash it with sigmastudio using the link/compile/download. It will erase use with any aftermarket software like that which came with my device, but if that is not a worry, then it should be fine.

        I’ve been holding off flashing my custom firmware to date, but I will do it after I wake up some more today.

        Where to change the sample rate is found at the top of sigmastudio. But, when it asks you to update the algorithms, do it, because they are tuned to the sample rate.

      • #25129
        giant
        Participant

        In sigmastudio you can change the sample rate of the project not that of the card that will continue to work with the sample rate set by default. in fact, it is absolutely necessary not to set a sample rate in sigmastudio different from the one set in the processor.

      • #25150
        AJC
        Participant

        What do you mean by this? When you set it in sigmastudio, then click link-compile, you then have to export the schematic. That then is used with cygwin to make the file that is incorporated into your application in CCES.

        The processor isn’t necessarily the issue, the question is whether the board only is capable of specific sample rates due to the use of specific parts that only allow for it to accurately use a specific sample rate. Many times, the crystal oscillator on the board is the same, but it is the setting of the divisor that then sets the sample rate that the crystal oscillator is keeping time for.

        So I understand you may have the understanding that it will always be set at the specific rate, but I believe that is false. You are setting the sample rate in sigmastudio to later be incorporated into the LDR file generated in CCES.

        Where did you get that you cannot change it in sigmastudio, if I may ask? Can you point me to the source?

      • #25105
        AJC
        Participant

        OK, I didn’t like my answer, so here is more information:

        You, like I, probably do not have the schematic file for the pinout and how the components for the device is connected. As such, if you try to create a file in CCES, you could have issues. This is why they provide that for the evaluation board in this post:

        https://ez.analog.com/dsp/software-and-development-tools/sigmastudio-for-sharc/f/q-a/167682/adsp-21489-noob-questions

        https://ez.analog.com/dsp/software-and-development-tools/sigmastudio-for-sharc/w/documents/9487/faq-is-it-possible-to-generate-an-application-ldr-with-schematic-code-and-parameter-embedded-in-it

        Click to access SigmaStudio_5F00_No_5F00_Download_5F00_Mode.pdf

        The User Guide for Sigmastudio for SHARC:
        The Release Note, Reference Guide, Users Guide and Product Spec can all be found in the “C:\Analog Devices\SoftwareModules\SigmaStudioForSHARC-SH-Rel2.2.0\Docs” folder.

        Edit:

        I contacted the seller to contact the manufacturer to either procure an LDR file for the device in order to then program it to load the schematic at boot. Probably something I should have thought about earlier.

      • #25130
        giant
        Participant

        Dear AJc I also sent a message to the seller who unfortunately replied that he could not help me

      • #25107
        AJC
        Participant

        https://ez.analog.com/dsp/software-and-development-tools/sigmastudio-for-sharc/f/q-a/83684/sigmastudio-for-sharc

        more on the discussion of LDR. Also, I may be mistaken, as you can export it from sigmastudio to use in CCES to make that file. Also, the device has certain settings password locked in sigmastudio, so it should have the hardware settings that matter locked (good thing, less likely to mess things up). These are assumptions. I am not responsible for harm to the device. I’m responsible for my own hardware.

        https://ez.analog.com/dsp/software-and-development-tools/sigmastudio-for-sharc/w/documents/9487/faq-is-it-possible-to-generate-an-application-ldr-with-schematic-code-and-parameter-embedded-in-it

      • #25133
        giant
        Participant

        Dear ajc9988, I am deeply grateful for what you are doing and I think that if you manage to change the sample rate of the card and make the method public it will be your great merit that will be recognized by many, many people. This information should be made available to the seller, but unfortunately with Chinese goods as you know this is impossible. After all, even with branded products such as minidsp, audison, powersoft and others, the cards are almost always set to 96k and for the end-user there is no possibility to change this setting

      • #25151
        AJC
        Participant

        Once again, where did you get that this is not possible? Can you cite a source? Because from what I understand of the use of crystal oscillators and divisors, this isn’t necessarily true. The processor itself can process whatever data, so long as time is kept. You can hard wire a product to solely use one time, or set divisors possible, and even use multiple crystals to allow for the switching of different sample rates in a product. There is even an asynchronous sample rate converter in CCES for the ADSP-21489.

        Many of these products ignore the science of audio. People think they can hear a difference with higher sample rates. Maybe they can. But older studies showed people could not hear the difference above a certain sample rate: 44.1kHz. But the new high def mastering goes up to 96kHz, 192kHz, 384kHz, or multiples of 44.1kHz. My point is, they push for the 96kHz for marketing to people that believe the more information the better. But, from a computational standpoint, you now have double the samples in the same period, and you now must apply the instructions to that many samples, thereby halving or more than halving the number of instructions that can be used for processing.

        Most likely what people are hearing in remastered content in the higher kHz sample rates is the fact they remastered the entire track with better modern techniques, so that if the audio technician is good, you are going to have a better mastered track than the original. As such, they are hearing other aspects of his or her work and believing it is the sample rate that gave the additional sound fidelity, when in all likelihood, it was better equipment, better speakers with less distortion allowing for clearer playback which then allowed for cleaning up the track better, etc.
        And sure, for some, they may even be able to tell the difference in sample rates. It is like some with TVs being more sensitive to PWM flicker and the rate at which the display refreshes. A majority of people will only recognize it seems smoother, but there are some, including specifically professional e-sports players, that are sensitive enough that they can tell the difference of the frequency refresh rate of a display where a normal person might not be able to. But ears and eyes are also different.

        So my point is, I’d like to know where you came up with the notion that these processors only run 96kHz instructions. If you can tell me about the crystal oscillator setting the master time to only the specific sample rate without being able to set a different divisor in software to then arrive at the sample rate, and that the crystal oscillator value means that the divisor needed to arrive at 48kHz is not available for the software being programmed, I’m all ears. Especially as I did not pull the value of the oscillating crystal yet to backtrack the component to look up the datasheet to check that. But, because that has not yet been shown, I will continue on the assumption it can be set otherwise.

      • #25228
        giant
        Participant

        No, my words have been misunderstood. The processors can obviously be set at multiple sample rates and regarding the same 21489 are marketed some devices with a factory set value of 48K. I just wanted to say that for the common end-user of this kind of product, usually not a computer or sound engineer but a simple enthusiastic hobbyist, it is a titanic job to modify these settings alone as there is to learn (assuming they are available) too much and too specialized information. For that, I asked for help on this forum as on others hoping to have answers and now you are the only one who has answered and who is trying his hand at the enterprise. Unfortunately, I can only follow a method if clearly detailed step by step. Unfortunately, I don’t have the skills to do anything else

      • #25233
        AJC
        Participant

        As soon as I have the process down, I’ll probably post the PDF here and in the analog devices forums. That way it can open up adoption.

      • #25120
        AJC
        Participant

        Update: I am following the guide that was posted at ADI. I will then post if it is successful at creating the LDR file. Currently downloading Cygwin. I’ll create an updated PDF with pictures if I am successful.

      • #25132
        giant
        Participant
      • #25153
        AJC
        Participant

        That is the exact one I have, with the PCM4202 and PCM1798 ADC and DAC. I have connected the SPI after having soldered the headers onto the core board. I then am using the USBi to change the values.

        This allowed for the temporary download to the device, but not the permanent change to the software, which is a problem for persistent change of what it is running. No one wants to have to apply the download each time you turn the device on and off. So to address that, you have to generate an LDR file, then after that set the boot of it.

        I’m currently running into memory errors in my compiling of the schematic I made, so I will attempt to reduce the schematic size hoping that is the issue and not something else. I am not a coder, but can recognize patterns at a great rate (how I learn). I have made the changes recommended in the document, so I have to finish making the application for incorporation of the LDR, then I will look at doing the other parts to be incorporated into the LDR. Then after that comes the flash.

        Unfortunately, I have no idea who the manufacturer was on these.

        Did you get the software to at least use the program that comes with it? The USB midi program and the IIR filtering showed in the ad?

      • #25229
        giant
        Participant

        Dear ajc, no, I don’t have this software. I checked in the folder that was sent to me by the seller and found nothing like it. So you say that every time one turns off the card the information downloaded with sigmastudio is lost and at the next reboot you have to reload it again? But this is crazy. Does this also happen with the other cards that are sold on aliexpress such as the one you recommended with adau1467 processor? If so these products are unusable and then I understand why they have so little diffusion …

      • #25232
        AJC
        Participant

        So, I will have to buy an ICE-1000 in order to then solder on the JTAG points and develop/debug the software I made in CCES. After that, it is my hopes that I can then program the device with the finished program through sigmastudio (without needing the ICE-1000 to program). If I am able to do that, then I will release that program once I finish developing it. Until then, yes, it wipes the program downloaded through sigmastudio on reset until the program loader is flashed on the hardware and the boot is set to start what was developed in sigmastudio.

        Meanwhile, the ADAU-1467 has nearly as many instructions as the ADSP-21489, but does not even require CCES. All programming is done simply with sigmastudio. This is better for people without any knowledge on programming and debugging. As soon as I finish developing for myself, I can share that, but that will depend on my schedule. So I cannot promise when I will be done.

        So, the adau-1467 is more user friendly and does not require all this work. SHARC requires the extra work, but is more free in that way. Most want the 1467 designs because it is like that 1701 but more powerful.

        Meanwhile, these products that we have are to use the DSP for a home theater system, using allotments for IIR filters for each output, etc. The software requires you to open the usb midi program, then open the english version of the program, link with USB, then change settings inside that program. When done correctly, those settings do persist. But that is not sigmastudio download.

        So, if not wanting to wait on me, the adau1467 is the one to get.

      • #25231
        giant
        Participant

        for ADAU1701 is not required generate an LDR file so I assume also for ADAU1467″

        “This code is currently in volatile memory and it will be gone as soon as the DSP is powered off. We therefor need to store it permanently in EPROM in order to enable the DSP to load it at boot-up. Switch back to the Hardware Configuration tab, Config section. Right-click the ADAU1701 block and select Write Latest Compilation to E2PROM. Press OK in the next dialog and watch the progress bar while the code is stored in EPROM. You should now be able to power cycle the DSP and it should boot-up loading the latest project you written to memory.”

      • #25162
        AJC
        Participant

        BTW, if you do not have it, here is the PC USB control software for that platform.

    • #25157
      AJC
      Participant

      Also, for those not willing to learn some programming, etc., these are better fits. One of them is for having multiple in a single speaker if doing a three way (issues of two different master oscillating crystals, will never truly sync, but you can get close with doing the delays for the drivers), whereas the other is for 8 input, 8 output, spdif in and out, etc.

      https://www.aliexpress.com/item/3256802662225376.html?spm=a2g0o.productlist.0.0.16704feaHORhEP&algo_pvid=92c9c83a-04f7-487a-bf3c-aad8da40d51d&algo_exp_id=92c9c83a-04f7-487a-bf3c-aad8da40d51d-2&pdp_ext_f=%7B%22sku_id%22%3A%2212000022454946709%22%7D&pdp_npi=2%40dis%21USD%21%2189.85%21%21%21%21%21%40210318c216558245227396043ef032%2112000022454946709%21sea

      https://www.aliexpress.com/item/3256802932654622.html?spm=a2g0o.productlist.0.0.16704feaHORhEP&algo_pvid=92c9c83a-04f7-487a-bf3c-aad8da40d51d&algo_exp_id=92c9c83a-04f7-487a-bf3c-aad8da40d51d-1&pdp_ext_f=%7B%22sku_id%22%3A%2212000024198353420%22%7D&pdp_npi=2%40dis%21USD%21%2145.8%21%21%21%21%21%40210318c216558245227396043ef032%2112000024198353420%21sea

      Those can be fully programmed with sigmastudio without CCES. The ADAU1467 gets close to the processing power of the ADSP-21489, but it simplifies what you need greatly. Cost is about the same (if needing 2 of the first one for up to a 4-way or the second one which has all the inputs similar to the board we are working on).

      Verify first with the vendor, for the first link, whether the boards have the 1463 or the 1467. Also verify what ADC and DAC is being sent with the board. For the second link, it is plug and play using 3.5mm aux. two channel plugs.

      But those would likely be simpler for many to work with, while providing what they need. In fact, two of the first link would, in theory, have more taps available than the adsp-21489. Once again, synchronization issues may arise, but should be minimal. There are numerous ways to handle two in a single system.

      I am still working on an error in CCES when building the application project. I’ll report when I have more info.

      • #25163
        AJC
        Participant

        So solved the compile error. The issue was the linker settings in CCES. After that, compiled fine. But to communicate and debug the program, I need an ICE-1000 JTAG module. So have to wait to test more.

Viewing 100 reply threads
  • You must be logged in to reply to this topic.