This guide explains how the SFX & Edit SFX triggers work.
Made by Electrify and DangerChampion
Required Guide: Choosing a Song, Song & Edit Song
Medium Difficulty
Medium (14-16 minutes)
Sometimes, a GD level with a Newgrounds song just isn't enough to make your levels complete. You want to add in SFX to add details to your level. Imagine playing a Super Mario game, but without the iconic jump sound. It just doesn't hit the same. The new SFX trigger completely changes that now, and here's how to utilize it to your advantage.
First place down the SFX trigger. When selected, click on the Edit Object button. The first page of the SFX Trigger is shown here.
You can select the sound effect you want by clicking on the menu button in the top right corner of the UI.
From here, you are able to select a wide variety of sounds, ranging a total of 13,590 sound effects for anyone to choose. The magnifying glass allows you to search for any track, and even has a checkbox for specific folders.
Exiting “Find SFX'', you can click on the arrow button to sort these sound effects in alphabetical order (Name+/Name-), length (Len+/Len-), or SFX ID (ID+, ID-).
Once you select an audio, you are able to replay it and use the sliders and checkboxes to adjust the sound effect to your liking.
Speaking of which, let's talk about the SFX options on the first page:
As mentioned in the Song & Edit Song guide, the Speed slider changes the velocity of the song that is played in the channel.
Pitch: Transposes the sound per semitone.
In music theory, there are 12 semitones in one octave, ranging from keys C to B.
In this piano chart to the right, we can move between semitones by playing the next note. Next semitone of C in this case would be C#, then D, then D#, and so on. If I were to play C, then move myself 12 semitones higher or lower, I will end up back to C, but a different frequency will be played.
What's actually happening is that the wavelength gets multiplied if you play the same note every 12th semitone. These are referred to as Octaves.
Going back to GD, we have a range of 2 octaves, one being lower and one being higher. (If C4 is the note, then it ranges from C3 at -12 pitch to C5 at 12 pitch)
Volume: Adjusts the gain volume of the sound being played.
Over on the bottom right, you can see 4 checkboxes:
Reverb: Causes the sound to be repeated and bounced around numerous times in an echo. These could be used to insinuate a sense of space in an enclosed area in real life through sound. Tighter reverb details a small room (like a bathroom), while a big, open reverb details a big room (like a church).
Clicking on the + Button on reverb presents you with a bunch of presets made for reverberation.
Note that there is a limitation to using reverbs. As of right now, there is only ONE global reverb channel. This means that you cannot use multiple sounds in different reverb settings played simultaneously.
FFT: Stands for “Fast Fourier Transformation”. It calculates the DFT (Discrete Fourier Transform), or its inverse at a much faster rate. In music production, signal processing, and audio engineering, FFT is used to signal speeds and pitches in the form of frequencies in a given domain and also gives information about its signal.
In audio engineering and software development, this is used for many applications, such as vocoding, multi-band compression, EQing, and simply for frequency analysis. Here is an example of using FFT to visually demonstrate a frequency spectrum of a song.
If you would like to learn more about how FFT works, here is a link to a website that explains the general basics about Fast-Fourier Transform.
In Geometry Dash, we do not need to worry about how to apply all of the complicated post-processing effects to our sound. In this case, FFT is used as a different stretching algorithm for sorting speeds and pitches.
In comparison to FL Studio, this is equivalent to using resample vs stretch mode when stretching audio.
Loop: Repeats the audio from the beginning of the SFX when it reaches the end of the track.
PreLoad: As covered in the Song trigger, it reads the audio before the trigger is being spawned. Useful for optimization if there is multiple audio being loaded at once.
Let's head to the next page of the SFX Trigger by clicking on the right arrow. The second page has the following options:
The Start slider allows you to start from any timestamp in the song, and vice versa for the End slider.
As before the values are in milliseconds, so 1 second is actually 1000 in value, 2 seconds = 2000, and so on.
The FadeIn slider gives values of how much the song goes from no volume to its actual volume gain (Volume Slider), and vice versa for the FadeOut slider.
Let's head to the third page of the SFX Trigger by clicking on the right arrow.
On the left, there are two counters and a slider:
Unique ID: A new ID dedicated to SFX. The sounds get linked into these Unique IDs instead of relying on Group IDs.
SFXGroup: A new ID dedicated to sorting SFX IDs into groups.
MinInterval: The minimal interval that occurs before playing the sound effect. Behaves like a cooldown.
Use UniqueID and SFXGroup to organize your sound library and to know which Unique ID and SFXGroup are correlated.
On the right you have 3 checkboxes:
IsUnique: A constant Unique ID in the SFXGroup that makes it so that no other SFX are able to replace or substitute itself.
Override: Unlike IsUnique, this gives the ability for SFX to be able to replace or substitute any Unique IDs and SFXGroup.
Ignore Volume Test: Ignores volume being adjusted by proximity (i.e. If the proximity makes the Volume go to 0, enabling this will ignore it.).
Let's head to the final page of the SFX Trigger by clicking on the right arrow.
This entire page deals with proximity based on the player, camera, or object. As stated previously, proximity in music is adjusting volume gain based off of the distance relative to an object or player. The farther away the target is to the object, the less of an effect it'll create. The closer it is, the more effect it'll create.
Group ID 1 is the target object that will be used when calculating the proximity.
Group ID 2 (when applying proximity with Group ID 1) is the object that will be applied to the object.
In the left set of sliders, you can adjust the volume for whatever distance you set it to:
VolNear: Volume in a near distance. This creates a red area when selecting the SFX trigger.
VolMed: Volume in a range of distances between Near and Far. This creates a green area when selecting the SFX trigger.
VolFar: Volume in a far distance. This creates a blue area when selecting the SFX trigger.
In the right set of sliders, you can adjust the distance of VolNear, VolMed, and VolFar in their own respective sliders labeled MinDist, Dist2, and Dist3. Adjusting these sliders will also move the colored areas accordingly.
Note that these colored lines represent a visualization of proximity.
On the bottom left, you can select either P1, P2, and/or Camera to be the replacement for Group ID 2.
On the bottom right, you can select different modes for proximity. Each button shows arrows facing which way will the proximity take effect, while the line represents the object that is being targeted. (Group ID 1).
The Edit SFX trigger lets you change the properties of an existing sfx in your level. When selected, click on the Edit Object button to bring up the page on the right.
You can assign target Group IDs for the SFX trigger that is played, however you can alternatively choose the SFXGroup and the Unique ID for the SFX trigger. These help identify which sfx to edit.
The Duration slider is the time it takes to edit the property of the song (Volume or Speed). Think of this as the “Move Time” in a Move trigger or the “Fade time” in the alpha trigger. Alongside the duration slider, you got two checkboxes:
Stop: Abruptly stops the song in the channel.
Stop Loop: Ends the loop of the song played in the channel, assuming that Loop is enabled in the song trigger.
The Speed slider changes the velocity of the song that is played in the channel. Next to the slider is the Change Speed checkbox. This needs to be enabled in order for the speed change to take effect. Note that: 12 Speed = 150% Speed, -12 Speed = 50% Speed.
Below is the formula for the velocity of the speed:
s = 2^(t/12)
t = the speed set to the slider
Below is the formula for the time it takes when applying its speed slider:
n+(2^t/12)(x-n)
n = start offset
x = end offset
Also worth mentioning that each speed increments and decrements per semitone. 12 semitones = 1 octave. (This will later be talked about when we cover pitches in the SFX trigger).
The Volume slider adjusts the gain (or volume) of the channel that is being played. Next to the slider is the Change Volume button. This needs to be enabled in order for the volume to take effect.
Click on either arrow to go to the next page of the SFX Trigger. This page deals with proximity relative to the player, object, or camera.
This page is already covered in the fourth page of the SFX trigger, so this is going to be brief, but this modifies the volume based on the distance of the targeted object, whether it would be the Group ID, Player 1, Player 2, or Camera. Multi-colored lines are visually shown in the editor when selecting the trigger.
This video demonstrates uses of the SFX and Edit SFX triggers: