Acoustic Horn Design – The Easy Way (Ath4)

Member
Joined 2004
Paid Member
Is LFSource.Below available in 4.9 ?
Try "LFSource.B". I don't know why I changed that. I know that I added a lot of functionality in this area (including the possibility of extracting data for several sources in one go) but don't remember all the details, I would need to dive into the source code again. I actually never made any use of it.
 
Sorry for interrupting the flow of conversation but I did not know where else I can contact Marcel. I pm'ed here and filled the form over website but had no reply on either site.

I have the script of ce360 from this topic but I want the throat angle matching Beyma cp380m. I also would like to pay for the file as I will be building one for myself and one for a customer/friend so it can be considered half way commercial. I may also build and sell for future customers which then would be considered commercial although in a very small scale (built to order). I plan to cnc the ce360 out of plywood. I will layer and glue plywood sheets and then machine the horn out of it.
 
Try "LFSource.B". I don't know why I changed that. I know that I added a lot of functionality in this area (including the possibility of extracting data for several sources in one go) but don't remember all the details, I would need to dive into the source code again. I actually never made any use of it.
Thanks! Worked a treat!

1667908620622.png
 
It would really great to have a working script example that shows how to get both the WG and the LF driver solve in one go...
To my knowledge, the process is still dependent on a series of deliberate entries and cannot be executed in one go. Maybe, however, I have missed an essential developement how to do it in a more straight forward manner.

Since the introduction of the feature in ath 4.8.3b2 ...:
Oops, I forgot to set axial driving on the LF source. Simply add "Direction=z" to the driving group (solving.txt), that's it:

View attachment 1044280
Ath 4.8.3b2
Now you can try to export the polars: https://at-horns.eu/release/ath-4.8.3-beta2.zip

1) solve it (needed only once)
2) set only one source active in the file observation.txt (set Weight=0 or 1 for the DrvGroup)
3) calculate spectra and save the data
4) run ath with -r and a tag of the active source (e.g. ath -r woofer), this will export the polars into a subdir "...\Results\FRD"
5) set the other source active in observation.txt
6) repeat steps 3 and 4 for the other source

I follow these steps. Maybe you can script these and automate them ...:
-2) set up two entries in wfg.cfg for horizontal and vertical polars of the source, i.e. ABEC.Polars:SPL_H = {...}, ABEC.Polars:SPL_V = {...} with "Inclination = 270" for vertical and no inclination for horizontal, both "MapAngleRange = -180,180,72"
-1) create abec project from wfg.cfg
0) after each change that ist done to wfg.cfg, saved and a new ABEC project generated via ath, before solving (!), manipulate solving.txt (again) and add " Direction=z" behind "DrvGroup=1002;" otherwise, failure.

1) solve it (needed only once)
2) set only one source active in the file observation.txt (set Weight=0 or 1 for the DrvGroup)
3) calculate spectra (F7) and save the data (export) (ctrl+F7)
4) run ath with -r, this will export the polars into a subdir "...\Results\FRD"
5) copy data to a folder and batch rename (i.e. "tweeter")
5) set the other source active in observation.txt,
6) repeat steps 3 and 4 for the other source
7) copy data to a folder and batch rename (i.e. "woofer")
 
  • Like
Reactions: 1 user
Member
Joined 2004
Paid Member
Sorry guys, too many requests, too little time (and I'm really not into business). I will try to come back to everybody who is asking something but I just can't say when.

- You can try this, it should work in Ath 4.9. After saving the spectra data from ABEC just execute: ath <your_cfg_file> -r
Perhaps you will want to change the angle ranges, that's up to you. I think that has been covered here already, somewhere.

Code:
Throat.Diameter = 25.4
Throat.Angle = 10
Coverage.Angle = 45
Length = 60
Term.s = 1
Term.n = 4
OS.k = 1.0
Term.q = 0.98

Mesh.Enclosure = {
  Spacing = 30,30,30,200
  Depth = 180
  EdgeRadius = 25
  FrontResolution = 8,8,14,14
  BackResolution = 25,25,25,25
 
  LFSource.B = {
    Radius = 70
    Spacing = 20
    DrivingWeight = 1.0
    SID = 1        ; 0 is reserved for the waveguide
  }
}

Mesh.Quadrants = 14

Mesh.LengthSegments = 20
Mesh.AngularSegments = 64
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 8.0
Mesh.SubdomainSlices =

Mesh.ZMapPoints = 0.5,0.2,0.5,0.8

ABEC.SimType = 2
ABEC.MeshFrequency = 1000
ABEC.NumFrequencies = 16
ABEC.f1 = 200
ABEC.f2 = 10000

; --------------------------------------------------------------
; waveguide polars

ABEC.Polars:H_WG = {
  SID = 0    ; waveguide -> always SID = 0
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = wg_hor
  }
}

