DSP Xover project (part 2)

There's one unused hardware led. I was thinking of using it to signal when the load goes beyond 100% on any core. How about that?

Yes! I had the same idea.

Right now, you can adjust globally the output level in the Board Configuration dialogue.
Would it be alright to replace this global adjustment with individual controls for each channel? Any thoughts?

That should be helpful. Would it be possible to implement it as an add-on to what currently exists? I mean, at the user level, retain the current "global" output level control, but add another gain/attenuation setting for individual channels (even if, in reality, it may be a single setting per channel). This way, we can have a default gain of 0dB that we never bother with, unless we have amplifiers with unequal gains (as in Kazam's case).
 
Right now, you can adjust globally the output level in the Board Configuration dialogue.
Would it be alright to replace this global adjustment with individual controls for each channel? Any thoughts?

If I may, and if it is technically feasible, I would have gain adjustments at both level as the aim of the adjustment is not the same
- channel adjustment : normally you do not change it once system is properly configured
- gobal gain : will be used many times a day, even CD by CD as the level are very different, and you wont take the risk to damage your reference channel settings.

BR
 
Currently, all the gains that you set in the processing tabs are DSP gains. I said to Kazam that it would be easy to add independent analogue gain everywhere in the system - except on the GUI (i.e. the pc app interface). So it's a bit tricky in the GUI because I must also support boards without analogue volume...

Would it be OK to ask the user to specify if he has an analog volume chip installed?

Perhaps this information could even be stored in the EEPROM at a protected address.
 
Thanks Thierry I'll check this app soon.



Indeed we had a brief chat with Kazam and I thought we could discuss this topic here as this would be a great feature.

Not just specifically for Kazam's application, but also to provide more flexibility in the gain structure.

Currently, all the gains that you set in the processing tabs are DSP gains. I said to Kazam that it would be easy to add independent analogue gain everywhere in the system - except on the GUI (i.e. the pc app interface). So it's a bit tricky in the GUI because I must also support boards without analogue volume...

Right now, you can adjust globally the output level in the Board Configuration dialogue.
Would it be alright to replace this global adjustment with individual controls for each channel? Any thoughts?

Someone correct me if i'm wrong, but let's suppose the following scenario:

System:
Speakers: 2-way with 96db/w Fullrange driver and 88db/w Woofer
Amps: full range amp: 31db gain, Woofer amp: 21db gain
In total, one would need 18db of correction to match the fullrange driver to the woofer.
The 18db are only a best case scenario if no further correction and boosting are needed for the woofer.
Let's consider that the woofer needs an extra 20db of boost at lower frequencies (not extreme in a Typical OB application)

The board will not output more than 2Vrms, which will be the woofers' amp full signal swing, meaning that the fullrange driver, the more sensitive driver in the setup, will be fed a signal that's much closer to the noise floor than the Woofer, a really bad idea since we are much more sensitive to noise at the higher frequencies the fullrange driver has to handle.
And that's only at the analog level without taking into consideration the extra problems in the digital domain.

Are my assumptions right?

Regards

Nick
 
Going above 100% is a bit difficult :)

Can I sound a note of caution here though? I don't know how the %load is actually measured on this DSP but typically we sample cpu state every clock tick ( 1/100 second ?) to see if the cpu is busy then average those values for a time period ( 1 second ? ) and report the % utilisation as the percentage of samples where the cpu wasn't idle. That means if the load is showing 50% it just means that for half the samples it was busy and half not. If it was 100% busy for the first half of the sample period and idle for the second half we still have a 100% busy situation to deal with despite the load only being 50%.

Regarding DSP load, any is good as long as it's below 100%.
You must make sure you don't go above 100% on any core. It's a drama otherwise.

Indeed, if you go above 100% on any core, the DSP will drop one sample and this will translate into halving the sampling frequency.
 
Yes! I had the same idea.

That should be helpful. Would it be possible to implement it as an add-on to what currently exists? I mean, at the user level, retain the current "global" output level control, but add another gain/attenuation setting for individual channels (even if, in reality, it may be a single setting per channel). This way, we can have a default gain of 0dB that we never bother with, unless we have amplifiers with unequal gains (as in Kazam's case).

Shaun we are totally in phase :)

I'm OK for this: if the volume chip is installed, then the user can either adjust the output level globally or in a per-channel fashion.
For example a tick box that disables one set of controls or the other.

If I may, and if it is technically feasible, I would have gain adjustments at both level as the aim of the adjustment is not the same
- channel adjustment : normally you do not change it once system is properly configured
- gobal gain : will be used many times a day, even CD by CD as the level are very different, and you wont take the risk to damage your reference channel settings.
BR

