Hornresp

Have to work on some PA bandpass boxes for a client.

Thanks for swatting the bugs David!

I've been having fun with HR all week designing twin BP4's for 2 Parts Express' GRS 12SW4's. I've modeled Nd, Nd with closed front, OD, and BP4 functions. HR is addictive! I'm thinking of painting them orange like NFL scoring pylons. I got a new 3 piece sectional for the man cave and I want some end table subs.

Brown is old. Smoke is new.
 

Attachments

  • 20191230_174610.jpg
    20191230_174610.jpg
    723.6 KB · Views: 184
  • 20200118_133756.jpg
    20200118_133756.jpg
    699.8 KB · Views: 177
Try simulate with damping material. Fill the closed end of the pipe up to the speaker.

Hi Mårten,

I think Bambinz is already doing that - notice how the L12 and L23 slider labels are coloured pink, not red. This signifies that the first two segments contain absorbent filling material.

Kind regards,

David
 

Attachments

  • Attach_1.png
    Attach_1.png
    56.2 KB · Views: 192
Could we get a status bar at the bottom for the various calculator windows as well? Maybe some tips on what the parameters mean and how to use the calculator?

The parameters mean the same as they do on the main input window. Moving the mouse pointer over a parameter on the main input window displays a description in the status bar panel at the bottom of the window.

Information regarding the Horn Segment Wizard is provided in the Help file. The option button simply selects which particular parameter value is to be calculated, given the other parameters as inputs.

Attachment 1 shows the default option for a conical segment - given S1 (throat area), S2 (mouth area) and L12 (axial length), pressing the Calculate button will calculate Fta (horn mouth flare tangent angle).

If you want to specify a conical horn segment but only know the throat area, axial length and flare tangent angle, you would click the option button alongside the S2 input text box, then press the Calculate button to calculate the required mouth area, and then press the Save button to transfer all values to the main input parameters screen.
 

Attachments

  • Attach_1.png
    Attach_1.png
    26 KB · Views: 168
  • Attach_2.png
    Attach_2.png
    69.2 KB · Views: 170
Hi David,


Could it be that "Paste Driver from Database" copies the values from the .txt file by line position (order), rather than by matching label value? See attachment.

Some other parameters may be affected as well.
I did edit the .txt file on purpose, that much is true.

Kind regards,
Andre
 

Attachments

  • Hornresp-2020-01-26_17-51-40.gif
    Hornresp-2020-01-26_17-51-40.gif
    27.2 KB · Views: 73
Last edited:
Could it be that "Paste Driver from Database" copies the values from the .txt file by line position (order), rather than by matching label value?

Hi Andre,

That is exactly what Hornresp does. Anything to the left of the equals sign "=" on each line is simply ignored. For this to work though, the driver parameters need to be listed in the correct order in the file.

To illustrate - you should find that the values in the attached Driver file paste correctly, even though the labels have been masked.

Kind regards,

David
 

Attachments

  • Test Driver.txt
    225 bytes · Views: 63
I suspect that Hornresp does not use the built-in ReadPrivateProfileString() and GetPrivateProfileString() functions to read values from those files.

You suspect correctly :).

Hornresp only uses standard Visual Basic 6 functions, statements and methods. ReadPrivateProfileString() and GetPrivateProfileString() are not VB6 functions.
 
Try simulate with damping material. Fill the closed end of the pipe up to the speaker. With damping material you will be handle higher order harmonics.

Without damping the real speaker will not be usable above maybe 500 Hz.

Hi,
Thank you very much, I have done this and works much much better. If you want I have create a thread to find help to develop my speakers :)

New 3" Full range TL

Thank you!!!
 
I suspect that Hornresp does not use the built-in ReadPrivateProfileString() and GetPrivateProfileString() functions to read values from those files :).

David's files look like INI files but aren't. Those built-ins would not work.
I've been swimming in Unix and Windows lakes since 40+ years, and honestly the A=B entry format in publicly visible files where A is treated as a comment is at least misleading.
David, if you do not intend to go reading "by key" wouldn't it then be an idea to just add a quick validation test requiring the left parts (the A's) to be in order? Could be easily done for instance by concatenating all left parts while reading, and then comparing the resulting string with your predefined, required value.
Your call.

At least now I understand what went wrong in the past. :)

Thanks,
Andre
 
David, if you do not intend to go reading "by key" wouldn't it then be an idea to just add a quick validation test requiring the left parts (the A's) to be in order? Could be easily done for instance by concatenating all left parts while reading, and then comparing the resulting string with your predefined, required value.

If the read process is going to involve doing something with the left parts, then it may as well do the extra step of using them to identify the variables that should have their values set by the right parts :)

But yes, it's definitely NOT an INI file, though the format looks similar. Here's a copy of one - notice why it won't work as an INI file?

