Acoustic Horn Design – The Easy Way (Ath4)

Creating a smooth solid in Fusion is surprisingly easy, could be printed right away -
https://a360.co/3vcObMW

View attachment 1047799 View attachment 1047800 View attachment 1047801
These are like the waveguide version of some of the horn profiles I seen from @docali (y)
1650829737817.png
 
  • Like
Reactions: 1 users
Did it have much effect on the SPL responses?
Not really.

Here's a sample and I believe it could be further improved, I only don't have the patience anymore for the 3D sims...
This originated just as a random illustration that the parameters can be changed freely around the horn. :)
Code:
R-OSSE = {
  R = 120
  r0 = 12.7
  a0 = 5
  a = 36
  k = 1.4 + 8*sin(p)^2
  r = 0.35
  b = 0.12
  m = 0.83
  q = 4.4
}

Mesh.LengthSegments = 36
Mesh.AngularSegments = 48
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 9
Mesh.WallThickness = 8
Mesh.RearResolution = 20

Mesh.SubdomainSlices = 35
Mesh.InterfaceOffset = 25
Mesh.InterfaceDraw = 0

ABEC.MeshFrequency = 1000
ABEC.NumFrequencies = 32
ABEC.Abscissa = 1
ABEC.SimType = 2
ABEC.f1 = 500
ABEC.f2 = 12000

ABEC.Polars:SPL_H = {
  MapAngleRange = 0,90,19
  NormAngle = 0
}

ABEC.Polars:SPL_V = {
  MapAngleRange = 0,90,19
  NormAngle = 0
  Inclination = 90
}

Output.ABECProject = 1
Output.STL = 0
 
A bigger version ⌀360 x 200 mm, 1.4" throat.

kvar-360-mesh.PNG


kvar-360-hor.png
kvar-360-ver.png
kvar-360-imp.png


Code:
R-OSSE = {
  R = 180
  r0 = 18
  a0 = 5
  a = 36
  k = 1.4 + 8*sin(p)^2
  r = 0.35
  b = 0.12
  m = 0.83
  q = 4.4
}

Mesh.LengthSegments = 36
Mesh.AngularSegments = 48
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 9
Mesh.WallThickness = 8
Mesh.RearResolution = 20

Mesh.SubdomainSlices = 34
Mesh.InterfaceOffset = 28
Mesh.InterfaceDraw = 0

ABEC.MeshFrequency = 1000
ABEC.NumFrequencies = 32
ABEC.Abscissa = 1
ABEC.SimType = 2
ABEC.f1 = 500
ABEC.f2 = 12000

ABEC.Polars:SPL_H = {
  MapAngleRange = 0,90,19
  NormAngle = 0
}

ABEC.Polars:SPL_V = {
  MapAngleRange = 0,90,19
  NormAngle = 0
  Inclination = 90
}

Output.ABECProject = 1
Output.STL = 0
 
  • Like
Reactions: 1 user
Polars seem counter intuitive looking at the 3d model, vertical has wider pattern than horizontal, sort of. Perhaps the horizontal is already diffracting some making to the narrowing ~1.5k? Why not just use the vertical which seems nicer with all things smoother, constant k? It is rising DI though while the horizontal is more constant though. Just optimize k for what ever is the target?

What would be the potential benefits here other than having different vertical and horizontal directivity? Can you eliminate pattern flip is the question? :D
 
Last edited:
Whatever floats your boat :)

Fusion 3D model: https://a360.co/3rNS5ty

- The nice thing is that if the 'R' is fixed it will be round from the front no matter what else you do. Perhaps it would need to bend more at the mouth edges horizontally. That should also be easy enough.

- Hmm, looking at the model, it probably still doesn't work as it should - the edges should be a lot more bended already. I need to check the code again :unsure:
 
Last edited:
Just for the record, 2" throat, ⌀400 x 250 mm:

KVAR-50-mesh.PNG