So we're talking here about nominal output level, not volume. I see the nominal output level as the max electrical level that the board will output. It can be set globally, and we're looking at a sensible way to have it independent for each channel.
Volume comes on top of output nominal level. Volume works only as an attenuator so you never go beyond nominal level.

Would it be OK to ask the user to specify if he has an analog volume chip installed?

Perhaps this information could even be stored in the EEPROM at a protected address.

Actually the chip is detected on hardware when the board is booting. This information is required so that mutes and volume are handled either by the analogue volume chip (if installed) or by the DACs.

This information is also transferred to the application when you connect, because the control letting you adjust the global output level is disabled if the chip is not installed.

Someone correct me if i'm wrong, but let's suppose the following scenario:

System:
Speakers: 2-way with 96db/w Fullrange driver and 88db/w Woofer
Amps: full range amp: 31db gain, Woofer amp: 21db gain
In total, one would need 18db of correction to match the fullrange driver to the woofer.
The 18db are only a best case scenario if no further correction and boosting are needed for the woofer.
Let's consider that the woofer needs an extra 20db of boost at lower frequencies (not extreme in a Typical OB application)

The board will not output more than 2Vrms, which will be the woofers' amp full signal swing, meaning that the fullrange driver, the more sensitive driver in the setup, will be fed a signal that's much closer to the noise floor than the Woofer, a really bad idea since we are much more sensitive to noise at the higher frequencies the fullrange driver has to handle.
And that's only at the analog level without taking into consideration the extra problems in the digital domain.

Are my assumptions right?

Regards

Nick

Correct I would think.

I do think the board can pump out 6Vrms though according to the manual. This would be 15dB gain compared to the nominal 1Vrms.

/K

So the analogue chip requires rails of +/-8V to +/-9V. There are onboard regulators for this chip. To play it safe, i've set their outputs to +/- 8.5V. So the signal swing at the output of the CS3318 will not exceed 17 V peak to peak, which is indeed about 6 Vrms.

Going above 100% is a bit difficult :)

Can I sound a note of caution here though? I don't know how the %load is actually measured on this DSP but typically we sample cpu state every clock tick ( 1/100 second ?) to see if the cpu is busy then average those values for a time period ( 1 second ? ) and report the % utilisation as the percentage of samples where the cpu wasn't idle. That means if the load is showing 50% it just means that for half the samples it was busy and half not. If it was 100% busy for the first half of the sample period and idle for the second half we still have a 100% busy situation to deal with despite the load only being 50%.

I actually don't compute CPU load the way you describe, at all.
DSP load on Najda is 100% reliable, and there are also hardware load meters on board. If Najda says 50%, then it's really always 50% :)
Fact is, if you overload the DSPs, they will report CPU load greater than 100% and the meters in the app will turn red.
 
So the analogue chip requires rails of +/-8V to +/-9V. There are onboard regulators for this chip. To play it safe, i've set their outputs to +/- 8.5V. So the signal swing at the output of the CS3318 will not exceed 17 V peak to peak, which is indeed about 6 Vrms.

Sorry about the mixup.
6Vrms it is then :)
This solves the problem for most applications, but in some extreme cases, like the OB system/amp gains mentioned earlier, some might still need some extra gain at the woofer amp level.
 
Measured things this evening with Holmimpulse.
Pretty flat +/-5dB in room at listening position was what I had before. Still got that - no reason why not. Shows my passives where pretty good then...

On to time alignment. I have always wanted to time align the tapped horns sub 100Hz with the rest, but a delay due to 4.8m long horn path equaling many metres physical position had rendered that impossible.
I did achieve it briefly with the Behringers and the Auto alignment routine with Mic input that worked pretty well. But the SQ of the Behringers so dire I have junked them.

Ok, so here is the measurement before: Tapped horn in blue, bass horn in red.

HolmImpulsemeasureTappedandbass.jpg


The slight out of phase 1st peak is deemed by Holmimpulse as a spurious and disounted. They are def +ve to +ve correctly.
Perhaps I am pushing the boundaries of what's possible...
That's 7.8ms ahead the bass horn (and all the rest as they are physically aligned).

Here is the delay in Najda

NajdadelayonbasstomatchTapped.jpg


Here is the measured change

Tappedandbasstimealignedinnajda.jpg


I or Holmimpulse messed up the scales somewhat, but I remeasured a few times and it was consistent, and it's locked on to 0 time better this time for some reason.

I then applied the same delay to the other 3 channels in Najda and measured all again to confirm alignment, all good, spot on in fact.
The tweeter is ever so slightly ahead even though it is taking its line feed off the upper horn output. This is as it should be I guess with DSP delay. I could reverse align from tweeter down but that is another evenings work.

One thing I noticed is that on making the changes on the fly Najda would not play until I disconnected the PC in the SW and then went to Standby and on again.

This was repeated over and over so it is 100% reproduceable.

