From 63182d32ee1beae22f27445615181cda95239774 Mon Sep 17 00:00:00 2001 From: Evan Hahn Date: Sun, 18 Aug 2013 09:30:25 -1000 Subject: [PATCH] REAL AUDIO FOR EXPLOSIONS this was a huge deal. 0. finding the sound on opengameart. thank ZEUS for that website 1. i had to figure out how to make ffmpeg convert a 24KB file into something much smaller to fit into 13KB. even 10KB was probably too big because i want to add extra code. it was always too big using Ogg Vorbis, so i tried Ogg Opus, but that doesn't even play, so then i fell back to mp3. 2. converting mp3s to data-uris is actually not fun. i might write a bin to do it if i have to do this a lot. 3. if you have hecka Audio streams, you're screwed. if the game plays a total of 1000 explosion sounds, you can't make 1000 audio streams. so you have to reuse them. i tried to max it out (in a reasonable way, making a sound a few times a second) and it made 9 streams max. i was happy with that. 4. because it's mp3, this doesn't work on Firefox (unless you're on Windows, according to Wikipedia) but it should work elsewhere. phew. i hate sound --- README.md | 3 ++- server/files.json | 1 + src/assets/boom-data.js | 1 + src/assets/boom-original.ogg | Bin 0 -> 24047 bytes src/assets/boom.mp3 | Bin 0 -> 1667 bytes src/assets/convert.sh | 6 ++++++ src/lib/sounds.js | 28 +++++++++++++++++++++++++++- src/particle.js | 1 + 8 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/assets/boom-data.js create mode 100755 src/assets/boom-original.ogg create mode 100644 src/assets/boom.mp3 create mode 100755 src/assets/convert.sh diff --git a/README.md b/README.md index 33df82d..23814ae 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ build scripts? grunt? browserify? i don't need your witchcraft: cd server npm install npm start - + open http://localhost:8000 # uncompressed build open http://localhost:8000/prod # hella compressed build @@ -22,5 +22,6 @@ i stole a few files: - `src/vendor/extend.js` taken from MIT-licensed [Underscore.js](http://underscorejs.org) - `src/vendor/requestanimationframe.js` taken from [right here](https://gist.github.com/paulirish/1579671) and it's MIT - `src/vendor/miniclass.js` was [written by me](https://github.com/EvanHahn/MiniClass) so i can do whatever the hell i want, _mom_ +- `src/assets/boom.ogg` made by [Amon](http://www.amon.co), licensed under a Creative Commons Attribution-Share Alike 3.0 license the rest of the stuff is licensed under that [unlicense](http://unlicense.org/) in LICENSE.txt. \ No newline at end of file diff --git a/server/files.json b/server/files.json index c9034da..3fb6ad9 100644 --- a/server/files.json +++ b/server/files.json @@ -9,6 +9,7 @@ "../src/lib/canvas_extensions.js", "../src/lib/sounds.js", "../src/lib/entity.js", + "../src/assets/boom-data.js", "../src/config.js", "../src/shield.js", "../src/particle.js", diff --git a/src/assets/boom-data.js b/src/assets/boom-data.js new file mode 100644 index 0000000..7293d34 --- /dev/null +++ b/src/assets/boom-data.js @@ -0,0 +1 @@ +var BOOM_DATA = 'data:audio/mpeg;base64,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'; \ No newline at end of file diff --git a/src/assets/boom-original.ogg b/src/assets/boom-original.ogg new file mode 100755 index 0000000000000000000000000000000000000000..2c7bcbdb174a77c0ec8a35af0c92e03a2bbf9bd5 GIT binary patch literal 24047 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

HFLs1 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 e!IuT4I}|m=@61aosBk9iv&UjgO)