A simple and easy-to-use fx sounds generator, based on the amazing Dr.Petter's sfxr

Overview

rFXGen

A simple and easy-to-use fx sounds generator, based on the amazing Dr.Petter's sfxr.

rFXGen can be used for free as a WebAssembly online tool and it can also be downloaded as a standalone tool for Windows and Linux with some extra features. Binaries for other OSs are not released but they can be compiled from sources.


rFXGen Features

  • Predefined sound presets (Coin, Shoot, Explosion, PowerUp...)
  • Multiple wave types supported (Square, Sawtooth, Sine, Noise)
  • Up to 4 save slots to store generated sound (temporary save)
  • Load .rfx sounds or import .sfs files (compatible with sfxr)
  • Save .rfx sounds with generation parameters (104 bytes only)
  • Export generated waves with configurable sample-rate and bits-per-sample
  • Export to .wav, .raw data or .h code file (byte array)
  • Five unique GUI styles: Light, Jungle, Candy, Lavanda and Cyber
  • Completely free and open-source

rFXGen Standalone Additional Features

  • Command-line support for .rfx/.sfs to .wav batch conversion
  • Command-line audio player for .wav, .ogg, .mp3 and .flac
  • Completely portable (single-file, no-dependencies)

rFXGen Screenshot

rFXGen Cyber UI style

rFXGen Usage

Open the tools and use the buttons to generate random sounds. Use the sliders to customize sound parameters. Sounds could be saved as .rfx (sound generation parameters) and also exported to .wav, .raw (samples data) and .h (byte array code file).

rFXGen Standalone comes with command-line support for batch conversion and audio playing. For usage help:

rfxgen.exe --help

rFXGen License

rFXGen source code is distributed as open source, licensed under an unmodified zlib/libpng license.

rFXGen binaries are completely free for anyone willing to compile it directly from source.

rFXGen Standalone desktop tool is distributed as freeware.

In any case, consider some donation to help the author keep working on software for games development.

Copyright (c) 2015-2022 raylib technologies (@raylibtech)

