Kerokero is a tool designed to streamline the process of creating background music for the SF2000 family of consoles, to replace the original main menu theme music. It allows users to import .MP3 or .WAV audio and easily set 'in' and 'out' points for a clip of up to 90 seconds. Users can preview the clip including the transition point, and can fine-tune the 'in' and 'out' points by the millisecond to create a seamless loop. The clip can then be saved in pagefile.sys
format (specific to the SF2000 family of retro handhelds), or in .MP3 or .WAV format.
- Load Audio Files: Supports loading and playback of audio files in .WAV and .MP3 formats.
- Set In and Out Points: Allows users to define the start ('in') and end ('out') points of the audio clip with millisecond precision.
- Preview Clips: Users can preview the entire clip or just the section where the repeat occurs (at the start/end of the file).
- Save in Various Formats: The edited clip can be saved in a format specific to SF2000 family of consoles, as well as in .WAV or .MP3 formats.
- Adjust Gain Level: Users have the ability to adjust the gain level for both the preview and the processed audio, ensuring the output is just right.
- Load an Audio File: Start by loading an audio file in either .WAV or .MP3 format. It can be anything you wish.
- Set In and Out Points: Define the 'in' and 'out' points of your clip using the respective fields. The clip can be a maximum of 90 seconds.
- Preview the Clip: Use the preview feature to listen to the entire clip or just the section where the repeat occurs. This helps in making precise edits.
- Refine In and Out Points: Using the preview, refine your in and out points until the loop transition is seamless.
- Adjust Gain Level: If necessary, adjust the gain level to increase or decrease the volume of the audio.
- Save the Clip: Once satisfied with the edits, save the clip in the desired format - SF2000+GB300 format ('pagefile.sys'), .WAV, or .MP3.
Refer to this video tutorial on how to use Kerokero:
https://dteyn.github.io/kerokero-howto/kerokero_howto.html
As of version 0.2.0, Kerokero is now distributed in two versions: a Python script, as well as a Windows executable (.EXE) created using PyInstaller.
- Download the latest
Kerokero-win-vx.x.x.zip
file from the releases page - Extract the .zip file to a new folder
- Double click the .EXE file to start Kerokero
NOTE: Windows Defender or some Anti-Virus programs may identify the .EXE file as a trojan. This is a common issue with PyInstaller. Since Kerokero is open source, you can review the source code by looking at the Github reposistory and see that it is not doing anything malicious: https://github.com/Dteyn/SF2000_BGM_Tool. If this warning bothers you, you can also run the Python version and avoid the .EXE file altogether.
- Ensure you have Python 3.6+ and the required packages installed (see below)
- Download the latest
Kerokero-python-vx.x.x.zip
file from the releases page - Run the script by double-clicking on
kerokero.py
NOTE: If you are on Windows and want to disable the console window, rename the script to kerokero.pyw
. By changing the extension to pyw
, Python will not show the console window.
Before you can run the script, you need to install Python 3.6+ as well as several Python packages. Here's how you can install them:
Ensure that you have Python 3.6+ installed on your system. You can verify your Python installation by opening a command prompt and typing:
python --version
Your Python version must be at least 3.6 or higher for this script to function.
This script requires several packages, which are contained in requirements.txt
. To install the necessary packages, run the following command in your terminal or command prompt:
pip install -r requirements.txt
Windows users can also double-click the install-required-packages.bat
to easily install the required packages.
NumPy: A powerful library for working with arrays and matrices of numeric data. In this script, it is used to manipulate audio data as arrays.
sounddevice: A library that provides a simple way to play audio. It is used to play the audio previews in the script.
Pydub: A high-level audio library that makes it easy to work with audio files. It is used to load and manipulate audio data in the script.
PyQt5: A set of Python bindings for The Qt Company’s Qt application framework. It is used to create the graphical user interface for the script.
Version Numbers:
Below are the versions which Kerokero was developed against:
- Python v3.12.5
- NumPy v1.26.4
- sounddevice v0.5.1
- Pydub v0.25.1
- PyQt5 v5.15.11
When testing on Linux, I found that the PortAudio
library is required. You can install this by using the following commands:
Debian/Ubuntu and derivatives:
sudo apt-get update
sudo apt-get install portaudio19-dev
Fedora:
sudo dnf install portaudio-devel
Arch Linux:
sudo pacman -S portaudio
Also, PyDub requires ffmpeg to be installed, so make sure you have that installed as well.
Some users encountered a 'WinError 2' error with the previous version of Kerokero (v0.1.0). I've tried to address this in v0.2.0, but if the issue still occurs, it would be helpful to have some context on the issue. I've added more logging to the output.log
file to help diagnose this and any other issues.
If you encounter an issue, please reach out to me on GitHub or the Retro Handhelds Discord (link below). Please provide the output.log
file as well as a detailed description of the steps taken to encounter the error.
The name "Kerokero" is inspired by the onomatopoeic representation of a frog's croak in Japanese. In the context of this project, it symbolizes the script's ability to seamlessly loop audio clips, akin to the repetitive croaking of a frog. It embodies the script's core functionality of creating continuous, looping audio, providing users with a tool that can create immersive and uninterrupted audio experiences, much like the echoing croaks of frogs in nature.
Feel free to fork the repository and submit pull requests for any improvements or bug fixes.
- Added the ability to save 22050 Hz
pagefile.sys
files for use with BGM Samplerate Fix. - Removed Windows-specific packages:
- Replaced
SimpleAudio
withsounddevice
. - Using
tkinter
for error message if packages are missing.
- Replaced
- Added more error checking:
- Python version check.
- Added default output filename of
pagefile.sys
. - Ensure user is not trying to save output file as input file.
- Improved logging to
output.log
with more detailed information and cleaner log format. - Resolved all PyCharm warnings.
- Added
requirements.txt
with required packages as well asinstall-required-packages.bat
for easy installation. - Added
build.bat
andversioninfo
for Windows .EXE build (thanks to tadpole author EricGoldsteinNz!).
- Kerokero initial release.
- Thanks to
notv37
andbnister
for their initial research and technical insights into the SF2000's audio format. - Thanks to
EricGoldsteinNz
forbuild.bat
andversioninfo
which were used to create a EXE version of Kerokero. - Application icon 'kerokero.ico' is from @ptra on Pixabay: https://pixabay.com/vectors/frog-animal-comic-comic-drawing-3241108/
- SF2000 Information Repository by
VonMillhausen
contains comprehensive information about the SF2000 retro handheld - GB300 Information Repository by
nummacway
is a great resource for learning more about the GB300 handheld and differences it has from the SF2000 console. - SF2000 Collection by
Zerter
is a great place to customize your Froggy - GB300+SF2000 Tool by
nummacway
is a great tool for managing your SF2000 and GB300 handhelds. - tadpole by
EricGoldsteinNz
andBeastGriever
is the best GUI app to manage your SF2000 - frogtool by
taizou
is a handy Python script for managing your SF2000 game library - Retro Handhelds Discord in the
#data-frog-sf2000
channel (Other Devices category) is the best place to find up-to-date info and chat with other Froggy enthusiasts and developers