H, V (0 - 90/5)
KVAR-50-hor.png
KVAR-50-ver.png
KVAR-50-imp.png


Code:
R-OSSE = {
  R = 200
  r0 = 25
  a0 = 0
  a = 33
  k = 3 + 5*sin(p)^2
  r = 0.35
  b = 0.12
  m = 0.83
  q = 4.4
}

Mesh.LengthSegments = 35
Mesh.AngularSegments = 48
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 10
Mesh.WallThickness = 8
Mesh.RearResolution = 20

Mesh.SubdomainSlices = 33
Mesh.InterfaceOffset = 28
Mesh.InterfaceDraw = 0

ABEC.MeshFrequency = 1000
ABEC.NumFrequencies = 32
ABEC.Abscissa = 1
ABEC.SimType = 2
ABEC.f1 = 500
ABEC.f2 = 12000

ABEC.Polars:SPL_H = {
  MapAngleRange = 0,90,19
  NormAngle = 0
}

ABEC.Polars:SPL_V = {
  MapAngleRange = 0,90,19
  NormAngle = 0
  Inclination = 90
}

Output.ABECProject = 1
Output.STL = 0
 
  • Like
Reactions: 1 user
I'm not sure if this has come up before, but I noticed something interesting in the ATH docs:

"Fraction of the length of the profile where the rollback starts. Note: The "length" here is not the axial length but the actual length along the profile curve."

If I'm reading that right, it means that rollback doesn't start at 50% down the depth of a horn if you set the rollback parameter to "0.5"

Instead, rollback begins at 50% of the way down the guiding curve.

Which means that rollback may cause the face of your waveguide to be non-flat.

This is a problem if, y'know, you're putting the waveguide on a loudspeaker baffle :)

Based on that thought, I did some tinkering by using a formula in the "Rollback.StartAt" parameters, and sure enough, I think I was right.

In the attached pics, I've used the same waveguide definition, but three rollback formulas. And you can see that various roll back formulas change the "flatness" of the horn mouth.

Here are what I used:

Rollback.StartAt = 0.25 + 0.25 * sin (p)^2

Rollback.StartAt = 0.25 + 0.25 * cos (p)^2

Rollback.StartAt = 0.5
 

Attachments

  • 2022-04-26 12_50_22-Autodesk Meshmixer - supertall.stl.png
    2022-04-26 12_50_22-Autodesk Meshmixer - supertall.stl.png
    65.2 KB · Views: 84
  • 2022-04-26 12_49_19-Autodesk Meshmixer - supertall.stl.png
    2022-04-26 12_49_19-Autodesk Meshmixer - supertall.stl.png
    77.6 KB · Views: 78
  • 2022-04-26 12_48_41-Autodesk Meshmixer - supertall.stl.png
    2022-04-26 12_48_41-Autodesk Meshmixer - supertall.stl.png
    72.9 KB · Views: 74
  • Like
Reactions: 1 user
Well if you put the waveguide on a loudspeaker baffle, you don't need a rollback, do you?

But you're correct, 'Rollback.StartAt' is indeed taken as a fraction of the length along the wall, not the depth.
Adding rollback makes the mouth bended back, i.e. more than 90 deg from the axis. For a baffle placement this is not supposed to be used.
 
Last edited:
  • Like
Reactions: 1 user
There's a fairly minor bug in the newest version, nothing to lose sleep over:

If you have spaces in the filename of your horn config file, something gets lost on it's way to ABEC.

If you replace the spaces with underscores, everything is fine.

See attached pic.

EDIT : looking at it again, this might actually be an ABEC bug. Because the pathname is actually correct. Not sure which is the issue, but it's easy to fix, just don't use spaces in the name of your config file.
 

Attachments

  • 2022-04-26 17_01_04-ABEC3-Demo - ABEC_FreeStanding.png
    2022-04-26 17_01_04-ABEC3-Demo - ABEC_FreeStanding.png
    20.2 KB · Views: 71