Same thing happened if I loaded the changes in as a preset and then disconnected the PC. Najda goes to mute automatically but unmuting did not result in sound. The latest preset was showing loaded. Going to a previous one made no change.
Najda would not play anything until I went through standby and on again cycle. Then my latest file was loaded and the sound was fine.

I am also getting the same thing fairly often just swapping between presets. Quite often I need to cycle standby to get sound.
Was not like that before.


Interesting. Just put Joan as Police woman The deep field album - track 2. The Magic. Pulsing bass is not connected with the the deeper stuff. Sounds more together. Anyone who says you cannot hear time delay on deep bass should here this.
I am doing A/B comparisons and it is not small difference.

There's one unused hardware led. I was thinking of using it to signal when the load goes beyond 100% on any core. How about that?[/QUOTE said:
That would be nice as I already drilled a hole for it in my lash up front panel:)
 
Last edited:
One thing I noticed is that on making the changes on the fly Najda would not play until I disconnected the PC in the SW and then went to Standby and on again.

This was repeated over and over so it is 100% reproduceable.

Same thing happened if I loaded the changes in as a preset and then disconnected the PC. Najda goes to mute automatically but unmuting did not result in sound. The latest preset was showing loaded. Going to a previous one made no change.
Najda would not play anything until I went through standby and on again cycle. Then my latest file was loaded and the sound was fine.

I am also getting the same thing fairly often just swapping between presets. Quite often I need to cycle standby to get sound.
Was not like that before.

Hi Steve,

Can you send to my email a pair of your Setup files? I'll play with them and see what's going on. Thanks!

Nick
 
Hi Steve, thanks I got your files and I confirm that on occasion there's no sound when switching between your presets.

I'll push out a release that fixes that - but I'd also like to include a few more things in it so I hope you can live with that until the next soft+firm version is made available. It won't be long. ;)
 
Hi Steve, thanks I got your files and I confirm that on occasion there's no sound when switching between your presets.

I'll push out a release that fixes that - but I'd also like to include a few more things in it so I hope you can live with that until the next soft+firm version is made available. It won't be long. ;)

Great. It's not a showstopper but does slow me down a bit having many channels and multiple bytes to get things right.
 
Great. What differences did you hear between the two filters considered improved phase for FIR and nice impulse response but pre-ringing ?

That's excellent sutff, thanks Paal!

Am I right to assume that the first plot is IIR? :blush:

Hi JLOP,
Ok, I had to install the remote to be able to switch fast between the filters.
IMHO it is not easy to hear any difference. FIR is maybe a little brighter, but the phase is not the only different thing here. The EQ is not exactly equal. Remember also that I have only one speaker (left channel) in front of me so the comparison is not good. If I get the spirit in the weekend I will arrange with 2channel sound (stereo):D

Nick,
Yes, your assumption is correct.:)

best,
Paal
 
Hey chaparK!

I have mine all set up and working just fine. Was quite painless... Lots of experimenting needed here now.

But. I think you should have a BiG warning sticker on the board - The "+5v" is right next to the OV input connector. Even a careful person could make that mistake. I almost had a disaster!

2 requests if I may..

1. Would it be possible to support the really beautiful apple remote? It's cheap and perfect.
Apple Remote | H i F i D U I N O

2. I'm sure I'm not the only person who likes to have a remote for their subwoofer channel. Sometimes I love to have it very high (especially in well recorded classical music in good acoustics) - other times there is such nonsense going on down there and needs to be turned right down. Could you implement this? It would be a dream come true. It would be great if it reset itself to a certain setting on turn on.

bravo for a very promising machine!

jb
 
But. I think you should have a BiG warning sticker on the board - The "+5v" is right next to the OV input connector. Even a careful person could make that mistake. I almost had a disaster!

See Some tips for those assembling a unit with Najda DSP board.

The project documentation is very good. I highly recommend that you read it through at least once before you make any attempt at assembly.

The component legend printed on PCB does not clearly show the pin markings and IDs, so you must make use of the supplied diagram in Appendix_B_Pinning_Power_Supply.pdf.

I apologise if I did not put enough emphasis on this, but it is quite important. Nick/Chapark specially requested that I share my experiences so that all could be aware.

2. I'm sure I'm not the only person who likes to have a remote for their subwoofer channel. Sometimes I love to have it very high (especially in well recorded classical music in good acoustics) - other times there is such nonsense going on down there and needs to be turned right down. Could you implement this? It would be a dream come true. It would be great if it reset itself to a certain setting on turn on.

Right now you have some options: You could use the bass control (turnover frequency can be set 20Hz to 2kHz; up to 6dB cut/boost), or the presets, with either pre-determined levels for your sub channel(s) or different "house curves" on the input channels.
 
Last edited: