Elvas Tower: Building frequency curves for engine clips - Elvas Tower

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Building frequency curves for engine clips Rate Topic: -----

#1 User is offline   ErickC 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 997
  • Joined: 18-July 17
  • Gender:Male
  • Location:Hastings, MN, US
  • Simulator:ORTS
  • Country:

Posted 22 June 2021 - 07:08 AM

Here's a secret that very few people have figured out. The pitch of a rotating engine is directly proportional to its RPM. It doesn't matter if it's a JT8D (although you will have two different shafts running on different RPM schedules because it's a 2-spool engine), an EMD 567, or a Wankel engine (please stop confusing pistonless engines with rotary engines - if the block isn't the rotating part, it's not a rotary engine). We can exploit that and a trick of the way that waves resonate in exhaust pipes to precisely calculate frequency curves for multiple engine clips and blend them together.

Here's the first thing you need to know. Exhaust does not propagate through the pipe smoothly with a single pulse per cylinder. Constructive and destructive interference in the overall pressure wave from the individual pressure waves from each cylinder meeting the others in the pipe results in a flow that has a peak once per combustion cycle. We hear (and feel) this as pulses in the exhaust pipe. They will occur every revolution in a 2-stroke engine, and every other revolution in a 4-stroke engine.

The second thing you need to know is there should be exactly two frequency curve points. One at a idle and one at maximum RPM.

The third thing you need to know is the idle and maximum RPM values for the engine you are working with.

The basic procedure for any given clip looks like this:

1.) Count the number of exhaust pulses in your clip and divide by the length of the clip, in seconds. For a two stroke engine, this is the number of revolutions per second. For a four-stroke engine, multiply by 2 to get the revolutions per second. Multiply by 60 to get the revolutions per minute of your engine clip.

2.) Divide the idle RPM value by the RPM of your clip and multiply this by the clip sample rate. This is the idle value for your frequency curve (variable2=0.0).

3.) Divide the maximum RPM by your clip RPM and multiply the result by the clip sample rate. This is the maximum RPM value (variable2=1.0).

4.) Build your frequency curve. You're done. Move on to the next clip. Rinse and repeat.

#2 User is offline   ErickC 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 997
  • Joined: 18-July 17
  • Gender:Male
  • Location:Hastings, MN, US
  • Simulator:ORTS
  • Country:

Posted 22 June 2021 - 07:17 AM

Here is an example. Let's say I have a 44100 Hz clip of a 2-stroke EMD 567C. The clip is 6.1 seconds long, and I counted 50 exhaust pulses.

1.) Divide 50 by 6.1 to get 8.1967. This is the RPS. Multiply by 60 to get 491.8 RPM.

2.) The idle RPM of the EMD 567C is 275. The maximum RPM is 835. So we start with the idle frequency value. Divide 275 by the calculated RPM (491.8) and multiply by the sample rate. (275/491.8)*44100 = 24659.25. This is our idle value.

3.) Divide 835 by the clip RPM (491.8) and multiply by the sample rate. In our case, (835/491.8)*44100 = 74874.45. This is our maximum value.

4.) Build your frequency curve.

				FrequencyCurve(
					Variable2Controlled
					CurvePoints ( 3
						0.0		24659.25
						1.0		74874.45
						)
					Granularity ( .001 )
				)


Repeat for the next clip. Blend with volume curves. I recommend using two volume curves per stream - one to blend one clip to the next, and a second one, identical for each stream, that is a fraction of the maximum volume at idle, and maximum volume at maximum RPM. I generally use a volume of 0.25 at idle. This is pretty close to what I have measured from field recordings.

Our sample works for an EMD 567C. So that works for a GP9 or F9 or SD9. But let's say you've got an SD7 or an F3. Those use the 567B, which runs on a different RPM schedule. So we need to create a new SMS file and new frequency curves. But it's no biggie because we already calculated a frequency curve. Remember, pitch is directly proportional to RPM, so we can just use basic multiplication and division to modify our curve. Since the idle is the same for both, we only need to calculate the maximum value. Divide the 567B max RPM (800) by the 567C max RPM (835), which works out to 0.958. Because we used idle and max for our two points, we can just copy this coefficient to a text doc and multiply all of our max RPM values by it. Our frequency curve above would thus look like this for a 567B:

				FrequencyCurve(
					Variable2Controlled
					CurvePoints ( 3
						0.0		24659.25
						1.0		71736.00
						)
					Granularity ( .001 )
				)


71736.00 is 74874.45 (the 567C maximum value) times 0.958 (800/835).

#3 User is offline   Weter 

  • Member, Board of Directors
  • PipPipPipPipPipPipPipPipPipPip
  • Group: ET Admin
  • Posts: 6,806
  • Joined: 01-June 20
  • Gender:Not Telling
  • Simulator:ORTS
  • Country:

Posted 26 June 2022 - 12:12 PM

Erick, You've mentioned clip's blending.
Would You explain, please, which clips were meant and what that blending for?
Clip for every Driver's controller notch, or some other meaning?

#4 User is offline   mrmosky 

  • Engineer
  • Group: Status: Contributing Member
  • Posts: 646
  • Joined: 02-October 16
  • Gender:Male
  • Location:Chasetown
  • Simulator:Openrails
  • Country:

Posted 17 November 2023 - 02:23 AM

Erick,

I am interested in your post as I am working on a locomotive sound file at the moment.

You say that there is one exhaust pulse for each revolution of the engine, and you counted 50 pulses in 6.1 seconds, which gives a frequency of 8.2 Hz (approximately) at about 500 rpm.

This is puzzling as it would be inaudible at such a low frequency. The human ear has an audible range of 20Hz to 20kHz.

I would still expect that the firing pulses would be dependant on the number of cylinders, with a firing stroke every 2 revolutions. So for a sixteen cylinder engine, I would expect a frequency of 500 x (16/2) = 400 Hz.

Geoff

#5 User is offline   ErickC 

  • Foreman Of Engines
  • Group: Status: Contributing Member
  • Posts: 997
  • Joined: 18-July 17
  • Gender:Male
  • Location:Hastings, MN, US
  • Simulator:ORTS
  • Country:

Posted 17 November 2023 - 10:29 AM

That would be true if you were listening for a single tone with a frequency of 50Hz. That's not what we're doing. We're listening for an cycle of distinct noises that occur 50 times a second and which will be visible in your audio editor as an amplitude cycle from a local minimum to a local maximum and back to a local minimum. You're not measuring tones in hertz, you're counting events in beats per minute (which converts directly to revolutions per minute).

In other words, you might not be able to hear a 50Hz tone, but you could definitely hear a drumroll on a snare drum at 3000bpm.

As to your second comment, you're assuming an engine where each cylinder has its own exhaust pipe. An engine where multiple cylinders exhaust to any number of combined pipes will always develop a resonance of gas flow in the pipe that is equal to the number of combustion events per cylinder per stroke. You can empirically verify this by watching locomotive load test videos on YouTube, applying my methodology, and comparing the calculated RPM to the tachometer. You can also verify this, as I've pointed out elsewhere, by watching videos where diesel locomotive exhaust is clearly visible.

The proof, of course, is in the results: either the 70-tonner or the GP9s should provide ample evidence. :)

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users