diff --git a/forge-gui-desktop/pom.xml b/forge-gui-desktop/pom.xml index b7847db08d4..7cb0caca6bd 100644 --- a/forge-gui-desktop/pom.xml +++ b/forge-gui-desktop/pom.xml @@ -203,6 +203,11 @@ 1.27 jar + + com.sipgate + mp3-wav + 1.0.3 + diff --git a/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java b/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java index 105dadd8882..7189f318ce7 100644 --- a/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java +++ b/forge-gui-desktop/src/main/java/forge/sound/AudioClip.java @@ -20,10 +20,14 @@ package forge.sound; import javax.sound.sampled.*; +import com.google.common.io.Files; +import com.sipgate.mp3wav.Converter; import forge.properties.ForgeConstants; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.MissingResourceException; @@ -178,9 +182,15 @@ public class AudioClip implements IAudioClip { if (!fSound.exists()) { throw new IllegalArgumentException("Sound file " + fSound.toString() + " does not exist, cannot make a clip of it"); } - + InputStream inputStream = null; try { - AudioInputStream stream = AudioSystem.getAudioInputStream(fSound); + inputStream = Files.asByteSource(fSound).openStream(); + } catch (IOException e) { + e.printStackTrace(); + } + try { + ByteArrayInputStream bis = new ByteArrayInputStream(Converter.convertFrom(inputStream).toByteArray()); + AudioInputStream stream = AudioSystem.getAudioInputStream(bis); AudioFormat format = stream.getFormat(); DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(), ((int) stream.getFrameLength() * format.getFrameSize())); Clip clip = (Clip) AudioSystem.getLine(info); diff --git a/forge-gui/res/music/match/Dangerous.mp3 b/forge-gui/res/music/match/Dangerous.mp3 index f12fcadd598..25ebfe3ac4d 100644 Binary files a/forge-gui/res/music/match/Dangerous.mp3 and b/forge-gui/res/music/match/Dangerous.mp3 differ diff --git a/forge-gui/res/music/match/Failing Defense.mp3 b/forge-gui/res/music/match/Failing Defense.mp3 index be721a0c5f6..4d01deb0488 100644 Binary files a/forge-gui/res/music/match/Failing Defense.mp3 and b/forge-gui/res/music/match/Failing Defense.mp3 differ diff --git a/forge-gui/res/music/match/Hitman.mp3 b/forge-gui/res/music/match/Hitman.mp3 index daf834e4aa6..d1f06785a25 100644 Binary files a/forge-gui/res/music/match/Hitman.mp3 and b/forge-gui/res/music/match/Hitman.mp3 differ diff --git a/forge-gui/res/music/match/Prelude and Action.mp3 b/forge-gui/res/music/match/Prelude and Action.mp3 index 5c70da935e9..437810fed25 100644 Binary files a/forge-gui/res/music/match/Prelude and Action.mp3 and b/forge-gui/res/music/match/Prelude and Action.mp3 differ diff --git a/forge-gui/res/music/menus/Evil March.mp3 b/forge-gui/res/music/menus/Evil March.mp3 index 3a084f699e1..483ffecde4e 100644 Binary files a/forge-gui/res/music/menus/Evil March.mp3 and b/forge-gui/res/music/menus/Evil March.mp3 differ diff --git a/forge-gui/res/music/menus/Heroic Age.mp3 b/forge-gui/res/music/menus/Heroic Age.mp3 index b26161c88b9..76d2f067c86 100644 Binary files a/forge-gui/res/music/menus/Heroic Age.mp3 and b/forge-gui/res/music/menus/Heroic Age.mp3 differ diff --git a/forge-gui/res/music/menus/Lord of the Land.mp3 b/forge-gui/res/music/menus/Lord of the Land.mp3 index 26b82eb4e31..24110f33919 100644 Binary files a/forge-gui/res/music/menus/Lord of the Land.mp3 and b/forge-gui/res/music/menus/Lord of the Land.mp3 differ diff --git a/forge-gui/res/music/menus/The Pyre.mp3 b/forge-gui/res/music/menus/The Pyre.mp3 index c7b306d5851..238e831f490 100644 Binary files a/forge-gui/res/music/menus/The Pyre.mp3 and b/forge-gui/res/music/menus/The Pyre.mp3 differ diff --git a/forge-gui/res/sound/add_counter.mp3 b/forge-gui/res/sound/add_counter.mp3 new file mode 100644 index 00000000000..75d9086c60c Binary files /dev/null and b/forge-gui/res/sound/add_counter.mp3 differ diff --git a/forge-gui/res/sound/add_counter.wav b/forge-gui/res/sound/add_counter.wav deleted file mode 100644 index 8aa817625d9..00000000000 Binary files a/forge-gui/res/sound/add_counter.wav and /dev/null differ diff --git a/forge-gui/res/sound/artifact.mp3 b/forge-gui/res/sound/artifact.mp3 new file mode 100644 index 00000000000..517bb5c5757 Binary files /dev/null and b/forge-gui/res/sound/artifact.mp3 differ diff --git a/forge-gui/res/sound/artifact.wav b/forge-gui/res/sound/artifact.wav deleted file mode 100644 index 8ba75a02cf5..00000000000 Binary files a/forge-gui/res/sound/artifact.wav and /dev/null differ diff --git a/forge-gui/res/sound/artifact_creature.mp3 b/forge-gui/res/sound/artifact_creature.mp3 new file mode 100644 index 00000000000..3ba7f6d9d35 Binary files /dev/null and b/forge-gui/res/sound/artifact_creature.mp3 differ diff --git a/forge-gui/res/sound/artifact_creature.wav b/forge-gui/res/sound/artifact_creature.wav deleted file mode 100644 index 7c43257a9f4..00000000000 Binary files a/forge-gui/res/sound/artifact_creature.wav and /dev/null differ diff --git a/forge-gui/res/sound/black_land.mp3 b/forge-gui/res/sound/black_land.mp3 new file mode 100644 index 00000000000..5955dc93148 Binary files /dev/null and b/forge-gui/res/sound/black_land.mp3 differ diff --git a/forge-gui/res/sound/black_land.wav b/forge-gui/res/sound/black_land.wav deleted file mode 100644 index 6b641ed2139..00000000000 Binary files a/forge-gui/res/sound/black_land.wav and /dev/null differ diff --git a/forge-gui/res/sound/block.mp3 b/forge-gui/res/sound/block.mp3 new file mode 100644 index 00000000000..f6d7ad29357 Binary files /dev/null and b/forge-gui/res/sound/block.mp3 differ diff --git a/forge-gui/res/sound/block.wav b/forge-gui/res/sound/block.wav deleted file mode 100644 index f8237d7dc9b..00000000000 Binary files a/forge-gui/res/sound/block.wav and /dev/null differ diff --git a/forge-gui/res/sound/blue_land.mp3 b/forge-gui/res/sound/blue_land.mp3 new file mode 100644 index 00000000000..c4d6f7eaa01 Binary files /dev/null and b/forge-gui/res/sound/blue_land.mp3 differ diff --git a/forge-gui/res/sound/blue_land.wav b/forge-gui/res/sound/blue_land.wav deleted file mode 100644 index eb815148e12..00000000000 Binary files a/forge-gui/res/sound/blue_land.wav and /dev/null differ diff --git a/forge-gui/res/sound/creature.mp3 b/forge-gui/res/sound/creature.mp3 new file mode 100644 index 00000000000..80c97b086d6 Binary files /dev/null and b/forge-gui/res/sound/creature.mp3 differ diff --git a/forge-gui/res/sound/creature.wav b/forge-gui/res/sound/creature.wav deleted file mode 100644 index adcb8bde711..00000000000 Binary files a/forge-gui/res/sound/creature.wav and /dev/null differ diff --git a/forge-gui/res/sound/destroy.mp3 b/forge-gui/res/sound/destroy.mp3 new file mode 100644 index 00000000000..789be7d2a1d Binary files /dev/null and b/forge-gui/res/sound/destroy.mp3 differ diff --git a/forge-gui/res/sound/destroy.wav b/forge-gui/res/sound/destroy.wav deleted file mode 100644 index 0536d564296..00000000000 Binary files a/forge-gui/res/sound/destroy.wav and /dev/null differ diff --git a/forge-gui/res/sound/discard.mp3 b/forge-gui/res/sound/discard.mp3 new file mode 100644 index 00000000000..e64522e6655 Binary files /dev/null and b/forge-gui/res/sound/discard.mp3 differ diff --git a/forge-gui/res/sound/discard.wav b/forge-gui/res/sound/discard.wav deleted file mode 100644 index f3147ac5b6b..00000000000 Binary files a/forge-gui/res/sound/discard.wav and /dev/null differ diff --git a/forge-gui/res/sound/draw.mp3 b/forge-gui/res/sound/draw.mp3 new file mode 100644 index 00000000000..70699c33e9e Binary files /dev/null and b/forge-gui/res/sound/draw.mp3 differ diff --git a/forge-gui/res/sound/draw.wav b/forge-gui/res/sound/draw.wav deleted file mode 100644 index 56070c12308..00000000000 Binary files a/forge-gui/res/sound/draw.wav and /dev/null differ diff --git a/forge-gui/res/sound/enchant.mp3 b/forge-gui/res/sound/enchant.mp3 new file mode 100644 index 00000000000..41c2dbadea5 Binary files /dev/null and b/forge-gui/res/sound/enchant.mp3 differ diff --git a/forge-gui/res/sound/enchant.wav b/forge-gui/res/sound/enchant.wav deleted file mode 100644 index 8f9b11faedb..00000000000 Binary files a/forge-gui/res/sound/enchant.wav and /dev/null differ diff --git a/forge-gui/res/sound/end_of_turn.mp3 b/forge-gui/res/sound/end_of_turn.mp3 new file mode 100644 index 00000000000..ef7a0a92565 Binary files /dev/null and b/forge-gui/res/sound/end_of_turn.mp3 differ diff --git a/forge-gui/res/sound/end_of_turn.wav b/forge-gui/res/sound/end_of_turn.wav deleted file mode 100644 index c726f684e3a..00000000000 Binary files a/forge-gui/res/sound/end_of_turn.wav and /dev/null differ diff --git a/forge-gui/res/sound/equip.mp3 b/forge-gui/res/sound/equip.mp3 new file mode 100644 index 00000000000..c87f696268a Binary files /dev/null and b/forge-gui/res/sound/equip.mp3 differ diff --git a/forge-gui/res/sound/equip.wav b/forge-gui/res/sound/equip.wav deleted file mode 100644 index 2b0ec8c6f98..00000000000 Binary files a/forge-gui/res/sound/equip.wav and /dev/null differ diff --git a/forge-gui/res/sound/flip_coin.mp3 b/forge-gui/res/sound/flip_coin.mp3 new file mode 100644 index 00000000000..2da0bf8b8b8 Binary files /dev/null and b/forge-gui/res/sound/flip_coin.mp3 differ diff --git a/forge-gui/res/sound/flip_coin.wav b/forge-gui/res/sound/flip_coin.wav deleted file mode 100644 index caed675c6d0..00000000000 Binary files a/forge-gui/res/sound/flip_coin.wav and /dev/null differ diff --git a/forge-gui/res/sound/green_land.mp3 b/forge-gui/res/sound/green_land.mp3 new file mode 100644 index 00000000000..ea8469369e1 Binary files /dev/null and b/forge-gui/res/sound/green_land.mp3 differ diff --git a/forge-gui/res/sound/green_land.wav b/forge-gui/res/sound/green_land.wav deleted file mode 100644 index 124b57c5dbc..00000000000 Binary files a/forge-gui/res/sound/green_land.wav and /dev/null differ diff --git a/forge-gui/res/sound/instant.mp3 b/forge-gui/res/sound/instant.mp3 new file mode 100644 index 00000000000..2b4eb36343b Binary files /dev/null and b/forge-gui/res/sound/instant.mp3 differ diff --git a/forge-gui/res/sound/instant.wav b/forge-gui/res/sound/instant.wav deleted file mode 100644 index 08fa7bb9e4c..00000000000 Binary files a/forge-gui/res/sound/instant.wav and /dev/null differ diff --git a/forge-gui/res/sound/life_loss.mp3 b/forge-gui/res/sound/life_loss.mp3 new file mode 100644 index 00000000000..76112b3735a Binary files /dev/null and b/forge-gui/res/sound/life_loss.mp3 differ diff --git a/forge-gui/res/sound/life_loss.wav b/forge-gui/res/sound/life_loss.wav deleted file mode 100644 index b889aba4cba..00000000000 Binary files a/forge-gui/res/sound/life_loss.wav and /dev/null differ diff --git a/forge-gui/res/sound/lose_duel.mp3 b/forge-gui/res/sound/lose_duel.mp3 new file mode 100644 index 00000000000..a3a874fd140 Binary files /dev/null and b/forge-gui/res/sound/lose_duel.mp3 differ diff --git a/forge-gui/res/sound/lose_duel.wav b/forge-gui/res/sound/lose_duel.wav deleted file mode 100644 index 70b8db43405..00000000000 Binary files a/forge-gui/res/sound/lose_duel.wav and /dev/null differ diff --git a/forge-gui/res/sound/mana_burn.mp3 b/forge-gui/res/sound/mana_burn.mp3 new file mode 100644 index 00000000000..76112b3735a Binary files /dev/null and b/forge-gui/res/sound/mana_burn.mp3 differ diff --git a/forge-gui/res/sound/mana_burn.wav b/forge-gui/res/sound/mana_burn.wav deleted file mode 100644 index b889aba4cba..00000000000 Binary files a/forge-gui/res/sound/mana_burn.wav and /dev/null differ diff --git a/forge-gui/res/sound/planeswalker.mp3 b/forge-gui/res/sound/planeswalker.mp3 new file mode 100644 index 00000000000..cf628a01549 Binary files /dev/null and b/forge-gui/res/sound/planeswalker.mp3 differ diff --git a/forge-gui/res/sound/planeswalker.wav b/forge-gui/res/sound/planeswalker.wav deleted file mode 100644 index b109cfb0111..00000000000 Binary files a/forge-gui/res/sound/planeswalker.wav and /dev/null differ diff --git a/forge-gui/res/sound/poison.mp3 b/forge-gui/res/sound/poison.mp3 new file mode 100644 index 00000000000..ef018b35610 Binary files /dev/null and b/forge-gui/res/sound/poison.mp3 differ diff --git a/forge-gui/res/sound/poison.wav b/forge-gui/res/sound/poison.wav deleted file mode 100644 index 3f15854da14..00000000000 Binary files a/forge-gui/res/sound/poison.wav and /dev/null differ diff --git a/forge-gui/res/sound/red_land.mp3 b/forge-gui/res/sound/red_land.mp3 new file mode 100644 index 00000000000..c78cbc1d088 Binary files /dev/null and b/forge-gui/res/sound/red_land.mp3 differ diff --git a/forge-gui/res/sound/red_land.wav b/forge-gui/res/sound/red_land.wav deleted file mode 100644 index ef0875bc6f6..00000000000 Binary files a/forge-gui/res/sound/red_land.wav and /dev/null differ diff --git a/forge-gui/res/sound/shuffle.mp3 b/forge-gui/res/sound/shuffle.mp3 new file mode 100644 index 00000000000..5765c2ad9fd Binary files /dev/null and b/forge-gui/res/sound/shuffle.mp3 differ diff --git a/forge-gui/res/sound/shuffle.wav b/forge-gui/res/sound/shuffle.wav deleted file mode 100644 index 99eff4e74b0..00000000000 Binary files a/forge-gui/res/sound/shuffle.wav and /dev/null differ diff --git a/forge-gui/res/sound/sorcery.mp3 b/forge-gui/res/sound/sorcery.mp3 new file mode 100644 index 00000000000..dc929976a8b Binary files /dev/null and b/forge-gui/res/sound/sorcery.mp3 differ diff --git a/forge-gui/res/sound/sorcery.wav b/forge-gui/res/sound/sorcery.wav deleted file mode 100644 index 91e864c26c9..00000000000 Binary files a/forge-gui/res/sound/sorcery.wav and /dev/null differ diff --git a/forge-gui/res/sound/tap.mp3 b/forge-gui/res/sound/tap.mp3 new file mode 100644 index 00000000000..0416fe79b50 Binary files /dev/null and b/forge-gui/res/sound/tap.mp3 differ diff --git a/forge-gui/res/sound/tap.wav b/forge-gui/res/sound/tap.wav deleted file mode 100644 index 3187956d218..00000000000 Binary files a/forge-gui/res/sound/tap.wav and /dev/null differ diff --git a/forge-gui/res/sound/token.mp3 b/forge-gui/res/sound/token.mp3 new file mode 100644 index 00000000000..1ba2dc2e2b0 Binary files /dev/null and b/forge-gui/res/sound/token.mp3 differ diff --git a/forge-gui/res/sound/token.wav b/forge-gui/res/sound/token.wav deleted file mode 100644 index 4739e8f6063..00000000000 Binary files a/forge-gui/res/sound/token.wav and /dev/null differ diff --git a/forge-gui/res/sound/untap.mp3 b/forge-gui/res/sound/untap.mp3 new file mode 100644 index 00000000000..c7627261efe Binary files /dev/null and b/forge-gui/res/sound/untap.mp3 differ diff --git a/forge-gui/res/sound/untap.wav b/forge-gui/res/sound/untap.wav deleted file mode 100644 index dde7f94004b..00000000000 Binary files a/forge-gui/res/sound/untap.wav and /dev/null differ diff --git a/forge-gui/res/sound/white_land.mp3 b/forge-gui/res/sound/white_land.mp3 new file mode 100644 index 00000000000..028feca4110 Binary files /dev/null and b/forge-gui/res/sound/white_land.mp3 differ diff --git a/forge-gui/res/sound/white_land.wav b/forge-gui/res/sound/white_land.wav deleted file mode 100644 index 46981138b2a..00000000000 Binary files a/forge-gui/res/sound/white_land.wav and /dev/null differ diff --git a/forge-gui/res/sound/win_duel.mp3 b/forge-gui/res/sound/win_duel.mp3 new file mode 100644 index 00000000000..be9a77b69b7 Binary files /dev/null and b/forge-gui/res/sound/win_duel.mp3 differ diff --git a/forge-gui/res/sound/win_duel.wav b/forge-gui/res/sound/win_duel.wav deleted file mode 100644 index 66e8630f656..00000000000 Binary files a/forge-gui/res/sound/win_duel.wav and /dev/null differ diff --git a/forge-gui/src/main/java/forge/sound/SoundEffectType.java b/forge-gui/src/main/java/forge/sound/SoundEffectType.java index 002e93360a0..944f9d70c03 100644 --- a/forge-gui/src/main/java/forge/sound/SoundEffectType.java +++ b/forge-gui/src/main/java/forge/sound/SoundEffectType.java @@ -36,65 +36,65 @@ package forge.sound; public enum SoundEffectType { // Sounds must be listed in alphabetic order. - AddCounter("add_counter.wav", true), - Artifact("artifact.wav", false), - ArtifactCreature("artifact_creature.wav", false), - BlackLand("black_land.wav", false), - BlackRedGreenLand("black_red_green_land.wav", false), - BlackRedLand("black_red_land.wav", false), - BlackWhiteGreenLand("black_white_green_land.wav", false), - BlackWhiteLand("black_white_land.wav", false), - Block("block.wav", false), - BlueBlackLand("blue_black_land.wav", false), - BlueBlackRedLand("blue_black_red_land.wav", false), - BlueLand("blue_land.wav", false), - Creature("creature.wav", false), - Damage("damage.wav", true), - Destroy("destroy.wav", true), - Discard("discard.wav", false), - Draw("draw.wav", false), - Enchantment("enchant.wav", false), - EndOfTurn("end_of_turn.wav", false), - Equip("equip.wav", false), - Exile("exile.wav", false), - FlipCoin("flip_coin.wav", false), - GreenBlackBlueLand("green_black_blue_land.wav", false), - GreenBlackLand("green_black_land.wav", false), - GreenBlueLand("green_blue_land.wav", false), - GreenBlueRedLand("green_blue_red_land.wav", false), - GreenLand("green_land.wav", false), - GreenRedLand("green_red_land.wav", false), - GreenRedWhiteLand("green_red_white_land.wav", false), - Instant("instant.wav", false), - LifeGain("life_gain.wav", true), - LifeLoss("life_loss.wav", true), - LoseDuel("lose_duel.wav", false), - ManaBurn("mana_burn.wav", false), - OtherLand("other_land.wav", false), - Phasing("phasing.wav", true), - Planeswalker("planeswalker.wav", false), - Poison("poison.wav", true), - RedBlueLand("red_blue_land.wav", false), - RedBlueWhiteLand("red_blue_white_land.wav", false), - RedLand("red_land.wav", false), - Regen("regeneration.wav", false), - RemoveCounter("remove_counter.wav", true), - Sacrifice("sacrifice.wav", true), + AddCounter("add_counter.mp3", true), + Artifact("artifact.mp3", false), + ArtifactCreature("artifact_creature.mp3", false), + BlackLand("black_land.mp3", false), + BlackRedGreenLand("black_red_green_land.mp3", false), + BlackRedLand("black_red_land.mp3", false), + BlackWhiteGreenLand("black_white_green_land.mp3", false), + BlackWhiteLand("black_white_land.mp3", false), + Block("block.mp3", false), + BlueBlackLand("blue_black_land.mp3", false), + BlueBlackRedLand("blue_black_red_land.mp3", false), + BlueLand("blue_land.mp3", false), + Creature("creature.mp3", false), + Damage("damage.mp3", true), + Destroy("destroy.mp3", true), + Discard("discard.mp3", false), + Draw("draw.mp3", false), + Enchantment("enchant.mp3", false), + EndOfTurn("end_of_turn.mp3", false), + Equip("equip.mp3", false), + Exile("exile.mp3", false), + FlipCoin("flip_coin.mp3", false), + GreenBlackBlueLand("green_black_blue_land.mp3", false), + GreenBlackLand("green_black_land.mp3", false), + GreenBlueLand("green_blue_land.mp3", false), + GreenBlueRedLand("green_blue_red_land.mp3", false), + GreenLand("green_land.mp3", false), + GreenRedLand("green_red_land.mp3", false), + GreenRedWhiteLand("green_red_white_land.mp3", false), + Instant("instant.mp3", false), + LifeGain("life_gain.mp3", true), + LifeLoss("life_loss.mp3", true), + LoseDuel("lose_duel.mp3", false), + ManaBurn("mana_burn.mp3", false), + OtherLand("other_land.mp3", false), + Phasing("phasing.mp3", true), + Planeswalker("planeswalker.mp3", false), + Poison("poison.mp3", true), + RedBlueLand("red_blue_land.mp3", false), + RedBlueWhiteLand("red_blue_white_land.mp3", false), + RedLand("red_land.mp3", false), + Regen("regeneration.mp3", false), + RemoveCounter("remove_counter.mp3", true), + Sacrifice("sacrifice.mp3", true), ScriptedEffect("", false), // Plays the effect defined by SVar:SoundEffect - Shuffle("shuffle.wav", false), - Sorcery("sorcery.wav", false), - StartDuel("start_duel.wav",false), - Tap("tap.wav", false), - Token("token.wav", true), - Untap("untap.wav", true), - WhiteBlueBlackLand("white_blue_black_land.wav", false), - WhiteBlueLand("white_blue_land.wav", false), - WhiteGreenBlueLand("white_green_blue_land.wav", false), - WhiteGreenLand("white_green_land.wav", false), - WhiteLand("white_land.wav", false), - WhiteRedBlackLand("white_red_black_land.wav", false), - WhiteRedLand("white_red_land.wav", false), - WinDuel("win_duel.wav", false); + Shuffle("shuffle.mp3", false), + Sorcery("sorcery.mp3", false), + StartDuel("start_duel.mp3",false), + Tap("tap.mp3", false), + Token("token.mp3", true), + Untap("untap.mp3", true), + WhiteBlueBlackLand("white_blue_black_land.mp3", false), + WhiteBlueLand("white_blue_land.mp3", false), + WhiteGreenBlueLand("white_green_blue_land.mp3", false), + WhiteGreenLand("white_green_land.mp3", false), + WhiteLand("white_land.mp3", false), + WhiteRedBlackLand("white_red_black_land.mp3", false), + WhiteRedLand("white_red_land.mp3", false), + WinDuel("win_duel.mp3", false); private final String resourceFileName; private final boolean isSync;