Play Sound and mp3 files

So, my group has this Vassal 3.1.20 hack (I don’t suppose “fork” would be an appropriate term here) we’ve been using pretty successfully for quite some time now, and it works very well with my module. However, being based on 3.1.20, it doesn’t allow for playing mp3 files using Play Sound. It’s currently the single feature of 3.2 that we actually miss.

I’ve been thinking about enabling mp3 files in the hack, but I can’t figure out how it’s done in Vassal 3.2. My knowledge of Java and programming in general is rather limited, and usually I’m working by trial and error (and so far it was enough for most minor hacks that we needed). With this I’m stuck.

Comparing source files, PlaySound.java and PlayAudioClipCommand.java are barely different, mp3-enabling code is clearly not there. So I guess it’s a matter of some new library, but which library is that and which classes use it?

Thus spake Filip:

So, my group has this Vassal 3.1.20 hack (I don’t suppose fork would be
an appropriate term here) we’ve been using pretty successfully for quite
some time now, and it works very well with my module. However, being
based on 3.1.20, it doesn’t allow for playing mp3 files using Play
Sound. It’s currently the single feature of 3.2 that we actually miss.

Upgrade to 3.2?


J.

Sadly, this doesn’t answer my question about how it’s done in 3.2.

There are reasons I don’t want to updgrade to 3.2 completely (but no reasons to discuss those in detail here in this thread). I’d rather just enable mp3 in our 3.1.20 hack.

Thus spake Filip:

Sadly, this doesn’t answer my question about how it’s done in 3.2.

That’s intentional. I don’t want to encourage anyone to use 3.1.20.

There are reasons I don’t want to updgrade to 3.2 completely (but no
reasons to discuss those in detail here in this thread). I’d rather just
enable mp3s in our 3.1.20 hack.

I would help you move to 3.2 if I knew what was keeping you from doing
that.


J.

If you do a quick forum search you will find a number of my posts outlining my early problems with 3.2. They include the way you handled pivate servers, image caching and stuff. The general direction of changes in 3.2 is just not what I want, and you can’t really help me to move without changing your design goals. Which I do perfectly realize you won’t do just for the sake of my needs, so I’m not asking for this.

You don’t have to encourage me to use 3.1.20, as currently I have no plans to upgrade. Other than the lack of mp3 support I’m completely satisfied with our 3.1.20 hack/fork as of now. Upgrading this hack to 3.2 doesn’t seem worth the effort with hacking the same stuff again and hacking some new stuff in addition to that.

If neither you nor anyone else have any intention of explaining how mp3 files were enabled in 3.2, then I guess we can close the thread, as it doesn’t seem I will learn anything useful with this “just use 3.2” approach.

Thus spake Filip:

If you do a quick forum search you will find a number of my posts
outlining my early problems with 3.2. They include the way you handled
pivate servers, image caching and stuff. The general direction of
changes in 3.2 is just not what I want, and you can’t really help me to
move without changing your design goals.

I looked over those posts just now. What I saw was several requests for
patches—which no one ever gave us—and a networking problem, which we
typically have no capacity to troubleshoot ourselves. That doesn’t look
to me like a conflict with the design goals we had for 3.2 at the time.
Am I missing something?

If neither you nor anyone else have any intention of explaining how mp3
files were enabled in 3.2, then I guess we can close the thread, as it
doesn’t seem I will learn anything useful with this “just use 3.2”
approach.

The class you want is VASSAL.tools.Mp3AudioClip. If you insist on doing
this, you should take the one from the trunk, not the one from 3.2.12,
as the one in the trunk contains a rather significant bug fix.


J.

It was never my intention to tell you what you should do with your project.

However, as for the networking problem and your capacity to troubleshoot specifically, I recall explaining in some thread what was wrong with your early 3.2 private servers solution (I had to fix the same issues in our 3.1.20 hack). However, instead of a rather simple fix you preferred to do much more work and returned to unreliable P2P mode. Seriously, I know next to nothing about programming and networking, but I somehow managed to get my private server hack working properly with but a simple modification, while at the same time whoever maintains that part decided to code a lot only to arrive with new bugs and problems. That alone is enough reason for me to stick to my modified 3.1.20 rather than update to 3.2. I figured out that when I need something, I’m better off doing it myself than waiting for someone probably better qualified to fix my issue for me, at least as long as it’s something I can actually do on my own.