ABEC.Polars:V_WG = {
  SID = 0   ; waveguide -> always SID = 0
  Distance = 2
  PhaseComp = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  Inclination = 90
  FRDExport = {
    NamePrefix = wg_ver
  }
}

; --------------------------------------------------------------
; woofer polars

ABEC.Polars:H_LFB = {
  SID = 1        ; as set in Mesh.Enclosure / LFSource.B
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = lf_hor
  }
}

ABEC.Polars:V_LFB = {
  SID = 1        ; as set in Mesh.Enclosure / LFSource.B
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = lf_ver
  }
}

; --------------------------------------------------------------

Output.ABECProject = 1
Output.STL = 0

enclosure.PNG
 
  • Like
Reactions: 1 users
Sorry guys, too many requests, too little time (and I'm really not into business). I will try to come back to everybody who is asking something but I just can't say when.

- You can try this, it should work in Ath 4.9. After saving the spectra data from ABEC just execute: ath <your_cfg_file> -r
Perhaps you will want to change the angle ranges, that's up to you. I think that has been covered here already, somewhere.

Code:
Throat.Diameter = 25.4
Throat.Angle = 10
Coverage.Angle = 45
Length = 60
Term.s = 1
Term.n = 4
OS.k = 1.0
Term.q = 0.98

Mesh.Enclosure = {
  Spacing = 30,30,30,200
  Depth = 180
  EdgeRadius = 25
  FrontResolution = 8,8,14,14
  BackResolution = 25,25,25,25
 
  LFSource.B = {
    Radius = 70
    Spacing = 20
    DrivingWeight = 1.0
    SID = 1        ; 0 is reserved for the waveguide
  }
}

Mesh.Quadrants = 14

Mesh.LengthSegments = 20
Mesh.AngularSegments = 64
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 8.0
Mesh.SubdomainSlices =

Mesh.ZMapPoints = 0.5,0.2,0.5,0.8

ABEC.SimType = 2
ABEC.MeshFrequency = 1000
ABEC.NumFrequencies = 16
ABEC.f1 = 200
ABEC.f2 = 10000

; --------------------------------------------------------------
; waveguide polars

ABEC.Polars:H_WG = {
  SID = 0    ; waveguide -> always SID = 0
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = wg_hor
  }
}

ABEC.Polars:V_WG = {
  SID = 0   ; waveguide -> always SID = 0
  Distance = 2
  PhaseComp = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  Inclination = 90
  FRDExport = {
    NamePrefix = wg_ver
  }
}

; --------------------------------------------------------------
; woofer polars

ABEC.Polars:H_LFB = {
  SID = 1        ; as set in Mesh.Enclosure / LFSource.B
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = lf_hor
  }
}

ABEC.Polars:V_LFB = {
  SID = 1        ; as set in Mesh.Enclosure / LFSource.B
  Distance = 2
  MapAngleRange = 0,90,19
  NormAngle = 0
  FRDExport = {
    NamePrefix = lf_ver
  }
}

; --------------------------------------------------------------

Output.ABECProject = 1
Output.STL = 0

View attachment 1107788
Looks like it's working although the V and H on the woofer look identical...
Here is what I got:

2way_1go_results_example.png


Thanks!

Edit looking at the script I think it's missing the
inclination = 90 for the V part