Gregtech 6 Machine Sounds

I love to listen to their voices while the machines are running. :slight_smile:
However, gregtech 6 machines do not make any noise while working.
Are you considering adding sound to the machines?

5 Likes

Not really, making a Sound Loop requires some sort of custom Audio Code in Minecraft that I cant just do. And I would need good free Sounds and everything.

4 Likes

Engines used to have a sound but iirc, you removed it due to performance issues.

4 Likes

That was a Fizz Noise that happened every single time the Engine switched between forward and backward, that was not a Loop, lol.

4 Likes

So, what’s bout paid library? How much might this cost for you? Just touching GTNH and guys added this shit, lol.

2 Likes

That would be very annoying licensing issues.

Also i barely work on GT6 as is by now, so im not sure if this is gonna happen at all tbh.

2 Likes

Having played with Minecraft’s audio I don’t blame you for keeping them silent, it’s hideous to work with. What audio loop would you envision?

2 Likes

Just having the Machines…. run i guess? IC2 Style basically.

3 Likes

Hm, I use a looping sound when underwater, that is called when a players head intersects a water material. In order for it to work however I needed to inject an audio handler that intercepts audio being passed to the audio manager and pass in my own through a loop handler specifically for that audio. The audio handler can detect audio sources and their location, and modify their volume and pitch on the fly. This could probably be converted to play audio loops from machine block locations when they enter certain states.

Trouble is your code is so rambunctious I find it hard to wrap my head around it. So while in theory I reckon it could work, in practice it might be more complicated than that.

2 Likes

just use the ā€œrunningā€ or ā€œactiveā€œ state clientside, it’s already sent to the server for the texture animations, so it would easily work for sounds too.

2 Likes

Progress so far, handled mostly from a single class. Able to determine most tile entities and their states on clientTick, and provide and play a required soundKey based on that. Handles looping and cleanup.

Not shown, breaking blocks stops sound also.

Need to account for more generic tile entity classes and introduce a method that can provide random time intervals between looped sounds for certain blocks (bumble_hives), but not worried yet.

(Sounds are for testing and subject to change)

5 Likes

maybe add something for… resourcepacks? switch in config too and some comments. Users make what they want, you still use what u used.

3 Likes

Coming along, a lot of the programming is pretty much done, now it’s just creating sounds for everything,.. There are, a lot of sounds to make. I estimate about 80 more blocks need sounds with some requiring at least two per block.

I’m making them in Audacity so there is no pesky copyright or royalty licensing to deal with, just modified tones and noise, other than the fire audio that is direct from Minecraft itself. Once complete they’ll be provided to Gregtech under the standard open licensing.

3 Likes

Nice Sound Effects, just make sure to add the Sound Files in a different pull request than the Sound System itself.

Also I guess all the sounds need to be in the gregapi sounds folder where the tool sounds are, just for some semblance of cohesion. XD

2 Likes

Don’t worry, I’m getting fairly good at understanding your file structure. I’ve built an audio subdirectory in gregapi, your move to basically build all machines from a single basic machine tile entity has made the work incredibly straight-forward. Currently it’s really only a sound handler, looping sound class and some modification to the client proxy to inject the handler that’s new, I plan on adding to your CS audio datastructure to reference the audio files and align with your current work. I’ve had to modify sounds.json and some various machine classes to comment out your current sound implementations but I’m attempting to be as non-invasive as possible.

I’ll separate the sound files pull request itself from the code when I’m done, and let you look over the classes. Currently i’m checking for tile entity states based on various variables like mState and mActivity but they can be a little hacky due to some protected fields. I’m taking advantage of your intermediate state changes to introduce, ā€˜start up’ or ā€˜stalling’ sounds as the machine warms, but some blocks like the steam engine could benefit from a dedicated sound state field. It’s inconsequential right now but might be fun to look at after the initial pull request.

2 Likes

I got excited about this! Any ETA?

2 Likes

Delayed around the end of the year with some other project work but work was just about complete. Multistructure testing in progress and some electric/electronic sound effect creation.

1 Like