2021-08-11 01:33:17 -07:00
2021-08-06 21:20:47 -07:00
2021-08-09 14:07:20 -07:00
2021-08-11 01:52:05 -07:00
2021-08-11 01:33:17 -07:00
2021-08-11 01:52:05 -07:00
2021-08-11 01:33:17 -07:00
2021-06-14 16:28:44 -07:00
2021-08-09 22:15:10 -07:00
2021-08-08 23:44:31 -07:00

Sound Pack for Minetest

Description:

A Minetest mod that provides a set of free sounds & methods. It is intended as a more universal method for adding sounds to games rather than depending on MTG & default for sounds only.

icon

Licensing:

  • Code: MIT
  • Icon/Screenshot: CC0
  • Media: see following table

Sound file sources & licensing:

General Sounds:
Filename (sounds_) / Source Author License Notes
apple_bite sonicmariobrotha CC0
bee DrDufus CC0
bees tom_woysky CC0
bird* Jc Guan CC0
boing reelworldstudio CC0
bumble_bee_01 Iain McCurdy CC BY 3.0
bumble_bee_02 CGEffex CC BY 3.0
cat_meow blimp66 CC BY 3.0
chicken_* www.bonson.ca CC BY 3.0
clock_tick AntumDeluge CC0
coin greenvwbeetle CC0
cow_moo* JosephSardin CC0
coyote_howl rogerforeman CC BY 3.0
crow_caw Morris Gevirtz CC BY 4.0
dog_bark ivolipa CC0
duck_quack Jonathon Jongsma CC BY-SA 3.0
elephant vataaa CC0
entity_hit sonictechtonic CC BY 3.0
explosion JuveriSetila CC0
frog kayceemixer CC0
fuse Ned Bouhalassa CC0
gallop_01 Alan McKinney (alanmcki) CC BY 3.0
gallop_02 Alan McKinney (alanmcki) CC BY 3.0
goat_bleat_* Stephan CC0
grasshopper straget CC0
horse_neigh_01 GoodListener CC BY 3.0
horse_neigh_02 foxen10 CC0
horse_snort_01 madklown CC0
horse_snort_02 0_ciz CC0
hyena_01 CC BY 2.0
hyena_02 CC BY 2.0
hyena_03 CC BY 2.0
jaguar_saw About Zoos CC BY
lion_bellow felix.blume CC0
mouse AntumDeluge CC0
owl_hoot Anthousai CC0
[parrot*][] Mings CC BY 3.0
peacock dobroide CC BY 3.0
pencil_erase damsur CC0
pencil_write NachtmahrTV CC0
penguin* Bidone CC0
piano CC0
pig_snort yottasounds CC BY 3.0
pig_squeal N/A CC0
pigeon JavierSerrat CC0
puppy_bark moffet CC0
quail PrincessGrace CC0
rooster poorenglishjuggler CC0
sheep mikewest CC0
skeleton_bones AntumDeluge CC0
tiger_roar_01 videog CC BY 3.0
tiger_snarl_01 videog CC BY 3.0
tiger_snarl_0[2-4] schots CC0
undead_moan_* AntumDeluge CC0
vulture AntumDeluge CC0
watch_tick Nicolas4677 CC0
whistle pawsound CC0
wolf_howl killyourpepe CC0
wolf_snarl newagesoup CC BY 3.0
yak AntumDeluge CC0
zebra Peet J van Eeden CC BY
zipper AntumDeluge CC0
Node Sounds:
Filename (sounds_node_) / Source Author License Notes
dig_choppy.* Sheyvan CC0
dig_cracky.* Benboncan CC BY 3.0
dig_crumbly Mito551 CC BY-SA 3.0
dig_gravel.* lolamadeus CC0
dig_ice.* dheming CC BY 3.0
dig_metal yadronoff CC BY 3.0
dig_snappy blukotek CC0
dug.* Mito551 CC BY-SA 3.0
dug_glass.1 cmusounddesign CC BY 3.0
dug_glass.2 Tomlija CC BY 3.0
dug_glass.3 lsprice CC BY 3.0
dug_gravel.* lolamadeus CC0
dug_ice Angel_Perez_Grandi CC BY 3.0
dug_metal.* qubodup CC0
place* Mito551 CC BY-SA 3.0
place_metal.* Ogrebane CC0
step_dirt.* Mito551 CC BY-SA 3.0
step_glass Mito551 CC BY-SA 3.0
step_grass.* Mito551 CC BY-SA 3.0
step_gravel Mito551 CC BY-SA 3.0
step_hard.* Erdie CC BY 3.0
step_ice.* InspectorJ CC BY 3.0
step_metal.* mypantsfelldown CC0
step_sand.* worthahep88 CC0
step_snow.* Ryding CC0
step_water.1 AGFX CC BY 3.0
step_water.2 AGFX CC BY 3.0
step_water.3 AGFX CC BY 3.0
step_water.4 AntumDeluge CC0 generated with Audacity
step_wood.* Mito551 CC BY-SA 3.0

