petertalbanese / soundswapper Goto Github PK
View Code? Open in Web Editor NEWAllows the user to replace sounds with custom .wav files.
License: BSD 2-Clause "Simplified" License
Allows the user to replace sounds with custom .wav files.
License: BSD 2-Clause "Simplified" License
This only works with Sound Effects and not Area sounds, right? It'd be great if you could swap the sounds for both. I believe the method for getting those is onAreaSoundEffectPlayed.
This is getting abused by some players to help them with knowing what prayer to use on the awakened boss
https://clips.twitch.tv/FlirtyBadSnoodCharlietheUnicorn-_FJfrxyvjM-FMS3h
The sound ids are 7040, 7041, 7030.
Happy to make the code changes
Hi I'm trying to replace the venator bow sounds with a shortbow or crossbow. The sound is not matched to the game volume so its way too loud, but when lowering using the Custom Sounds Volume it creates a honk/beep. I do hear a slight beep at the end of the sound file, but it seems the volume isn't being lowered correctly. The arrow sound is gone but the beep remains so each arrow shot is just a beep. I hope that makes sense...
Hello, I have tried this pluggin and it works fantasticlly but the sound level of the file doesnt change in game when I manually modify the file to be quieter. Is this something that could be added potentially?
I changed one of my prayer sounds, for example 2686 which is the prayer SMITE sound, and placed a .wav file in the "SoundSwapper" folder in the root directory of runelite.
Now when I activate the SMITE prayer, it works as expected. But if I spam the prayer too much (i.e. 2 clicks in a tick) then runelite freezes for a second. So I think the performance of this plugin makes it unusable at least for my case.
Ive tried changing the drop sound but it just mutes it. I followed the instructions clearly. No idea
Hi,
Can you add a feature to blacklist music tracks? And potentially an option to mute all music tracks?
I wanna listen to the jingles without listening to the music.
Would love it if you add it.
I'm currently chinning, trying to hear my metronome, and finding it difficult to filter monkey noises when there's so much flooding the debug log. Would be nice if there was a checkbox to filter anything already blacklisted from appearing in the debug mode log.
I'm trying to custom swap a soundwith a short wav file I made just to try the plugin out. I've identified the sound effect I want to swap in game with the "debug sound effects" feature, typed the sound effect ID into the Custom Sounds field, pasted the wav file with the same sound ID number as the sound I'm wanting to swap into the SoundSwapper folder in my .runelite folder, and checked the box called "Swap Sound Effects". This results in no sound playing when the sound effect should happen. I've listened back to the wav file alone to make sure it has audible sound in it (which it does), tried using a different wav file, tried closing and reopening runelite, and I've tried using different sound IDs and matching the wav file name to the ID and preforming the action in game that should produce that sound. None of these troubleshoots worked and will still result in silence. Once the box called "Swap Sound Effects" has been un-checked, the vanilla in-game sound is able to play again but I'd like this plugin to work for me and others who might have the same problem.
Hello,
Cool project, I believe I am following the readme correctly but I think I have perhaps found some wav files that are unsupported in some way. I have confirmed this in the logs below.
Here is a sample wav that produces this issue
Though, through downloading wavs through various sources, I've not gotten one to work so perhaps its something specific to my system or configuration.
2023-07-24 11:31:52 CDT [AWT-EventQueue-0] WARN com.soundswapper.SoundSwapperPlugin - Unable to load custom sound 2401
javax.sound.sampled.UnsupportedAudioFileException: Stream of unsupported format
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
at com.soundswapper.SoundSwapperPlugin.tryLoadSound(SoundSwapperPlugin.java:270)
at com.soundswapper.SoundSwapperPlugin.updateSoundList(SoundSwapperPlugin.java:299)
at com.soundswapper.SoundSwapperPlugin.onConfigChanged(SoundSwapperPlugin.java:134)
at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:824)
at net.runelite.client.config.ConfigManager.setConfiguration(ConfigManager.java:841)
at net.runelite.client.plugins.config.ConfigPanel.changeConfiguration(ConfigPanel.java:711)
at net.runelite.client.plugins.config.ConfigPanel$2.focusLost(ConfigPanel.java:514)
at java.desktop/java.awt.AWTEventMulticaster.focusLost(Unknown Source)
at java.desktop/java.awt.Component.processFocusEvent(Unknown Source)
at java.desktop/java.awt.Component.processEvent(Unknown Source)
at java.desktop/java.awt.Container.processEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
```
java.lang.AssertionError: must be called on client thread
at client.setGameState(client.java:51244)
at com.soundswapper.SoundSwapperPlugin.onConfigChanged(SoundSwapperPlugin.java:175)
at net.runelite.client.eventbus.EventBus$Subscriber.invoke(EventBus.java:70)
at net.runelite.client.eventbus.EventBus.post(EventBus.java:223)
at net.runelite.client.config.ConfigManager.switchProfile(ConfigManager.java:234)
at net.runelite.client.plugins.config.ProfilePanel.lambda$switchToProfile$7(ProfilePanel.java:666)
at net.runelite.client.util.RunnableExceptionLogger.run(RunnableExceptionLogger.java:41)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
configchanged can happen on any thread, so you should probably wrap it in clienthtread.invokelater.
This is an error not an exception so it isn't caught and cuts the profile change short with assertions enabled which makes working on my plugin hub plugins harder :P
Hi, awesome plugin! I have a suggestion though. Would it be possible to use Sound IDs instead of the names provided on the wiki page? The list on the wiki page is a bit outdated and doesn't contain sounds from more recent updates. For example, Tumeken's Shadow attack sound has Sound ID 6410, while the wiki list only goes up to ID 4996. Using the Visual Sounds plugin you can quite easily find out the Sound ID of the sound you wish to swap. For example, you could put "6410.wav" in the SoundSwapper folder and add 6410 to the list in the plugin.
game freezes for second sometimes when using the plugin, after disabling i didnt have the freezing problems
Swapping sounds simply doesnt work but "Consume Sounds Effects" does mute all audio.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.