Alpine SWR-12D2

Sd=479.00
Bl=18.63
Cms=1.41E-04
Rms=5.89
Mmd=240.39
Le=3.10
Re=3.90
Pmax=100
Xmax=5.0
Re'=4.09
Leb=0.71
Le=13.99
Ke=0.23
Rss=318.35
Rms=0.00
Ams=0.00E+00
LossyLe=0
SemiInductance=1
Damping=0

(Hint: check for keys that have duplicate names, and the value that has no name at all :) )


An INI file would look more like the following:

[default]
Name=Alpine SWR-12D2
Sd=479.00
Bl=18.63
Cms=1.41E-04
Rms=5.89
Mmd=240.39
Le=3.10
Re=3.90
Pmax=100
Xmax=5.0

[semi-inductance]
Re'=4.09
Leb=0.71
Le=13.99
Ke=0.23
Rss=318.35
Rms=0.00
Ams=0.00E+00
LossyLe=0
SemiInductance=1
Damping=0
 
David, if you do not intend to go reading "by key" wouldn't it then be an idea to just add a quick validation test requiring the left parts (the A's) to be in order? Could be easily done for instance by concatenating all left parts while reading, and then comparing the resulting string with your predefined, required value.

Hi Andre,

If the driver database files are created and edited using the Hornresp 'Copy Driver to Database' menu command then the parameters will automatically be in order, so no need for a validation test. I am actively trying to discourage users from manually creating or modifying driver files themselves, as they invariably get something wrong :).

The decision was taken to store the information in the file in "readable" sequential access form simply to make it easier for me to track down any driver database Copy / Paste problems reported by users. It was never intended that the user view the raw data in the file, or to manipulate it manually - that is a recipe for disaster :).

In principle I don't like importing files created external to Hornresp - I made an exception in the case of Brian's BOXPLAN worksheets, but he knows the format required and that if he deviates from it, that all hell will break loose... :).

Kind regards,

David
 
Regarding multiple segment horns:

The mouth area of the first segment is equal to the throat area of the second segment, and the mouth area of the second segment is equal to the throat area of the third segment, and so on. This is great. However, for a smooth transition from one segment to the next, one would like to have the same done for the exit and entry flare angles as well, e.g. the Fta of the first segment should be equal to the AT of the second segment, and so on. Any ideas on how to achieve that? How to get the Fta of the first segment?
 
How to get the Fta of the first segment?

If the first segment has a conical or parabolic flare then the mouth Fta can be calculated directly using the Horn Segment Wizard, as shown in Post #10403. If the first segment has an exponential flare then the mouth Fta cannot be calculated directly using the Horn Segment Wizard, as Cir is given instead. If the values of S1 and S2 are swapped in the Wizard however, the mouth Fta will be the negative of AT.

To illustrate, assume for example that we want to match a conical segment of axial length 50 cm to an exponential segment having S1 = 100, S2 = 5000 and L12 = 100 as shown in Attachment 1.

Using the Horn Segment Wizard, the mouth Fta (negative of AT) of the exponential segment is calculated to be 37.97 degrees, as shown in Attachment 2. This value can be confirmed by exporting the horn data, as shown in Attachment 3.

The throat area of the conical segment is the same as the mouth area of the exponential segment, the axial length is 50 cm and the required Fta to match the exponential segment is 37.97 degrees. The Horn Segment Wizard can be used to find the required mouth area of the matching conical segment, as shown in Attachment 4.

Attachment 5 shows the two matched segments.

I will look at the possibility of changing the Horn Segment Wizard so that in the case of an exponential segment, Cir can be toggled to directly calculate Fta instead, if required.
 

Attachments

  • Attach_1.png
    Attach_1.png
    52.4 KB · Views: 154
  • Attach_2.png
    Attach_2.png
    29.9 KB · Views: 479
  • Attach_3.png
    Attach_3.png
    63.9 KB · Views: 152
  • Attach_4.png
    Attach_4.png
    27 KB · Views: 147
  • Attach_5.png
    Attach_5.png
    46.5 KB · Views: 145
I was creating a new record for the first segment alone, which would give me the Fta

Hi SamAnytime,

That still won't give you the mouth Fta for an exponential segment, unless you export the horn data.

The Horn Segment Wizard will be changed in the next update so that for an exponential segment, either Cir or Fta can be specified / calculated.

Kind regards,

David
 
Any chance this could be modified to specify the mass kg/m^3 and a mks rayls/m number. I have a potential design that I would like to simulate. And using Acoustastuff is not going to make it work. I need thicker materials to massage the response of the driver. Basically modify the Q of the system.
 

Attachments

  • Stuffed H-Frame.jpg
    Stuffed H-Frame.jpg
    263.8 KB · Views: 75