A Node.js script to duplicate audio presets between different channels in SteelSeries Sonar.
This tool allows you to copy audio presets (like "Bass boost + vocals", "Clear voice", etc.) from one audio channel to another in SteelSeries Sonar. For example, if you have a great preset configured for your Media channel and want to use the same settings for your Aux channel, this script will duplicate it for you.
- ✅ Copy any existing preset to a different audio channel
- ✅ Preserves all preset settings and configurations
- ✅ Generates unique IDs for duplicated presets
- ✅ Updates timestamps automatically
- ✅ User-friendly channel name mapping
- Node.js installed on your system
- SteelSeries GG/Sonar installed and configured
- Basic knowledge of terminal/command line usage
-
Install Node.js dependencies:
npm install
-
Ensure SteelSeries GG is closed before running the script to avoid database conflicts.
Before running the script, you need to find the ID of the preset you want to copy. You can do this by:
- Opening the database file with an SQLite browser, or
- Running a query to list all presets:
SELECT id, name, vad FROM configs WHERE name IS NOT NULL;
Edit the config.json file and update the settings:
{
"sourceId": "your-preset-id-here",
"targetChannel": "Aux",
"databasePath": "./database.db"
}Configuration Options:
sourceId: The ID of the preset you want to copytargetChannel: Target channel name (Game,Chat,Mic,Media, orAux)databasePath: Path to the database file (usually./database.db)
npm startThe script uses the following channel mappings:
| Channel Name | Value | Description |
|---|---|---|
Game |
1 | Game audio channel |
Chat |
2 | Voice chat channel |
Mic |
3 | Microphone channel |
Media |
4 | Media/music channel |
Aux |
5 | Auxiliary channel |
{
"sourceId": "abc123-def456-ghi789",
"targetChannel": "Aux",
"databasePath": "./database.db"
}{
"sourceId": "xyz789-abc123-def456",
"targetChannel": "Chat",
"databasePath": "./database.db"
}- Connects to the SteelSeries Sonar SQLite database
- Fetches the source preset configuration by ID
- Generates a new unique ID for the duplicated preset
- Updates the VAD (Voice Activity Detection) value to the target channel
- Inserts the new preset with updated timestamps
- Closes the database connection
- Make sure SteelSeries GG is completely closed
- Check that no other applications are accessing the database
- Verify the
sourceIdin config.json is correct - Check that the preset exists in the database
- Ensure
targetChannelin config.json is one of:Game,Chat,Mic,Media,Aux - Check spelling and capitalization
- Verify config.json exists in the same directory as query.js
- Check that config.json contains valid JSON syntax
- Ensure you're running the script from the correct directory
- Verify the database file exists at the path specified in config.json
The script expects the database file to be in the same directory. The typical SteelSeries GG database location is:
C:\ProgramData\SteelSeries\GG\apps\sonar\db\database.db
sonar/db/
├── query.js # Main script file
├── config.json # Configuration file (YOU EDIT THIS)
├── README.md # This documentation
└── database.db # SteelSeries Sonar database
- sqlite3: For database operations
- uuid: For generating unique preset IDs
This tool is provided as-is for educational and personal use. Use at your own risk.
Feel free to submit issues or improvements to make this tool better!
Disclaimer: This tool is not officially affiliated with SteelSeries. Always backup your configurations before making changes.