Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Enhancement] Add periodic sound emitter #103

Closed
DrakoAlcarus opened this issue Feb 24, 2016 · 84 comments
Closed

[Enhancement] Add periodic sound emitter #103

DrakoAlcarus opened this issue Feb 24, 2016 · 84 comments

Comments

@DrakoAlcarus
Copy link

In the 1.7 version I am using, the game keeps clearing the config file of blocked sounds and the config file I made to try to add sounds. It's getting extremely annoying and I even updated the mod today.

Also, the page you linked me doesn't tell me where to add sounds, but I can't find a way to add or run the sounds anyway because of the persistent issue above.

@OreCruncher
Copy link
Owner

How are you updating the config file? The entry is a Forge config string list where each entry has to be on a separate line. Example:

    S:"Blocked Sounds" <
         dsurround:monstergrowl
     >

This following not work and cause the config file to reset:

    S:"Blocked Sounds" <dsurround:monstergrowl
     >

@DrakoAlcarus
Copy link
Author

Oh. My error was that I put the list items in front of the borders. let me try again and see if my current config will operate.

@DrakoAlcarus
Copy link
Author

Well, now the list items don'y get removed, but the config I added doesn't seem to be working. Here is my setup:

{
"entries":[
{
"biomeName":"Underground",
"sounds":[
{
"sound":"dsurround:rumble1",
"volume":0.3,
"spot":true,
"weight":100
},
{
"sound":"dsurround:rumble2",
"volume":0.3,
"spot":true,
"weight":100
},
{
"sound":"dsurround:rumble3",
"volume":0.3,
"spot":true,
"weight":100
},
{
"sound":"cave:cave_hit1",
"volume":0.3,
"spot":true,
"weight":25
}
{
"sound":"cave:cave_hit2",
"volume":0.3,
"spot":true,
"weight":25
}
{
"sound":"cave:cave_hit3",
"volume":0.3,
"spot":true,
"weight":25
}
]
}

The ones without the dsurround part are for a file in the config file for your mod. Even when I put the sounds into your mod file and tried using the string "sound":"dsurround:rumble1" it didn't work.

Also, I have a few other things I need to know how to code. For example, I have sounds for tekkit classic that have the drip sounds, cave rumble, lake birds, tree wind, height wind, underwater loop, getting lit on fire by lava, and fire, with popping embers.

@DrakoAlcarus
Copy link
Author

But first I need to know where to put the files.

@DrakoAlcarus
Copy link
Author

Real quick, one thing that old matmos did that I want to do with the cave rumbles, is how it continuously loops, but plays the random sound out of the three rumble sounds I have.

@OreCruncher
Copy link
Owner

Several things:

  1. If what you provided is a copy/paste you are missing some commas and square brackets in the Json. There should be an error showing in the Minecraft/Forge log saying so. Fix up the syntax errors before going further - any behavior after the error is suspect. I recommend using a text editor that understands Json - like Notepad++.
  2. There is no rumble1 sound defined in my mod, so something like "dsurround:rumble1" will not work. Will only work with sounds registered by my mod as defined in the sounds.json.
  3. It looks like you are working on your own sound pack, which is cool. The angle is to make a resourcepack that only contains sounds. It would have an ID, such as "mysounds". Then, in the configuration files you would refer to that sound using something like "mysounds:rumble1". Note that resource packs have a specific structure and can find info on the internet on how to construct.
  4. Random sound - it's one of the purposes of the sounds.json. If you take a look at mine you will see the first entry having a bunch of lines for "sounds". When the sound system is told to play "fs.bluntwood.bluntwood_walk" it will randomly select one of those sounds to play. There are other options that could be set (that I don't use) such as selection weight, volume, pitch, etc. You can do an internet search for this info as well.

@DrakoAlcarus
Copy link
Author

Alright, I'm getting to work on that. It's helpful to learn to code, considering I'm eventually going to develop 3 mods.

@DrakoAlcarus
Copy link
Author

So here is what I have done:

  • I put the new sound folder (oldmatmos) near the footstep and ambiance folder
  • I edited this file: oldmatmos,json
{
    "entries":[
        {
            "biomeName":"underground",
            "sounds":[
                {
                    "sound":"dsurround:caverumble",
                    "volume":0.3
                },
                {
                    "sound":"dsurround:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}
  • I added this to the sounds.json from within your mod:
    "caverumble":{
        "category":"ambient",
        "sounds":[
            "oldmatmos/cave/rumble1",
            "oldmatmos/cave/rumble2",
            "oldmatmos/cave/rumble3"
        ]

    },
    "caveroar":{
        "category":"ambient",
        "sounds":[
            "oldmatmos/cave/cave_hit1",
            "oldmatmos/cave/cave_hit3",
            "oldmatmos/cave/cave_hit3"
        ]

    },
    "underwater":{
        "category":"ambient",
        "sounds":[
            "oldmatmos/other/water_underwater_loop"
        ]

    }
  • I do have a resource pack set aside, but I don't know how to make your mod notice it
  • I am no longer receiving anymore syntax errors in the log

Yet, the sounds still don't work.

@OreCruncher
Copy link
Owner

Don't modify the sounds.json in the Dynamic Surroundings JAR. Make a new sounds.json that is inside your resource pack. This sounds.json will define the sounds are contained in your resource pack.

Based on your information above I am going to assume that your resource pack ID is "oldmatmos". If that is the case then your "entries" list in the Json would look like:

{
    "entries":[
        {
            "biomeName":"Underground",
            "sounds":[
                {
                    "sound":"oldmatmos:caverumble",
                    "volume":0.3
                },
                {
                    "sound":"oldmatmos:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}

(The "biomeName" value is case sensitive so you would have to spell it exactly or expand the value to a regex expression that ignores case.)

@DrakoAlcarus
Copy link
Author

How do I give the resource pack an id? Is that it's name in the pack.mcmeta?

@OreCruncher
Copy link
Owner

That contains the description.

Inside the pack you have an "assets" folder. Under that you created another folder. The name of that folder is the ID. A lot of examples you see on the internet relate to replacing the Minecraft resources, so the folder layout is "assets/minecraft". You can have your own, such as "assets/oldmatmos". Then, the "id" of the pack would be "oldmatmos" and you would refer to assets in that folder using "oldmatmos".

Here are the assets for Dynamic Surroundings. In that folder you can see "dsurround" (the ID of the Dynamic Surroundings mod is dsurround), and "minecraft" (for the particle textures that replace the Vanilla ones).

@DrakoAlcarus
Copy link
Author

Now I have this for my config:

{
    "entries":[
        {
            "biomeName":"underground",
            "sounds":[
                {
                    "sound":"matmosclassic:caverumble",
                    "volume":0.25
                },
                {
                    "sound":"matmosclassic:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}

And this for my sounds.json:

{
    "caverumble":{
        "category":"ambient",
        "sounds":[
            "ambient/cave/rumble1",
            "ambient/cave/rumble2",
            "ambient/cave/rumble3"
        ]

    },
    "caveroar":{
        "category":"ambient",
        "sounds":[
            "ambient/cave/cave_hit1",
            "ambient/cave/cave_hit2",
            "ambient/cave/cave_hit3",
            "ambient/cave/cave_hit4"
        ]

    },
    "underwater":{
        "category":"ambient",
        "sounds":[
            "ambient/other/water_underwater_loop"
        ]

    }
}

And here is the contents of my Resource pack files, and their order:

TekkitClassicAndMore
    * pack.mcmeta
    >assets
        >matmosclassic
            *sounds.json
            >ambient
                >cave
                    * cave_hit1.ogg
                    * cave_hit2.ogg
                    * cave_hit3.ogg
                    * cave_hit4.ogg
                    * rumble1.ogg
                    * rumble2.ogg
                    * rumble3.ogg
                >other
                    * rain_drip1.ogg
                    * rain_drip2.ogg
                    * rain_drip3.ogg
                    * rain_drip4.ogg
                >wildlife
                    * chirp1.ogg
                    * chirp2.ogg
                    * chirp3.ogg
                    * flit1.ogg
                    * squeek1.ogg
                    * squeek2.ogg
                    * squeek3.ogg
                >wind
                    * treewind1.ogg
                    * treewind2.ogg
                    * treewind3.ogg
                    * treewind4.ogg
                    * windgust.ogg
                    * windgust_strong.ogg
            >interact
                *fire_burst.ogg
                *travel.ogg
                *water_underwater_loop.ogg

I left out the minecraft folder, because it had some random texture changes.

But nevertheless, it isn't working still. I have the pack activated in the game, and I checked your config if my config was still there, and it is. What is going wrong?

@OreCruncher
Copy link
Owner

The biomeName is case sensitive. Make it "Underground".

Also, can you play one of your sounds using the /playsound command?

@DrakoAlcarus
Copy link
Author

I played your owl sound just fine, but my sounds didn't play. In fact, I got this spammed on my log:

[16:08:54] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:55] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:56] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:57] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:58] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Server thread/INFO]: [VanaeAlcarus: Played sound 'owl' to VanaeAlcarus]
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play unknown soundEvent: minecraft:owl
[16:08:59] [Client thread/INFO]: [CHAT] Played sound 'owl' to VanaeAlcarus
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:08:59] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:00] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble
[16:09:01] [Client thread/WARN]: Unable to play empty soundEvent: matmosclassic:caverumble

//with the occasional://
[16:09:37] [Client thread/WARN]: Unable to play unknown soundEvent: matmosclassic:cave_hit3

So, it seems like the code is somewhat working, but it either can't find the sounds, or something is wrong with the sounds.

@OreCruncher
Copy link
Owner

Is the pack available somewhere so I can download and check things out?

@DrakoAlcarus
Copy link
Author

I'll try to upload it on my Google Drive:

https://drive.google.com/open?id=0B5cQMrY_ixOfLTBlWUM1VV9DYVU

@OreCruncher
Copy link
Owner

Need to make it public so I can get it.

@DrakoAlcarus
Copy link
Author

@DrakoAlcarus
Copy link
Author

If that doesn't work, give me your email, and I will give it to you from there.

@OreCruncher
Copy link
Owner

That worked. It's going to be a bit before I can dig into it. I should have something tomorrow.

@DrakoAlcarus
Copy link
Author

That's fine. I'm kind of satisfied seeing that my code seems to operate like it should. It's good to learn.

@OreCruncher
Copy link
Owner

Ok - just noticed the issue. Currently your structure is like this:

TekkitClassicAndMore
    * pack.mcmeta
    >assets
        >matmosclassic
            *sounds.json
            >ambient
                >cave

It needs to be like this:

TekkitClassicAndMore
    * pack.mcmeta
    >assets
        >matmosclassic
            *sounds.json
            >sounds
                >ambient
                    >cave

Essentially move the folders "ambient" and "interact" into a folder called "sounds" and you should be good. I did this and was able to play your sounds using /playsound.

@DrakoAlcarus
Copy link
Author

Yay! It works now!

But there is a problem: It doesn't play random sounds, but instead it seems to chose a random sound and play it over and over again with pauses in between. It needs to play in a loop, with the three sounds played at different times to give more depth instead of a heartbeat-like rumble.

@OreCruncher
Copy link
Owner

caverumble? it will repeat, but a single sound will be randomly selected for the repeat. It will not change until the sound is resubmitted down into the sound engine. I will take a look at the code to see if it can be tweaked to do something you are looking for.

@OreCruncher
Copy link
Owner

Try adding a repeat delay of 1 to the sound record:

{
    "entries":[
        {
            "biomeName":"underground",
            "sounds":[
                {
                    "sound":"matmosclassic:caverumble",
                    "volume":0.25,
                    "repeatDelay":1
                },
                {
                    "sound":"matmosclassic:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}

This will cause the repeat logic in Dynamic Surroundings to kick in. It should cause another sound to generate. The delay of 1 tick should be minimal. Note that because it is random it is possible for it to repeat the sound again on the next attempt (33% chance since there are 3 sounds to select from).

@DrakoAlcarus
Copy link
Author

I will make a clip so you can hear what I am aiming for, because I suck at explaining.

@OreCruncher
Copy link
Owner

Other thing to do is double check each of the ogg files to make sure that it makes sense to loop. If there are "blank" spots in the recording, either beginning or end there will be gaps on the play loop.

@DrakoAlcarus
Copy link
Author

https://youtu.be/_cJ98RV3nKo?t=1m

Skip to one minute in, because I turn up the sounds there.

It sounds to me like it plays a sound, and one second after, plays another of the three sounds or an empty sound, keeping it almost constant.

@DrakoAlcarus
Copy link
Author

Also, I want the smoke from cooling lava back.

@OreCruncher
Copy link
Owner

If this is what your config looks like:

{
    "entries":[
        {
            "biomeName":"underground",
            "sounds":[
                {
                    "sound":"matmosclassic:caverumble",
                    "volume":0.25
                },
                {
                    "sound":"matmosclassic:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}

then "caverumble" will be continuous. It will keep playing. If you want it to only occur periodically, then you need to add a "spot":true to it:

{
    "entries":[
        {
            "biomeName":"Underground",
            "sounds":[
                {
                    "sound":"matmosclassic:caverumble",
                    "volume":0.25,
                    "spot":true
                },
                {
                    "sound":"matmosclassic:caveroar",
                    "volume":0.3,
                    "spot":true,
                    "weight":20
                },
            ]
        }
    ]
}

As for cooling lava I am not sure what you are referring to. You mean the smoke particles that come up when lava turns to obsidian? I don't do anything related to that.

@DrakoAlcarus
Copy link
Author

Forge10.13.4.1614-1.7.10

I can't remember if walking on rails made a metal sound, but it doesn't seem to do this anymore.

@OreCruncher
Copy link
Owner

Just tried the rail walk thing and I get the sound. What you can do is turn on debug logging using the dsurround.cfg file. In the launcher output window you will see a trace of the sounds that are played with footsteps. This is what I see:

[17:29:38] [Client thread/INFO] [dsurround]:   Playing acoustic grass,rails for event WALK
[17:29:38] [Client thread/INFO] [dsurround]:     Playing sound dsurround:fs.metalbar.metalbar_run (v0.01, p1.00)

@DrakoAlcarus
Copy link
Author

Ignore that part, we have a bug to fix first.

@OreCruncher
Copy link
Owner

Can you duplicate this exception at will? Reason is I would like you turn debug on and give me the log. This is all in Minecraft code so it is unclear as to how Dynamic Surroundings is involved. My hope is that the debug trace will give me more context.

EDIT: Also, were you wandering around normally when this happened, or did something special happen? Special like logging in, changing dimensions, etc.

@DrakoAlcarus
Copy link
Author

I was in a Mine-shaft when it first happened, and each consecutive crash after that was near a Mine-shaft.

The third time I crashed (just now), it was the rock tumbling noise you have that played right when the game crashed.

Below the sound system counter, it displayed 3-4 items (it flashed by before the crash). Two were EMITTER and one was DELAYED.

When it crashes again, I will press PrintScreen and also give you the log.

Also, the rails are fine, I just had other sounds on my computer that flushed out some game noises.

@DrakoAlcarus
Copy link
Author

After a bit of inspection, I noticed that after it displays for a few ticks, it flashes to PLAYING.

@OreCruncher
Copy link
Owner

You sure it is PLAYING and not PENDING? Reason I ask is that PENDING is something in my code, PLAYING is not and would be real strange.

  • EMITTER means the sound is a background sound and will play in a loop, with or without a delay between plays.
  • DELAYED is a spot sound that will play in the future. Right now these are associated with water and lava drop sounds.
  • PENDING is a spot sound that has been placed in an internal queue because there are a lot of sound channels being used in the Minecraft sound engine and Dynamic Surroundings is trying to avoid overload.

EDIT: I am sure it is PENDING you are seeing. When a drop sound transitions from DELAYED to PENDING its real fast, and your brain kinda blends the two strings together to PLAYING because it is "filling in the blanks" with what you are seeing.

EDIT2: Also, what are the numbers after "SoundSystem" in the debug display? Should look like "xx/yy", where "xx" is the current number of queued sounds in the Minecraft sound system, and "yy" is the max number of channels configured. "xx" should vary quite a bit based on whats going on in game; "yy" is fixed and will not change.

@OreCruncher
Copy link
Owner

Posted a BETA to CurseForge that has the PERIODIC sound option. I also made some changes internally based on what I can glean from the call stack you provided. At the moment this looks to be a Minecraft derp, but I did alter some of the control flow and behavior to be more defensive and avoid the condition. Give a try and let me know if it helps.

@DrakoAlcarus
Copy link
Author

I have been messing with other things lately, such as villager styled fortification, and some other building projects. I haven't been able to get into a cave and see if it crashes. On the other hand, is there a limit to sounds I can block? After the update, it seems any more sounds to the list of blocked sounds I add, they won't get blocked.

@OreCruncher
Copy link
Owner

No - there isn't a limit. Take a look at your dsurround.cfg file. All the sounds you block should be listed.

@DrakoAlcarus
Copy link
Author

They are listed. What I'm saying is that the sounds I added into the .cfg
after your mod update won't get blocked.

On Sat, Mar 5, 2016 at 4:58 PM, OreCruncher notifications@github.com
wrote:

No - there isn't a limit. Take a look at your dsurround.cfg file. All the
sounds you block should be listed.


Reply to this email directly or view it on GitHub
#103 (comment)
.

@OreCruncher
Copy link
Owner

Hmmm...even after a client restart?

@DrakoAlcarus
Copy link
Author

Yep. Twice.

On Sat, Mar 5, 2016 at 5:44 PM, OreCruncher notifications@github.com
wrote:

Hmmm...even after a client restart?


Reply to this email directly or view it on GitHub
#103 (comment)
.

@OreCruncher
Copy link
Owner

Check the client log to see if an error is being reported.

@DrakoAlcarus
Copy link
Author

New issue while being underground near water (that is pouring in from the bottom of a birch forest lake):

java.lang.NullPointerException: Unexpected error
    at org.blockartistry.mod.DynSurround.client.sound.SoundManager.getNormalizedVolume(SoundManager.java:203)
    at net.minecraft.client.audio.SoundManager.func_148594_a(SoundManager.java)
    at net.minecraft.client.audio.SoundManager.func_148605_d(SoundManager.java:203)
    at net.minecraft.client.audio.SoundHandler.func_73660_a(SourceFile:179)
    at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2013)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

@OreCruncher
Copy link
Owner

It's the same exception as reported above, though in this particular case it is the latest version of Dynamic Surroundings with the volume hook. Any other exceptions reported during startup? Wondering if there is anything related to blocked sound initialization. Could be something like a Json exception.

@DrakoAlcarus
Copy link
Author

I did find something:

[05:52:57] [Client thread/ERROR] [dsurround]: Unable to process biome config file oldmatmos.json
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: java.lang.NullPointerException
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.data.BiomeRegistry.process(BiomeRegistry.java:344)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.data.BiomeRegistry.processConfig(BiomeRegistry.java:292)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.data.BiomeRegistry.initialize(BiomeRegistry.java:187)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.proxy.Proxy.postInit(Proxy.java:60)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.proxy.ProxyClient.postInit(ProxyClient.java:69)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at org.blockartistry.mod.DynSurround.Module.postInit(Module.java:106)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at java.lang.reflect.Method.invoke(Method.java:483)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at java.lang.reflect.Method.invoke(Method.java:483)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.post(EventBus.java:275)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at java.lang.reflect.Method.invoke(Method.java:483)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at com.google.common.eventbus.EventBus.post(EventBus.java:275)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.common.Loader.initializeMods(Loader.java:742)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:552)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at net.minecraft.client.main.Main.main(SourceFile:148)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at java.lang.reflect.Method.invoke(Method.java:483)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[05:52:57] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]:     at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[05:52:57] [Client thread/INFO] [dsurround]: *** DIMENSION REGISTRY (delay init) ***

@OreCruncher
Copy link
Owner

Anything above that?

EDIT: Also, can you post your oldmatmos.json file?

@OreCruncher
Copy link
Owner

Also, I have a test binary that has addition trace and exception catching in an attempt to figure out this NPE. So far this is the only report of it occuring so it may be some combination of things on your system. If you could install this version and let me know the results. It should not crash, but if there is an issue a line with the token "getNormalizedVolume" would be in the client log with some additional information.

@OreCruncher
Copy link
Owner

@DrakoAlcarus I was wondering if you had a chance to use the test JAR in an attempt to identify the issue. My plan is to finish up bug fixing and what not before I release. Thanks!

@DrakoAlcarus
Copy link
Author

Here is oldmatmos:

{
    "entries":[
        {
            "biomeName":"(?i)Underground",
            "sounds":[
                {
                    "sound":"matmosclassic:caverumble",
                    "soundType":"periodic",
                    "volume":0.25,
                    "repeatDelay":60,
                    "repeatDelayRandom":30
                },
                {
                    "sound":"matmosclassic:caveroar",
                    "volume":0.6,
                    "spot":true,
                    "weight":65
                },
            ]
        }
    ]
}

And no, nothing above it. And now the sounds don't even play since installing your test.jar.

@DrakoAlcarus
Copy link
Author

All the sudden, the sounds are playing. Odd... Now I have to wait till' it crashes.

@DrakoAlcarus
Copy link
Author

Crash log:

java.lang.NullPointerException: Unexpected error
    at net.minecraft.client.audio.SoundManager.func_148606_a(SoundManager.java:389)
    at net.minecraft.client.audio.SoundManager.func_148605_d(SoundManager.java:204)
    at net.minecraft.client.audio.SoundHandler.func_73660_a(SourceFile:179)
    at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2013)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Stacktrace:
    at net.minecraft.client.audio.SoundManager.func_148606_a(SoundManager.java:389)
    at net.minecraft.client.audio.SoundManager.func_148605_d(SoundManager.java:204)
    at net.minecraft.client.audio.SoundHandler.func_73660_a(SourceFile:179)
Stacktrace:
    at net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:373)
    at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2444)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:927)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

I split to original up and put the important parts together.

@OreCruncher
Copy link
Owner

Remove the comma after the } for the last sound entry.

As for the latest call stack I would have expected to see Dynamic Surroundings in it because I hook getNormalizedVolume() (the function func_148606_a in the trace).

@DrakoAlcarus
Copy link
Author

Testing it now...

@DrakoAlcarus
Copy link
Author

Removing the comma did no jutice:

java.lang.NullPointerException: Unexpected error
    at net.minecraft.client.audio.SoundManager.func_148606_a(SoundManager.java:389)
    at net.minecraft.client.audio.SoundManager.func_148605_d(SoundManager.java:204)
    at net.minecraft.client.audio.SoundHandler.func_73660_a(SourceFile:179)
    at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:2013)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:973)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Stacktrace:
    at net.minecraft.client.audio.SoundManager.func_148606_a(SoundManager.java:389)
    at net.minecraft.client.audio.SoundManager.func_148605_d(SoundManager.java:204)
    at net.minecraft.client.audio.SoundHandler.func_73660_a(SourceFile:179)

also, I need to set the height in which the sounds play at y of 48 and below, and when leaving the boundary, I don't want the sound to cut off. Instead, it should finish that current sound it was playing with a fade away.

@OreCruncher
Copy link
Owner

The comma in the json would have nothing to do with the null pointer. It would, however, could have caused the log trace you posted further up and could have caused the blocked sounds to not work properly.

[05:52:57] [Client thread/ERROR] [dsurround]: Unable to process biome config file oldmatmos.json

The NPE though it strange because the latest BETAs should have a different trace because the mod injects code into the method.

As for the Y of 48 are you referring to the Y value for transitioning from Underground to normal Overworld "surface" biomes?

@DrakoAlcarus
Copy link
Author

Well, I ended up installing matmos for the second time... it was everything I wanted. Strong cave rumble, lava sounds, lots of birds, water drips, and some other sounds that stay true to tekkit classic

@OreCruncher
Copy link
Owner

Update with PERIODIC sound type posted to CurseForge. Matmos behavior still being weighed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants