Added Sound related Editor Scripts and UI
You can reffer to it as v1.1 (added release on Github).
It gives you powerful capabilities over sound files in Defold (“prehear” sound, convert, etc), but it might be complex to install, because it relies on FFMPEG (but once installed it requires no additional actions).
Current scripts run only on Windows. OS-independent scripts (e.g. creating components) should work on all platforms. I might do Linux too in the future. MacOS PRs are welcomed.
Installation - FFmpeg dependency
Currently, there is no possibility to do anything with sounds in Editor Scripts, afaik. So I used powerful execute
and utilised FFmpeg.
In order to use them, you have to install FFmpeg then. Download executables from:
https://www.ffmpeg.org/download.html
You can eventually add installation localization to PATH (windows).
On Windows you can also:
- Open Windows Powershell
winget install ffmpeg
-
Y
to confirm
- Check installation path:
where ffmpeg
( should give e.g. → C:\ffmpeg\bin\ffmpeg.exe
)
On Linux you can (though scripts are Windows only - they need modifications to run on Linux):
- Open terminal
-
sudo apt install ffmpeg
(or sudo snap install ffmpeg
)
-
Y
to confirm
- Check installation path:
which -a ffmpeg
(should give e.g. → /usr/bin/ffmpeg
or /bin/ffmpeg
)
If your path is different, please modify it in scripts (perhaps there should be a script to install ffmpeg and add its path here, but for now… heh ) in the common ffmpeg_helper.lua
module:
-- Adjust the paths if needed
local FFMPEG_PATH = "C:/ffmpeg/bin/ffmpeg.exe"
local FFPLAY_PATH = "C:/ffmpeg/bin/ffplay.exe"
local FFPROBE_PATH = "C:/ffmpeg/bin/ffprobe.exe"
FFplay and FFprobe dependency
Additionally, sound-play Editor Script utilizes ffplay
and sound-cut utilizes ffprobe
.
Ensure that ffplay
and ffprobe
comes with your installation. They might be in .../ffmpeg/bin/
.
Check ffplay -version
and ffprobe -version
in terminal. If not, download them and copy there.
Editor Scripts
sound-convert
It allows you to convert sound file(s) (.mp3
, .wav.
, .ogg
, .flac
or .aac
) to one of Defold compatible sound files (.wav
, .ogg
).
- Right click on any sound file (or selected multiple sound files).
- Select
Convert Sound
.
- Select output file format from a dropdown list (
OGG
or WAV
)
- Click
Convert
For each source file, it creates a file with the same name as a source file, in the same location, but with .wav
/ .ogg
extension. Ogg file is at 44100 Hz.
sound-play
It allows you to “prehear” given sound. Plays .mp3
, .wav
, .ogg
, .flac
or .aac
. It plays the sound once either until end of file or until the moment when the popup UI is closed.
- Right click on any sound file.
- Select
Play
P.S.
There are two versions of this script actually, but second is commented out:
-
Play
when you run it first time your OS might go crazy - it plays in background, but because of this, it requires your explicit permissions, e.g. Windows asks for permission to run from Unknown Publisher (sorry, it’s in Polish):
You can uncheck this bottom checkbox saying "Always ask before opening this file"
and it should never prompt again.
Your antivirus might also block or quantine it - you can make an exception for it.
opens terminal window additionally. You can then either close this window or closing the UI popup in Defold will also close it.
-
Play in Terminal
because of issues above, I leave there another version that is “safe” - plays in separate Terminal Window. If you like it more, you can use this (just comment out Play in Terminal command in the script).
I would love if someone could figure out and propose better solutions
sound-cut
It allows you to cut a subtrack out of the source track (.mp3
, .wav
, .ogg
, .flac
or .aac
). It needs start
and end
timestamps and creates one subtrack saved into file of same format, where X is start (in seconds from original sound beginning) and Y is stop timestamp (in s).
end
has to be larger than start
.
end
can’t be larger than source sound duration (provided as information in popup)
- Right click on any sound file.
- Select
Cut Subtrack
.
- Set
Start Time
and End Time
timestamps (in seconds). Eventually change output file name.
- You can eventually “prehear” the cut subtrack by clicking
Play Subtrack
button. Close the popup to stop it playing.
- Click
Extract
to extract the cut subtrack to a file.
P.S. It checks for input validity and also asks if you want to overwrite if file with same name exists. Also, make sure you click “somewhere” after editing inputs - value is changed “on release” not on input changes, so before you click “Play Subtrack”, ensure the changed values are “in”.
P.P.S. I know, it would be great to have a visual waveform on a timeline with start and end markers for it to be convenient, but anyway - it simplifies this process a lot and you don’t need to explicitly use external programs
sound-component
It allows you to create a Defold Sound Component out of a compatible sound file (.wav
or .ogg
).
- Right click on a sound file.
- Select
Create Sound Component
.
- Eventually change default properties.
- Click
Create
.