Years ago, I started using VASSAL because it was the closest thing to what I needed that was available at the time. Still, I’m using it for something it wasn’t specifically designed for (tabletop RPGs as opposed to traditional board games). There’s no point to bother you with features and changes I need when you clearly know where you’re going with the project.

Thanks, that’s exactly the sort of help I needed to get on the right track.

Thus spake Filip:

It was never my intention to tell you what you should do with your
project.

It wouldn’t bother me if it were. In fact, I’d prefer it. If you’re
not going to, I don’t see what the point of this discussion is.

However, as for the networking problem and your capacity to troubleshoot
specifically, I recall explaining in some thread what was wrong with
your early 3.2 private servers solution (I had to fix the same issues in
our 3.1.20 hack). However, instead of a rather simple fix you preferred
to do much more work and returned to unreliable P2P mode. Seriously, I
know next to nothing about programming and networking, but I somehow
managed to get my private server hack working properly with but a simple
modification, while at the same time whoever maintains that part decided
to code a lot only to arrive with new bugs and problems.

Could you provide a link to this? I can’t find what you’re referringi
to.

Years ago, I started using VASSAL because it was the closest thing to
what I needed that was available at the time. Still, I’m using it for
something it wasn’t specifically designed for (tabletop RPGs as opposed
to traditional board games).

There’s a big difference between what VASSAL was originally designed for
(Advanced Squad Leader) and what you can do wit it now. I don’t see why
it can’t be suitable for both.

There’s no point to bother you with
features and changes I need when you clearly know where you’re going
with the project.

This saddens me. You seem to think that I’m impervious to suggestions.

I would like to understand your use case. If you want a feature in
VASSAL 4, now is the time to make sure we undertand what it is you want.


J.

Likewise, I don’t see the reason you started this update discussion. I only created the thread to ask about how mp3 files were enabled in 3.2 and get some suggestions regarding that specifically. I agree that the rest is largely a waste of words.

After a quick search, this post includes my conclusions after testing early 3.2 private servers and provides links to this thread. It’s possible I also mentioned that fix in some other related threads.

My use case was explained in one or more threads on this forum several years ago. You might also want to search the posting history of user danmey, who used to help my gaming group with the hack until his unfortunate death last fall.

If you’re interested, there are also some several years old feature request threads. However, our most needed features were already implemented in our 3.1.20 hack. It’s amateurish hack, but so far it works for us well enough.

There are also some minor interface changes that I don’t think you would want to include (I pretty much disabled chatting and some server controls that we never use).

But really, I suggest that you don’t bother with that stuff.

The quickest solution for you is to use Roll20 for online RPG’s and Vassal for boardgames. Roll20 is SPECIFICALLY designed for RPG’s online, and the best one out there.

No, AzRoadKing61, that is far from being the quickest solution to the problem at hand, which was “how to enable mp3 files in Vassal 3.1.20” rather than “which app to use for RPGs”. It doesn’t even address the issue.

For the record, I did try Roll20 in the past, as well as multiple other obvious apps, MapTool and such. MapTool wasn’t bad, it’s just Vassal proved better for my gaming needs, with the right module and a few adjustments. Roll20 however, that’s just an example of poor and repetitive design and I believe it’s only popular due to to gamers at large having no idea about available alternatives.

The main problem with most RPG virtual tabletops is that they tend to focus on tactical map and chat, with dice rolls handled via chat commands. Then they attach additional features to that base, occasionaly providing macros, graphical dice or rudimentary character sheet support. However, for games I tend to play (very little combat, but lots of boardgamey mechanics in other areas), I don’t need tactical maps, virtual miniatures or chat macros. What I need is empty table space, dice that can be rolled, turned and moved around, decks of cards for some systems (sometimes custom decks), tokens to track resources, and plenty of paper.

As it happens, Vassal is very good at providing flexible environment with all the components I need (though over the years my group adjusted a number of features to better suit our needs).

Roll20 is not.

So far the only app that comes close to Vassal is Tabletop Simulator. It does a few things better, Vassal does some other things better. Being free, Vassal still wins in my book, and a bit of DIY is of no consequence.

Also, despite my gripes with Vassal 3.2, Vassal 3.1.20 is still available, and it still works.