Acoustic Horn Design – The Easy Way (Ath4)

Member
Joined 2004
Paid Member
Ath 4.8.1 ("pre-release") with the R-OSSE formula implemented (ZIP attached).

Example project:
Code:
R-OSSE = {
  R = 130
  a = 40
  r0 = 12.7
  a0 = 9
  k = 1
  r = 0.25
  m = 0.8
  b = 0.25
  q = 3
}

Source.Shape = 1

Mesh.AngularSegments = 8
Mesh.LengthSegments = 60
Mesh.RearShape = 1
Mesh.SubdomainSlices = 
Mesh.WallThickness = 5

ABEC.MeshFrequency = 30000
ABEC.NumFrequencies = 40
ABEC.SimProfile = 0
ABEC.SimType = 2
ABEC.f1 = 500
ABEC.f2 = 15000

ABEC.Polars:SPL = {
  MapAngleRange = 0,180,37
  Distance = 2
}

Output.ABECProject = 1
Output.STL = 0

Report = {
  Title = "ATH/R-OSSE"
  Width = 1000
  Height = 860
  NormAngle = 10
  GnuplotCode = 3x2n.gpl
}
 

Attachments

  • ath-4.8.1-pre.zip
    246.5 KB · Views: 82
  • Like
Reactions: 1 user
Member
Joined 2004
Paid Member
BTW, I've changed the formulation for something a little bit more intuitive. The downside is that not all the parameter combinations now give reasonable results. For example this is certainly not what you want (wonder how that would sound though, probably not many ever heard something this bad) -

nwyw.png
 
Last edited:
Is this 15" example any good?

R-OSSE.png

Code:
R-OSSE = {
  R = 190
  a = 30
  r0 = 12.7
  a0 = 6
  k = 0.8
  r = 0.5
  m = 0.8
  b = 0.3
  q = 3
}

And I wrote this (prototype) AutoIT script to automate the generation of the plots:

Code:
WinWaitActive("ABEC3")
Send("^o")
WinWaitActive("Openen")
Send("Project.abec{ENTER}")
WinWaitActive("ABEC3 - ABEC_FreeStanding")
Send("{F5}")
WinWaitActive("Confirm")
Send("{ENTER}")
Sleep(45000)
WinWaitActive("ABEC3 - ABEC_FreeStanding")
Send("{F7}")
Sleep(10000)
WinClose("VacsViewer - (new) - [PolarMap_SPL]")
Send("n")
WinActivate("ABEC3 - ABEC_FreeStanding")
WinWaitActive("ABEC3 - ABEC_FreeStanding")
Send("^{F7}")
WinWaitActive("Information")
Send("{ENTER}")
WinClose("ABEC3 - ABEC_FreeStanding")
Send("{ENTER}")

WinActivate("ath")
WinWaitActive("ath")
Send("ath.exe demo/R-OSSE.cfg -r{ENTER}")
Sleep(1000)
WinClose("ath")
 
  • Like
Reactions: 2 users
In an attempt to get a feeling for what I'm looking at and what the different variable in the R-OSSE do, I plotted the reference (posted a few posts above) and +/- 10% for the k, m, r, b, q parameters.

What is good? What is bad? How do the results depend on the shape?
1 has a flattening of DI at 1K
2 smooths that out and keeps the DI rising
3 flattens the DI a little
4 keeps DI rising into top octave
5 and 6 lumpy DI
7 keeps the DI flatter and higher to a lower frequency but introduces a DI step

2 and 11 probably the smoothest responses, what changed in 2 and 11?
 
BTW, I've changed the formulation for something a little bit more intuitive. The downside is that not all the parameter combinations now give reasonable results. For example this is certainly not what you want (wonder how that would sound though, probably not many ever heard something this bad) -

View attachment 1023643

I just ran my first batch last night. Unfortunately quite a lot are totally rubbish:

R-OSSE_k=5.76336886035278_r=0.947074002819136_m=0.45739683858119_b=0.168201142223552q=0.092570...png

I'll try to come up with some boundaries for the parameters; unless someone already has done that...
 
Last edited:
What is good? What is bad?
That's what I've been wondering too. Optimisation is best done with respect to a well-defined target (cost function, for algorithmic optimisation), or at least a list of requirements for a human to work with intuitively. I've noticed in audio, that folks often focus on a subset of requirements, important or otherwise, and leave other significant details aside. Having the requirements set early in the process is a good way to defend against that. That's far from easy.
For example, minor ripples above a few kHz might not be as important as a DI mismatch lower down (or it might, that's for the designer to decide).

I would expect that the requirements depend largely on the partnering bass-mid: size of unit, crossover point and slopes, location with respect to the horn, and details of the baffle (shape if a box, dimensions if open baffle, etc.).

The wonderful flexibility of the latest design method should provide a relatively quick way of approaching an optimum - to me the far harder question is what that optimum should be, not the same for everyone, as it depends on the room too. I have some ideas, but they are unlikely to be what most want, so I'll leave them out of this post - also I'd need to do more simulation before mentioning them.

Ken
 
^Nice thing about the R-OSSE and the previous script is that size can be scaled just by one parameter without affecting rest of the performance, see #9326. One common target for any waveguide would be the DI slope at the low end should perhaps match that of ideal cone direct radiator, and perhaps it does this naturally already? Didn't check. Anyway, this means waveguide DI can be matched to any woofer size rather easily after rest of the performance has been optimized.

From this point up DI should just be smooth line I think, either flat or slope. It would be nice if it was easy to choose either one and test which one works better. There was some discussion about this earlier in the thread but no conclusion which would be better. Then nominal dispersion target. Wider dispersion was easier to get with the previous script and if I remember if narrower dispersion it always ended up steeper slope on the DI. On this R-OSSE perhaps the narrower dispersion is also achievable with relatively flat DI, at least in comparison to the previous script. See #9301. Basically we've seen so far controlled directivity of about 70-120 degrees I think, for the axisymmetric freestanding devices. Narrower dispersion would reduce early reflections and especially vertical reflections with long listening distance.

Then there is the impedance, if someone wanted to have some "loading", but not sure if that is something to optimize for, perhaps not the most important thing at this moment before the tulip thingy is also fully included. This would increase parameters and variations drastically I guess. Although, perhaps simple conical waveguide + roundover is enough with the tulip :) sorry, forgot the official name.
 
Last edited:
  • Like
Reactions: 1 user
Member
Joined 2004
Paid Member
The latest parametric formula (R-OSSE) is just a self-contained description of the whole waveguide, which can be handy, but I don't think it's significantly different from the previous implementation (OSSE + algorithmic roundover), regarding the acoustic results.

... Although, perhaps simple conical waveguide + roundover is enough with the tulip
That's quite far from the truth, actually. Termination is still the crucial part, and it's not so simple as it turns out.