Authors Continued:

  • hyena: Mathevon N, Koralek A, Weldele M, Glickman S, & Theunissen F
  • piano: Scott Joplin & Tim Starling

Usage:

Replacement for default:

If your mod depends on default for node sounds only, then you can easily switch to sounds. Simply add default & sounds as optional dependencies in your mod.conf. sounds overrides methods used by default to its own. For example default.node_sound_dirt_defaults.

Example of overidden method:

function sounds.node_dirt(tbl)
	tbl = tbl or {}

	tbl.footstep = tbl.footstep or {name="sounds_dirt_step", gain=0.4}
	tbl.dug = tbl.dug or {name="sounds_dirt_step", gain=1.0}
	tbl.place = tbl.place or {name="sounds_node_place_soft", gain=1.0}

	sounds.node(tbl)
	return tbl
end

default.node_sound_dirt_defaults = sounds.node_dirt

Example of setting node sounds:

minetest.register_node("foo:bar", {
	description = "Foo Node",
	sounds = default.node_sound_stone_defaults() -- this is the same as calling `sounds.node_stone()`
	...
})

Playing Sounds Manually:

SoundGroup instances are objects for storing & playing sounds. These objects can be called to play a sound from their group. An index can be specified when called to determine which sound to play. If the index parameter is omitted, a random sound will be picked. A table of arguments can also be passed. This is compatible with SimpleSoundSpec.

Creating SoundGroup objects:

local s_group1 = SoundGroup({"sound1", "sound2"})
local s_group2 = SoundGroup({"sound3", "sound4", "sound5"})

-- SoundGroup objects can be concatenated with the arithmetic operator
local s_group3 = s_group1 + s_group2

-- to prevent sound file names from being prefixed with "sounds_" when played, the `no_prepend` field must be set to `true`
s_group1(2) -- plays "sounds_sound2"

s_group1.no_prepend = true
s_group1(2) -- plays "sound2"

There are many pre-defined sound groups.

Calling a SoundGroup object:

-- play random sound from group
sounds.horse_neigh()

-- play specific sound from group
sounds.horse_neigh(2)

-- play random sound from group with parameters
sounds.horse_neigh({gain=1.0})

-- play specific sound from group with parameters
sounds.horse_neigh(2, {gain=1.0})

-- the `play` method is the same as calling the object directly
sounds.horse_neigh:play(2, {gain=1.0})

SoundGroup objects can also be used in node registration:

minetest.register_node("foo:bar", {
	description = "Foo Node",
	sounds = {
		dig = sounds.cow_moo, -- a random sound from the `sounds.cow_moo` group will be played when digging this node
	},
	...

Currently using SoundGroup for node sounds only works for "dig", "dug", & "place".

SoundGroup objects are tables & are indexed by integer. But using the get method is more reliable as it will return the string name with "sounds_" prefix if no_prepend isn't set:

local s_group1 = SoundGroup({"sound1", "sound2"})
local s1 = s_group1:get(1) -- returns "sounds_sound1"
local s2 = s_group1[2] -- returns "sound2"

local s_group2 = SoundGroup({"sound3", "sound4", no_prepend=true})
local s3 = s_group2:get(1) -- returns "sound3"
local s4 = s_group2[2] -- returns "sound4"

The built-in type function can be used to check for a SoundGroup instance:

if type(s_group1) == "SoundGroup" then
	s_group1()
end
Description
No description provided
Readme 65 MiB
Languages
Lua 78.6%
CSS 8.4%
Python 7.7%
Shell 5.3%