Comments
  • Black screen when opened on Linux

    Black screen when opened on Linux

    OS: Arch 64 bit When I run rfxgen empty black window appears. Tested on following versions:

    • c132ff build from source with raylib built from master (61e0e4 commit)
    • Itch.io builds (both dark and light theme

    I tested both options with Intel graphics as well as primusun (Nvidia GPU)

    Windows build works via Wine. I tried to run few Raylib examples, they work fine.

    cli output:

    ./rfxgen_dark                                                                                                       pon, 19 mar 2018, 15:00:49
    INFO: Initializing raylib (v1.9.6-dev)
    INFO: Display device initialized successfully
    INFO: Display size: 1600 x 900
    INFO: Render size: 500 x 500
    INFO: Screen size: 500 x 500
    INFO: Viewport offsets: 0, 0
    INFO: GLAD: OpenGL extensions loaded successfully
    INFO: OpenGL 3.3 Core profile supported
    INFO: GPU: Vendor:   Intel Open Source Technology Center
    INFO: GPU: Renderer: Mesa DRI Intel(R) Ivybridge Mobile 
    INFO: GPU: Version:  4.2 (Core Profile) Mesa 17.3.6
    INFO: GPU: GLSL:     4.20
    INFO: Number of supported extensions: 175
    INFO: [EXTENSION] DXT compressed textures supported
    INFO: [EXTENSION] ETC2/EAC compressed textures supported
    INFO: [EXTENSION] Anisotropic textures filtering supported (max: 16X)
    INFO: [TEX ID 1] Texture created successfully (1x1 - 1 mipmaps)
    INFO: [TEX ID 1] Base white texture loaded successfully
    INFO: [SHDR ID 1] Shader compiled successfully
    INFO: [SHDR ID 2] Shader compiled successfully
    INFO: [SHDR ID 3] Shader program loaded successfully
    INFO: [SHDR ID 3] Default shader loaded successfully
    INFO: [CPU] Default buffers initialized successfully (lines, triangles, quads)
    INFO: [VAO ID 1] Default buffers VAO initialized successfully (lines)
    INFO: [VAO ID 2] Default buffers VAO initialized successfully (triangles)
    INFO: [VAO ID 3] Default buffers VAO initialized successfully (quads)
    INFO: OpenGL default states initialized successfully
    INFO: [TEX ID 2] Texture created successfully (128x128 - 1 mipmaps)
    INFO: [TEX ID 2] Default font loaded successfully
    
    

    Screenshot: zrzut ekranu z 2018-03-19 15-00-56

    opened by TeddyDD 29
  • App crash when Delta Slide value is less than 0 and Min Frequency value is greater than 0.30 (100% reproducible)

    App crash when Delta Slide value is less than 0 and Min Frequency value is greater than 0.30 (100% reproducible)

    This bug is 100% reproducible, follow these steps:

    1. Open rfxgen.exe
    2. Increase Min frequency value greater or equal to 0.30
    3. Decrease Delta Slide value below 0
    4. CRASH!
    opened by AliElSaleh 8
  • Segmentation fault when trying to export wave

    Segmentation fault when trying to export wave

    I tried doing the same thing with the GUI version of rfxgen, but it was not working either.

    Compilation line (GCC 9.3.0):

    gcc -o rfxgen-c rfxgen.c external/tinyfiledialogs.c -g -Iexternal -no-pie -D_DEFAULT_SOURCE
    -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
    

    Terminal output:

    [email protected]:~/다운로드$ uname -a
    Linux h30646 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    
    [email protected]:~/다운로드$ ls
    input_ex.rfx rfxgen-c
    
    [email protected]:~/다운로드$ ./rfxgen-c -i input_ex.rfx -o result.wav
    
    Input file:       input_ex.rfx
    Output file:      result.wav
    Output format:    44100 Hz, 16 bits, Mono
    
    Segmentation fault (core dumped)
    
    [email protected]:~/다운로드$ gdb rfxgen-c
    
    ...
    
    (gdb) run -i input_ex.rfx -o result.wav
    Starting program: /tmp/guest-cny2jf/다운로드/rfxgen-c -i input_ex.rfx -o result.wav
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    
    Input file:       input_ex.rfx
    Output file:      result.wav
    Output format:    44100 Hz, 16 bits, Mono
    
    
    Program received signal SIGSEGV, Segmentation fault.
    __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:308
    308     ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory.
    (gdb) bt
    #0  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:308
    #1  0x0000000000499448 in drwav.on_write_memory ()
    #2  0x00000000004956ed in drwav_init_write.internal ()
    #3  0x000000000049cade in drwav_init_memory_write.internal ()
    #4  0x00000000004c2bd4 in drwav_init_memory_write ()
    #5  0x00000000004c5cf9 in SaveWAV ()
    #6  0x00000000004cb998 in ExportWave ()
    #7  0x0000000000416630 in ProcessCommandLine (argc=5, argv=0x7fffffffde88) at rfxgen.c:1047
    #8  0x0000000000415865 in main (argc=5, argv=0x7fffffffde88) at rfxgen.c:246
    (gdb) quit
    A debugging session is active.
    
            Inferior 1 [process 19361] will be killed.
    
    Quit anyway? (y or n) y
    
    [email protected]:~/다운로드$ 
    
    opened by jdeokkim 7
  • Doesn't sound and crashes after unpligging the headphones

    Doesn't sound and crashes after unpligging the headphones

    On Windows 10, when using the version downloaded from itch.io .

    When I unplug the headphones, the OS automatically selects my screen speakers as the audio output device. RFXGen is still working, but not a sound will play.

    If I try to close the application then, it will freeze, forcing me to kill it from the Task Manager.

    opened by EJSainz 5
  • Can't save sfx files

    Can't save sfx files

    On Windows 10, when using the version downloaded from itch.io .

    I've been saving a lot of files, but when I wanted to load none of them was there :-( .

    opened by EJSainz 5
  • Split rFXGen implementation into its own header

    Split rFXGen implementation into its own header

    Splitting the WaveParams-specific API to its own RFXGEN_IMPLEMENTATION rfxgen.h header allows other raylib applications to integrate with its API to generate new wave sounds on the fly.

    opened by RobLoach 4
  • 2x screen size toggle makes the bottom text appear off-screen

    2x screen size toggle makes the bottom text appear off-screen

    Once again not the biggest deal, and fixed by hiding task bar or dragging the title bar upwards. But it would be nice if it all fit on screen without doing that.

    Windows 10

    opened by lesleyrs 4
  • implicit declaration of function 'tinyfd_saveFileDialog' is invalid in C99 when compiling from source on macos

    implicit declaration of function 'tinyfd_saveFileDialog' is invalid in C99 when compiling from source on macos

    Following this answer here I compiled the source on my mac, but it gives the follow error

    In file included from rfxgen.c:98:
    ./gui_file_dialogs.h:141:42: error: implicit declaration of function 'tinyfd_openFileDialog' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            case DIALOG_OPEN: tempFileName = tinyfd_openFileDialog(title, fileName, filterCount, filterSplit, message, 0); break;
                                             ^
    ./gui_file_dialogs.h:141:40: warning: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
            case DIALOG_OPEN: tempFileName = tinyfd_openFileDialog(title, fileName, filterCount, filterSplit, message, 0); break;
                                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./gui_file_dialogs.h:142:42: error: implicit declaration of function 'tinyfd_saveFileDialog' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            case DIALOG_SAVE: tempFileName = tinyfd_saveFileDialog(title, fileName, filterCount, filterSplit, message); break;
                                             ^
    ./gui_file_dialogs.h:142:42: note: did you mean 'tinyfd_openFileDialog'?
    ./gui_file_dialogs.h:141:42: note: 'tinyfd_openFileDialog' declared here
            case DIALOG_OPEN: tempFileName = tinyfd_openFileDialog(title, fileName, filterCount, filterSplit, message, 0); break;
                                             ^
    ./gui_file_dialogs.h:142:40: warning: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
            case DIALOG_SAVE: tempFileName = tinyfd_saveFileDialog(title, fileName, filterCount, filterSplit, message); break;
                                           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./gui_file_dialogs.h:143:39: error: implicit declaration of function 'tinyfd_messageBox' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            case DIALOG_MESSAGE: result = tinyfd_messageBox(title, message, "ok", "info", 0); break;
                                          ^
    ./gui_file_dialogs.h:144:47: error: implicit declaration of function 'tinyfd_inputBox' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            case DIALOG_TEXTINPUT: tempFileName = tinyfd_inputBox(title, message, ""); break;
                                                  ^
    ./gui_file_dialogs.h:144:45: warning: incompatible integer to pointer conversion assigning to 'const char *' from 'int' [-Wint-conversion]
            case DIALOG_TEXTINPUT: tempFileName = tinyfd_inputBox(title, message, ""); break;
            
    

    What I actually ran

    clang -framework CoreVideo -framework IOKit -framework Cocoa -framework GLUT -framework OpenGL /usr/local/Cellar/raylib/3.5.0/lib/libraylib.a -std=c99 -I/opt/raylib/src -I../../raygui/src/ rfxgen.c external/tinyfiledialogs.c -o rfxgen
    
    opened by mTvare6 4
  • Add RFXGEN_GEN_SAMPLE_SIZE and RFXGEN_GEN_CHANNELS

    Add RFXGEN_GEN_SAMPLE_SIZE and RFXGEN_GEN_CHANNELS

    Make the code a bit more readable by having RFXGEN_GEN_SAMPLE_SIZE and RFXGEN_GEN_CHANNELS constants. Magic numbers are ambiguous and can cause confusion.

    opened by RobLoach 2
  • .sfs file not loading correctly in rfxgen

    .sfs file not loading correctly in rfxgen

    laser.zip

    This was the first .sfs file I tried and it doesn't seem compatible.

    I don't mind no compatibility but just reporting it as the readme says it is.

    opened by lesleyrs 2
  • Keybinds for switching save slots?

    Keybinds for switching save slots?

    Are more features planned for this? Shortcuts for save slots and changing between the waveforms to make them faster to use would be great. Otherwise maybe undo option?

    opened by lesleyrs 2
Releases(3.2)
Owner
Ray
I make videogames and tools to make videogames. I teach videogames dev. Always available for talks, conferences and master classes.
Ray
Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems

Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Audacity is open source software licensed under GPL, version 2 or later.

Audacity 8.7k Dec 31, 2022
Sneedacity (formerly Audacity) is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems.

Sneedacity (formerly Audacity) is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems. Sneedacity is open source software licensed under GPL, version 2 or later.

Sneed's Feed & Seed 874 Dec 30, 2022
OpenDeck is a platform suited both for prototyping and developing custom MIDI controllers with easy to use web configurator

Software and hardware platform for simpler building of MIDI controllers with support for DMX.

Shantea Controls 456 Dec 25, 2022
A tiny, header only, easy to use, cross-platform, portaudio wrapper, sound and notation manager, tailored for the demo scene.

TDAW A tiny, header only, easy to use, cross-platform, portaudio wrapper, sound and notation manager, tailored for the demo scene. This header enables

kbx 13 Dec 2, 2022
Tenacity is an easy-to-use, cross-platform multi-track audio editor/recorder for Windows, MacOS, GNU/Linux

Tenacity is an easy-to-use, cross-platform multi-track audio editor/recorder for Windows, MacOS, GNU/Linux and other operating systems and is developed by a group of volunteers as open source software.

null 59 Jan 1, 2023
Easy and efficient audio synthesis in C++

Tonic Fast and easy audio synthesis in C++. Prefer coding to patching? Love clean syntax? Care about performance? That's how we feel too, and why we m

null 482 Dec 26, 2022
An OBS plugin for removing background in portrait images (video), making it easy to replace the background when screen recording.

OBS Plugin: Background Removal Introduction Building MacOSX Linux / Ubuntu Windows Download Check out the latest releases for downloads and install in

Roy Shilkrot 1.4k Jan 8, 2023
Oboe is a C++ library that makes it easy to build high-performance audio apps on Android.

Oboe Oboe is a C++ library which makes it easy to build high-performance audio apps on Android. It was created primarily to allow developers to target

Google 3.2k Jan 3, 2023
SSMLSDL - Simple Sound Manipulation Library, Based on SDL and LIBWAV.

SSM-lib SSMLSDL - Simple Sound Manipulation Library, Based on SDL and LIBWAV. This library is open source and free software. It's aims to provide YOU,

UtoECat 1 Jan 20, 2022
A command line and keyboard based strategy-game written in c++, where audio-input determines the AI-strategy and lays the seed for the map-generation.

Table of contents Dissonance Premise Installation Requirements Installation Quick-guide Detailed installation guide Usage Logfiles Tests Uninstall Kno

fux 26 Dec 3, 2022
A simple C++ library for reading and writing audio files.

AudioFile A simple header-only C++ library for reading and writing audio files. Current supported formats: WAV AIFF Author AudioFile is written and ma

Adam Stark 683 Jan 4, 2023
simple audio mixer for native and web

?? auph ?? Trivial audio mixer API for native and web targets. Online Demo ⚠️ Work in progress! API is constantly changing. The native playback at the

Elias Ku 13 Jul 1, 2022
A music player based on RT-thread and AB32VG1.

A music player based on RT-thread and AB32VG1.

杨澄 7 May 16, 2022
Ncurses based audio tracker program inspired by goattracker and milkytracker

PLEBTracker PLEBTracker is a linux console based audio tracker program inspired by goattracker and milkytracker. Pattern editor, main song editor wind

Dan Frazier 96 Dec 21, 2022
SimplE Lossless Audio

SELA SimplE Lossless Audio A lossless audio codec which aims to be as simple as possible while still having good enough compression ratios. Code Quali

Ratul Saha 207 Sep 13, 2022
An audio mixer that supports various file formats for Simple Directmedia Layer.

An audio mixer that supports various file formats for Simple Directmedia Layer.

Simple Directmedia Layer 198 Dec 26, 2022
This is simple beeper engine for the ZX Spectrum 48K

Beeper engine This is simple beeper engine for the ZX Spectrum 48K (or later), designed to be run from an interrupt handler.

Juan J. Martínez 12 Sep 6, 2022
A simple CLI to extract & save artwork of a 🎵 music/audio file.

artwork-extractor A simple CLI to extract & save artwork of a ?? music/audio file. Usage Dependencies MediaInfoLib On Debian based distros, one may in

Hitesh Kumar Saini 5 Aug 4, 2021