• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Miscellanous / Other] [Now OpenSource] SoundBurner - InGame Music Making

Status
Not open for further replies.
Level 8
Joined
Jun 26, 2010
Messages
530
SoundBurner - Introduction

It's been five year now since i started the SoundBurner project. It is a unfinished wc3 map where up to 8 players would be able to make music through sequencers and patterns.

Here is a youtube preview

I encountered many difficulties while working on the project due to WC3 sound engine limitations. As you can hear in the video, the sound isn't precise enough in the current state of things. I wrote about some of the technical difficulties here on Multiple Sounds

Users ~Void~ and Pharaoh_ also encountered similar problems. Links, respectively:

Sound Problems
Sound Issue - Help

Pharaoh_ pointed me to a very promising direction with SoundUtils. Yet the followwing months i wen to collage and couldn't work on it anymore. I will not go into the details but many have passed now and i don't think i will ever spend the large amount of time to finish this project, considering how many people migrated to SC2. Of course there will be some people playing, but i think i wouldn't risk the time to a project that would maybe fall by the wayside. I might spend time with Pure Data for practical/professional purposes.

OpenSource

I am then releasing the project for anybody who wishes to continue it. And at the same time as a Proof of Concept. The W3x file is attached bellow, just download it. If anybody ever be interested in this project, please, let me know! mail me, i would love to know somebody took it! I might even be able to help a bit.

Even if nobody takes it, i feel like proving that a full functional music making tool would be possible in WC3. Of course i'm referring to the Graphical Interface and basic audio playback engine. Don't expect audio slicing, midi support, rendering to mp3...haha

Proof of concept

First, and this is important, i will simply assume that SoundUtils works flawlessy and playback timing is not an issue.


  1. As the current state of the project shows, it is possible to make grids where you input notes in a fixed length pattern. The examples uses a 4/4 divided in 16th notes. The time signature could be changed through script (including terrain changing scripts for bars bigger than 4/4)

  2. Everything is saved on arrays. So after you create a pattern, you save it on the array and you can change to other one. Then switch back to the first, where a script would read data from the array and set things accordingly on the Graphical Interface. (Creating units in the respective place on the grid, etc)

  3. Despite Wc3 limits imposed by it's audio engine, there's actually a pitchshifting function. I didn't tested it but if it somewhat works, one could create instruments with samples a major 2nd or minor 3rd apart, to save size.

  4. You could set the amplitude of the sound (as in midi velocity) through a "unit uses ability" event or a chat msg and use "selected unit" to find what the user is currently editing. You could then use anything you want to graphically represent intensity, such as unit Health (good, for when you hold alt you can see the intensities of all units!), unit color (ex: the darker, the quieter), etc. There would be needed a kind of "tooggle intensity editing" button/command, because currently selecting a "note" deletes it.

  5. Play/pause functions were made using custom abilities and "unit uses ability <X>" events. Those abilities were given to a hero to easy access through F1.

  6. You would need to make two modes of operation. First one would be pattern editing, where the selected pattern loops and you focus on it. Second is song mode, where the pattern plays in an order specified by the users. Which takes us to the next item.

  7. A timeline where players could select the patterns and their order would be required.It could be done again with in an array and with ghost units (such as "drummachine selector". See the map to understand the note input method). You select a bar and send a txt msg containing the pattern you want.
    SoundBurner ex1.png

  8. Additional Graphical elements could be displayed in a leaderboard. Like bpm, current editing mode, current pattern/bar, current volume level...

  9. note ties are also possible. I would do it with "unit uses ability <custom:tie to next note>". You could create a lighting
    effect between tied units to represent the tie.

  10. Splitting sound in different channels might be possible. The sound properties dialog gives a dropdown with 15 channels, while the GUI "set channel volume action" gives 8. (Images bellow). Anyway, it's enough.


    SoundBurner ex2.pngSoundBurner ex3.png

  11. camera commands are easy to make, to enhance funcionality or just to add some fun

  12. Actually, all kinds of commands are possible through "players types a txt message" triggers. Some suggestions: clear pattern, clear timeline, copy pattern, fill with quarters, change time signature, randomize (lots of work to make, but cool), panic (mute all), solo specific instrument, mute specific instrument, help (gives a list of cmds, for ex), credits (sample credits, devs)

  13. Song sharing could be made with savesgames.

  14. Multiple sample choices could be possible, yet somewhat limited by size.

  15. In-game tutorials might be possible with cinematics. Obviously possible with textual help.

  16. what i thinks is not possible: panning (left/right channel manipulation), individual changes (every player would have to hear the same thing),

Final Words

Well, thats it for now. I should get some sleep. I may update this list later. (with a timestamp, of course). At least i think i could convince that this project is possible (if SoundUtils works).

Oh, and this is important: A huge thanks for those who helped me to get the project on it's current state!

I was 17 when i started this project. Now that i have more experience to understand Jass, i have no time. I guess that's just life haha

Yet i DO hope this will lead to something. Maybe it will catch somebody's enthusiasm! Maybe if many people manifest real interest in helping and playing, i could consider spending what little time i may find on working on that.

By the way, if you're thinking about taking it, first thing should test SoundUtils and see if it works with a timing precisely enough to make music.

I think this example might be useful for someone new to vJass. Just read section VI/ Play the sound with a VJass Trigger and skip the rest.

Good luck!
 

Attachments

  • Sound Burner.w3x
    363 KB · Views: 64
Last edited:
Status
Not open for further replies.
Top