commit 6c086e517f4e25fb691c2551af3897cf489c5e7e Author: aiss Date: Fri Feb 10 10:55:53 2023 +0800 . diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0667445 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# ---> Lua +# Compiled Lua sources +luac.out + +# luarocks build files +*.src.rock +*.zip +*.tar.gz + +# Object files +*.o +*.os +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo +*.def +*.exp + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..28597cb --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +### [The Complete Poems of Francis Ledwidge](https://en.wikisource.org/wiki/The_Complete_Poems_of_Francis_Ledwidge) Music Pack + +#### Usage: + +For all players: + +`/mvolume` Set your individual music volume or disable background music (/mvolume 0). Saved across server restarts.
+`/music_list`: list available music
+With mpd privilege:
+`/music_play` : play a song
+`/music_stop`: stop the current song. Unless /mpd_play or /mpd_next are invoked, no more music is played
+`/music_next` [time]: Play the next song after [time] seconds, immediately if omitted.
+## Votes:
+This mod integrates with the [vote](https://content.minetest.net/metapackages/vote/) mod by rubenwardy
+`/vote_music_next` - vote to start next song
+`/vote_music_play` - Vote to play certain sing
+ + +## License +Credits and Ackowledgements
+[balabolka](http://www.cross-plus-a.com/balabolka.htm) Provide music production software. + +#### License of source code:LGPL-2.1-only +This mod is a fork of [mpd](https://content.minetest.net/packages/orwell/mpd/) + +#### License of music:CC BY-SA 3.0 +I use https://en.wikisource.org/wiki/The_Complete_Poems_of_Francis_Ledwidge to generate the ogg + +#### License of Text:CC BY-SA 3.0 +This work was published before January 1, 1927, and is in the public domain worldwide because the author died at least 100 years ago.[The Complete Poems of Francis Ledwidge](https://en.wikisource.org/wiki/The_Complete_Poems_of_Francis_Ledwidge) \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..de7785b --- /dev/null +++ b/init.lua @@ -0,0 +1,214 @@ + +music={} + + +music.pause_between_songs=tonumber(minetest.settings:get("music_pause_between_songs")) or 4 + +--end config + +music.modpath=minetest.get_modpath("music") +if not music.modpath then + error("music mod folder has to be named 'music'!") +end +--{name, length, gain~1} +music.songs = {} +local sfile, sfileerr=io.open(music.modpath..DIR_DELIM.."songs.txt") +if not sfile then error("Error opening songs.txt: "..sfileerr) end +for linent in sfile:lines() do + -- trim leading and trailing spaces away + local line = string.match(linent, "^%s*(.-)%s*$") + if line~="" and string.sub(line,1,1)~="#" then + local name, timeMinsStr, timeSecsStr, gainStr, title = string.match(line, "^(%S+)%s+(%d+):([%d%.]+)%s+([%d%.]+)%s*(.*)$") + local timeMins, timeSecs, gain = tonumber(timeMinsStr), tonumber(timeSecsStr), tonumber(gainStr) + if title=="" then title = name end + if name and timeMins and timeSecs and gain then + music.songs[#music.songs+1]={name=name, length=timeMins*60+timeSecs, lengthhr=timeMinsStr..":"..timeSecsStr, gain=gain, title=title} + else + minetest.log("warning", "[music] Misformatted song entry in songs.txt: "..line) + end + end +end +sfile:close() + +if #music.songs==0 then + print("[music]no songs registered, not doing anything") + return +end + +music.storage = minetest.get_mod_storage() + +music.handles={} + +music.playing=false +music.id_playing=nil +music.song_time_left=nil +music.time_next=10 --sekunden +music.id_last_played=nil + +minetest.register_globalstep(function(dtime) + if music.playing then + if music.song_time_left<=0 then + music.stop_song() + music.time_next=music.pause_between_songs + else + music.song_time_left=music.song_time_left-dtime + end + elseif music.time_next then + if music.time_next<=0 then + music.next_song() + else + music.time_next=music.time_next-dtime + end + end +end) +music.play_song=function(id) + if music.playing then + music.stop_song() + end + local song=music.songs[id] + if not song then return end + for _,player in ipairs(minetest.get_connected_players()) do + local pname=player:get_player_name() + local pvolume=tonumber(music.storage:get_string("vol_"..pname)) + if not pvolume then pvolume=1 end + if pvolume>0 then + local handle = minetest.sound_play(song.name, {to_player=pname, gain=song.gain*pvolume}) + if handle then + music.handles[pname]=handle + end + end + end + music.playing=id + --adding 2 seconds as security + music.song_time_left = song.length + 2 +end +music.stop_song=function() + for pname, handle in pairs(music.handles) do + minetest.sound_stop(handle) + end + music.id_last_played=music.playing + music.playing=nil + music.handles={} + music.time_next=nil +end + +music.next_song=function() + local next + repeat + next=math.random(1,#music.songs) + until #music.songs==1 or next~=music.id_last_played + music.play_song(next) +end + +music.song_human_readable=function(id) + if not tonumber(id) then return "" end + local song=music.songs[id] + if not song then return "" end + return id..": "..song.title.." ["..song.lengthhr.."]" +end + +minetest.register_privilege("music", "may control the music player daemon (music) mod") + +minetest.register_chatcommand("music_stop", { + params = "", + description = "Stop the song currently playing", + privs = {music=true}, + func = function(name, param) + music.stop_song() + end, +}) +minetest.register_chatcommand("music_list", { + params = "", + description = "List all available songs and their IDs", + privs = {music=true}, + func = function(name, param) + for k,v in ipairs(music.songs) do + minetest.chat_send_player(name, music.song_human_readable(k)) + end + end, +}) +minetest.register_chatcommand("music_play", { + params = "", + description = "Play the songs with the given ID (see ids with /music_list)", + privs = {music=true}, + func = function(name, param) + if param=="" then + music.next_song() + return true,"Playing: "..music.song_human_readable(music.playing) + end + id=tonumber(param) + if id and id>0 and id<=#music.songs then + music.play_song(id) + return true,"Playing: "..music.song_human_readable(id) + end + return false, "Invalid song ID!" + end, +}) +minetest.register_chatcommand("music_what", { + params = "", + description = "Display the currently played song.", + privs = {music=true}, + func = function(name, param) + if not music.playing then + if music.time_next and music.time_next~=0 then + return true,"Nothing playing, "..math.floor(music.time_next or 0).." sec. left until next song." + else + return true,"Nothing playing." + end + end + return true,"Playing: "..music.song_human_readable(music.playing).."\nTime Left: "..math.floor(music.song_time_left or 0).." sec." + end, +}) +minetest.register_chatcommand("music_next", { + params = "[seconds]", + description = "Start the next song, either immediately (no parameters) or after n seconds.", + privs = {music=true}, + func = function(name, param) + music.stop_song() + if param and tonumber(param) then + music.time_next=tonumber(param) + return true,"Next song in "..param.." seconds!" + else + music.next_song() + return true,"Next song started!" + end + end, +}) +minetest.register_chatcommand("mvolume", { + params = "[volume level (0-1)]", + description = "Set your background music volume. Use /mvolume 0 to turn off background music for you. Without parameters, show your current setting.", + privs = {}, + func = function(pname, param) + if not param or param=="" then + local pvolume=tonumber(music.storage:get_string("vol_"..pname)) + if not pvolume then pvolume=0.5 end + if pvolume>0 then + return true, "Your music volume is set to "..pvolume.."." + else + if music.handles[pname] then + minetest.sound_stop(music.handles[pname]) + end + return true, "Background music is disabled for you. Use '/mvolume 1' to enable it again." + end + end + local pvolume=tonumber(param) + if not pvolume then + return false, "Invalid usage: /mvolume [volume level (0-1)]" + end + pvolume = math.min(pvolume, 1) + pvolume = math.max(pvolume, 0) + music.storage:set_string("vol_"..pname, pvolume) + if pvolume>0 then + return true, "Music volume set to "..pvolume..". Change will take effect when the next song starts." + else + if music.handles[pname] then + minetest.sound_stop(music.handles[pname]) + end + return true, "Disabled background music for you. Use /mvolume to enable it again." + end + end, +}) + +if vote then + dofile(music.modpath..DIR_DELIM.."vote.lua") +end diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..be2a6cd --- /dev/null +++ b/mod.conf @@ -0,0 +1,4 @@ +name = music +author = maxchen32,orwell +depends = vote +optional_depends = diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..ba9f243 Binary files /dev/null and b/screenshot.png differ diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000..41685ea --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,2 @@ +# How many seconds MUSIC waits before starting the next song +music_pause_between_songs (Pause between songs) int 15 0 3600 diff --git a/songs.txt b/songs.txt new file mode 100644 index 0000000..09531fe --- /dev/null +++ b/songs.txt @@ -0,0 +1,124 @@ +#File Name Time Gain Title +SONGS-OF-THE-FIELDS 6:24 1.9 SONGS OF THE FIELDS +TO-MY-BEST-FRIEND 0:41 1.9 TO MY BEST FRIEND +BEHIND-THE-CLOSED-EYE 0:59 1.9 BEHIND THE CLOSED EYE +BOUND-TO-THE-MAST 1:22 1.9 BOUND TO THE MAST +TO-A-LINNET-IN-A-CAGE 0:38 1.9 TO A LINNET IN A CAGE +A-TWILIGHT-IN-MIDDLE-MARCH 0:44 1.9 A TWILIGHT IN MIDDLE MARCH +SPRING 0:43 1.9 SPRING +DESIRE-IN-SPRING 0:32 1.9 DESIRE IN SPRING +A-RAINY-DAY-IN-APRIL 1:25 1.9 A RAINY DAY IN APRIL +A-SONG-OF-APRIL 0:42 1.9 A SONG OF APRIL +THE-BROKEN-TRYST 0:36 1.9 THE BROKEN TRYST +THOUGHTS-AT-THE-TRYSTING-STILE 1:23 1.9 THOUGHTS AT THE TRYSTING STILE +EVENING-IN-MAY 0:43 1.9 EVENING IN MAY +AN-ATTEMPT-AT-A-CITY-SUNSET 0:48 1.9 AN ATTEMPT AT A CITY SUNSET +WAITING 0:28 1.9 WAITING +THE-SINGER'S-MUSE 0:43 1.9 THE SINGER'S MUSE +INAMORATA 0:50 1.9 INAMORATA +THE-WIFE-OF-LLEW 0:29 1.9 THE WIFE OF LLEW +THE-HILLS 0:54 1.9 THE HILLS +JUNE 1:06 1.9 JUNE +IN-MANCHESTER 0:49 1.9 IN MANCHESTER +MUSIC-ON-WATER 1:24 1.9 MUSIC ON WATER +TO-M-McG 0:43 1.9 TO M_McG +IN-THE-DUSK 0:31 1.9 IN THE DUSK +THE-DEATH-OF-AILILL 1:06 1.9 THE DEATH OF AILILL +AUGUST 0:29 1.9 AUGUST +THE-VISITATION-OF-PEACE 2:48 1.9 THE VISITATION OF PEACE +BEFORE-THE-TEARS 0:43 1.9 BEFORE THE TEARS +GODS-REMEMBRANCE 0:51 1.9 GOD'S REMEMBRANCE +AN-OLD-PAIN 2:10 1.9 AN OLD PAIN +THE-LOST-ONES 0:35 1.9 THE LOST ONES +ALL-HALLOWS-EVE 1:46 1.9 ALL-HALLOWS EVE +A-MEMORY 2:16 1.9 A MEMORY +A-SONG 0:42 1.9 A SONG +A-FEAR 0:22 1.9 A FEAR +THE-COMING-POET 0:33 1.9 THE COMING POET +THE-VISION-ON-THE-BRINK 1:00 1.9 THE VISION ON THE BRINK +TO-LORD-DUNSANY 0:50 1.9 TO LORD DUNSANY +ON-AN-OATEN-STRAW 0:29 1.9 ON AN OATEN STRAW +EVENING-IN-FEBRUARY 0:25 1.9 EVENING IN FEBRUARY +THE-SISTER 0:31 1.9 THE SISTER +BEFORE-THE-WAR-OF-COOLEY 1:22 1.9 BEFORE THE WAR OF COOLEY +LOW-MOON-LAND 0:33 1.9 LOW-MOON LAND +THE-SORROW-OF-FINDEBAR 1:14 1.9 THE SORROW OF FINDEBAR +ON-DREAM-WATER 0:25 1.9 ON DREAM WATER +THE-DEATH-OF-SUALTEM 1:59 1.9 THE DEATH OF SUALTEM +THE-MAID-IN-LOW-MOON-LAND 0:25 1.9 THE MAID IN LOW-MOON LAND +THE-DEATH-OF-LEAG-CUCHULAINS-CHARIOTEER 1:29 1.9 THE DEATH OF LEAG. CUCHULAIN'S CHARIOTEER +THE-PASSING-OF-CAOILTE 1:06 1.9 THE PASSING OF CAOILTE +GROWING-OLD 0:46 1.9 GROWING OLD +AFTER-MY-LAST-SONG 0:53 1.9 AFTER MY LAST SONG +SONGS-OF-PEACE 3:26 1.9 SONGS OF PEACE +A-DREAM-OF-ARTEMIS 9:04 1.9 A DREAM OF ARTEMIS +A-LITTLE-BOY-IN-THE-MORNING 0:34 1.9 A LITTLE BOY IN THE MORNING +TO-A-DISTANT-ONE 1:01 1.9 TO A DISTANT ONE +THE-PLACE 0:41 1.9 THE PLACE +MAY 0:42 1.9 MAY +TO-EILISH-OF-THE-FAIR-HAIR 0:44 1.9 TO EILISH OF THE FAIR HAIR +CROCKNAHARNA 0:38 1.9 CROCKNAHARNA +IN-THE-MEDITERRANEAN-GOING-TO-THE-WAR 0:18 1.9 IN THE MEDITERRANEAN—GOING TO THE WAR +THE-GARDENER 0:43 1.9 THE GARDENER +AUTUMN-EVENING-IN-SERBIA 0:26 1.9 AUTUMN EVENING IN SERBIA +NOCTURNE 0:24 1.9 NOCTURNE +SPRING-AND-AUTUMN 0:16 1.9 SPRING AND AUTUMN +THE-DEPARTURE-OF-PROSERPINE 1:32 1.9 THE DEPARTURE OF PROSERPINE +THE-HOMECOMING-OF-THE-SHEEP 0:43 1.9 THE HOMECOMING OF THE SHEEP +WHEN-LOVE-AND-BEAUTY-WANDER-AWAY 0:34 1.9 WHEN LOVE AND BEAUTY WANDER AWAY +MY-MOTHER 0:41 1.9 MY MOTHER +SONG-Nothing-but-sweet-music-wakes 0:24 1.9 SONG-Nothing but sweet music wakes +TO-ONE-DEAD 0:25 1.9 TO ONE DEAD +THE-RESURRECTION 0:18 1.9 THE RESURRECTION +THE-SHADOW-PEOPLE 0:46 1.9 THE SHADOW PEOPLE +AN-OLD-DESIRE 0:25 1.9 AN OLD DESIRE +THOMAS-McDONAGH 0:27 1.9 THOMAS McDONAGH +THE-WEDDING-MORNING 0:36 1.9 THE WEDDING MORNING +THE-BLACKBIRDS 0:44 1.9 THE BLACKBIRDS +THE-LURE 0:38 1.9 THE LURE +THRO-BOGAC-BAN 0:28 1.9 THRO' BOGAC BAN +FATE 0:30 1.9 FATE +EVENING-CLOUDS 0:45 1.9 EVENING CLOUDS +SONG-The-winds-are-scented-with-woods-after-rain 0:21 1.9 SONG-The winds are scented with woods after rain +THE-HERONS 0:15 1.9 THE HERONS +IN-THE-SHADOWS 0:16 1.9 IN THE SHADOWS +THE-SHIPS-OF-ARCADY 0:30 1.9 THE SHIPS OF ARCADY +AFTER 0:18 1.9 AFTER +TO-ONE-WEEPING 0:17 1.9 TO ONE WEEPING +A-DREAM-DANCE 0:25 1.9 A DREAM DANCE +BY-FAUGHAN 0:38 1.9 BY FAUGHAN +IN-SEPTEMBER 0:23 1.9 IN SEPTEMBER +LAST-SONGS 1:48 1.9 LAST SONGS +TO-AN-OLD-QUILL-OF-LORD-DUNSANY-S 1:19 1.9 TO AN OLD QUILL OF LORD DUNSANY'S +TO-A-SPARROW 0:43 1.9 TO A SPARROW +OLD-CLO 0:36 1.9 OLD CLO +YOUTH 0:25 1.9 YOUTH +THE-LITTLE-CHILDREN 0:28 1.9 THE LITTLE CHILDREN +AUTUMN 0:38 1.9 AUTUMN +IRELAND 0:36 1.9 IRELAND +LADY-FAIR 0:35 1.9 LADY FAIR +AT-A-POETS-GRAVE 0:20 1.9 AT A POET'S GRAVE +AFTER-COURT-MARTIAL 0:25 1.9 AFTER COURT MARTIAL +A-MOTHERS-SONG 0:16 1.9 A MOTHER'S SONG +AT-CURRABWEE 0:49 1.9 AT CURRABWEE +SONG-TIME-IS-OVER 0:16 1.9 SONG-TIME IS OVER +UNA-BAWN 0:18 1.9 UNA BAWN +SPRING-LOVE 0:25 1.9 SPRING LOVE +SOLILOQUY 0:56 1.9 SOLILOQUY +DAWN 0:16 1.9 DAWN +CEOL-SIDHE 0:35 1.9 CEOL SIDHE +THE-RUSHES 0:33 1.9 THE RUSHES +THE-DEAD-KINGS 1:15 1.9 THE DEAD KINGS +IN-FRANCE 0:19 1.9 IN FRANCE +HAD-I-A-GOLDEN-POUND 0:29 1.9 HAD I A GOLDEN POUND +FAIRIES 0:26 1.9 FAIRIES +IN-A-CAFÉ 0:27 1.9 IN A CAFÉ +SPRING-France 0:46 1.9 SPRING +PAN 0:27 1.9 PAN +WITH-FLOWERS 0:20 1.9 WITH FLOWERS +THE-FIND 0:23 1.9 THE FIND +A-FAIRY-HUNT 0:37 1.9 A FAIRY HUNT +TO-ONE-WHO-COMES-NOW-AND-THEN 1:12 1.9 TO ONE WHO COMES NOW AND THEN +THE-SYLPH 0:15 1.9 THE SYLPH +HOME 0:27 1.9 HOME +THE-LANAWN-SHEE 4:07 1.9 THE LANAWN SHEE \ No newline at end of file diff --git a/sounds/A-DREAM-DANCE.ogg b/sounds/A-DREAM-DANCE.ogg new file mode 100644 index 0000000..65105ca Binary files /dev/null and b/sounds/A-DREAM-DANCE.ogg differ diff --git a/sounds/A-DREAM-OF-ARTEMIS.ogg b/sounds/A-DREAM-OF-ARTEMIS.ogg new file mode 100644 index 0000000..1929521 Binary files /dev/null and b/sounds/A-DREAM-OF-ARTEMIS.ogg differ diff --git a/sounds/A-FAIRY-HUNT.ogg b/sounds/A-FAIRY-HUNT.ogg new file mode 100644 index 0000000..a5380df Binary files /dev/null and b/sounds/A-FAIRY-HUNT.ogg differ diff --git a/sounds/A-FEAR.ogg b/sounds/A-FEAR.ogg new file mode 100644 index 0000000..10f08b3 Binary files /dev/null and b/sounds/A-FEAR.ogg differ diff --git a/sounds/A-LITTLE-BOY-IN-THE-MORNING.ogg b/sounds/A-LITTLE-BOY-IN-THE-MORNING.ogg new file mode 100644 index 0000000..be01cc1 Binary files /dev/null and b/sounds/A-LITTLE-BOY-IN-THE-MORNING.ogg differ diff --git a/sounds/A-MEMORY.ogg b/sounds/A-MEMORY.ogg new file mode 100644 index 0000000..19b3fe0 Binary files /dev/null and b/sounds/A-MEMORY.ogg differ diff --git a/sounds/A-MOTHERS-SONG.ogg b/sounds/A-MOTHERS-SONG.ogg new file mode 100644 index 0000000..3464a36 Binary files /dev/null and b/sounds/A-MOTHERS-SONG.ogg differ diff --git a/sounds/A-RAINY-DAY-IN-APRIL.ogg b/sounds/A-RAINY-DAY-IN-APRIL.ogg new file mode 100644 index 0000000..6cf2771 Binary files /dev/null and b/sounds/A-RAINY-DAY-IN-APRIL.ogg differ diff --git a/sounds/A-SONG-OF-APRIL.ogg b/sounds/A-SONG-OF-APRIL.ogg new file mode 100644 index 0000000..e6c0367 Binary files /dev/null and b/sounds/A-SONG-OF-APRIL.ogg differ diff --git a/sounds/A-SONG.ogg b/sounds/A-SONG.ogg new file mode 100644 index 0000000..efa329b Binary files /dev/null and b/sounds/A-SONG.ogg differ diff --git a/sounds/A-TWILIGHT-IN-MIDDLE-MARCH.ogg b/sounds/A-TWILIGHT-IN-MIDDLE-MARCH.ogg new file mode 100644 index 0000000..52941bf Binary files /dev/null and b/sounds/A-TWILIGHT-IN-MIDDLE-MARCH.ogg differ diff --git a/sounds/AFTER-COURT-MARTIAL.ogg b/sounds/AFTER-COURT-MARTIAL.ogg new file mode 100644 index 0000000..1d22ec2 Binary files /dev/null and b/sounds/AFTER-COURT-MARTIAL.ogg differ diff --git a/sounds/AFTER-MY-LAST-SONG.ogg b/sounds/AFTER-MY-LAST-SONG.ogg new file mode 100644 index 0000000..05db048 Binary files /dev/null and b/sounds/AFTER-MY-LAST-SONG.ogg differ diff --git a/sounds/AFTER.ogg b/sounds/AFTER.ogg new file mode 100644 index 0000000..0c54457 Binary files /dev/null and b/sounds/AFTER.ogg differ diff --git a/sounds/ALL-HALLOWS-EVE.ogg b/sounds/ALL-HALLOWS-EVE.ogg new file mode 100644 index 0000000..1044931 Binary files /dev/null and b/sounds/ALL-HALLOWS-EVE.ogg differ diff --git a/sounds/AN-ATTEMPT-AT-A-CITY-SUNSET.ogg b/sounds/AN-ATTEMPT-AT-A-CITY-SUNSET.ogg new file mode 100644 index 0000000..5cffc12 Binary files /dev/null and b/sounds/AN-ATTEMPT-AT-A-CITY-SUNSET.ogg differ diff --git a/sounds/AN-OLD-DESIRE.ogg b/sounds/AN-OLD-DESIRE.ogg new file mode 100644 index 0000000..c8f1e2d Binary files /dev/null and b/sounds/AN-OLD-DESIRE.ogg differ diff --git a/sounds/AN-OLD-PAIN.ogg b/sounds/AN-OLD-PAIN.ogg new file mode 100644 index 0000000..c640f51 Binary files /dev/null and b/sounds/AN-OLD-PAIN.ogg differ diff --git a/sounds/AT-A-POETS-GRAVE.ogg b/sounds/AT-A-POETS-GRAVE.ogg new file mode 100644 index 0000000..000b01a Binary files /dev/null and b/sounds/AT-A-POETS-GRAVE.ogg differ diff --git a/sounds/AT-CURRABWEE.ogg b/sounds/AT-CURRABWEE.ogg new file mode 100644 index 0000000..9835d68 Binary files /dev/null and b/sounds/AT-CURRABWEE.ogg differ diff --git a/sounds/AUGUST.ogg b/sounds/AUGUST.ogg new file mode 100644 index 0000000..f1641e3 Binary files /dev/null and b/sounds/AUGUST.ogg differ diff --git a/sounds/AUTUMN-EVENING-IN-SERBIA.ogg b/sounds/AUTUMN-EVENING-IN-SERBIA.ogg new file mode 100644 index 0000000..82e8495 Binary files /dev/null and b/sounds/AUTUMN-EVENING-IN-SERBIA.ogg differ diff --git a/sounds/AUTUMN.ogg b/sounds/AUTUMN.ogg new file mode 100644 index 0000000..0e1aa39 Binary files /dev/null and b/sounds/AUTUMN.ogg differ diff --git a/sounds/BEFORE-THE-TEARS.ogg b/sounds/BEFORE-THE-TEARS.ogg new file mode 100644 index 0000000..a36e5f5 Binary files /dev/null and b/sounds/BEFORE-THE-TEARS.ogg differ diff --git a/sounds/BEFORE-THE-WAR-OF-COOLEY.ogg b/sounds/BEFORE-THE-WAR-OF-COOLEY.ogg new file mode 100644 index 0000000..47791a8 Binary files /dev/null and b/sounds/BEFORE-THE-WAR-OF-COOLEY.ogg differ diff --git a/sounds/BEHIND-THE-CLOSED-EYE.ogg b/sounds/BEHIND-THE-CLOSED-EYE.ogg new file mode 100644 index 0000000..0708cee Binary files /dev/null and b/sounds/BEHIND-THE-CLOSED-EYE.ogg differ diff --git a/sounds/BOUND-TO-THE-MAST.ogg b/sounds/BOUND-TO-THE-MAST.ogg new file mode 100644 index 0000000..f4dab84 Binary files /dev/null and b/sounds/BOUND-TO-THE-MAST.ogg differ diff --git a/sounds/BY-FAUGHAN.ogg b/sounds/BY-FAUGHAN.ogg new file mode 100644 index 0000000..cc4bff5 Binary files /dev/null and b/sounds/BY-FAUGHAN.ogg differ diff --git a/sounds/CEOL-SIDHE.ogg b/sounds/CEOL-SIDHE.ogg new file mode 100644 index 0000000..2f375e7 Binary files /dev/null and b/sounds/CEOL-SIDHE.ogg differ diff --git a/sounds/CROCKNAHARNA.ogg b/sounds/CROCKNAHARNA.ogg new file mode 100644 index 0000000..1aadb12 Binary files /dev/null and b/sounds/CROCKNAHARNA.ogg differ diff --git a/sounds/DAWN.ogg b/sounds/DAWN.ogg new file mode 100644 index 0000000..84d89b6 Binary files /dev/null and b/sounds/DAWN.ogg differ diff --git a/sounds/DESIRE-IN-SPRING.ogg b/sounds/DESIRE-IN-SPRING.ogg new file mode 100644 index 0000000..75d67a8 Binary files /dev/null and b/sounds/DESIRE-IN-SPRING.ogg differ diff --git a/sounds/EVENING-CLOUDS.ogg b/sounds/EVENING-CLOUDS.ogg new file mode 100644 index 0000000..f00f917 Binary files /dev/null and b/sounds/EVENING-CLOUDS.ogg differ diff --git a/sounds/EVENING-IN-FEBRUARY.ogg b/sounds/EVENING-IN-FEBRUARY.ogg new file mode 100644 index 0000000..c0b9354 Binary files /dev/null and b/sounds/EVENING-IN-FEBRUARY.ogg differ diff --git a/sounds/EVENING-IN-MAY.ogg b/sounds/EVENING-IN-MAY.ogg new file mode 100644 index 0000000..07a2112 Binary files /dev/null and b/sounds/EVENING-IN-MAY.ogg differ diff --git a/sounds/FAIRIES.ogg b/sounds/FAIRIES.ogg new file mode 100644 index 0000000..5ed52bf Binary files /dev/null and b/sounds/FAIRIES.ogg differ diff --git a/sounds/FATE.ogg b/sounds/FATE.ogg new file mode 100644 index 0000000..717a7f4 Binary files /dev/null and b/sounds/FATE.ogg differ diff --git a/sounds/GODS-REMEMBRANCE.ogg b/sounds/GODS-REMEMBRANCE.ogg new file mode 100644 index 0000000..dadbb79 Binary files /dev/null and b/sounds/GODS-REMEMBRANCE.ogg differ diff --git a/sounds/GROWING-OLD.ogg b/sounds/GROWING-OLD.ogg new file mode 100644 index 0000000..def1f4b Binary files /dev/null and b/sounds/GROWING-OLD.ogg differ diff --git a/sounds/HAD-I-A-GOLDEN-POUND.ogg b/sounds/HAD-I-A-GOLDEN-POUND.ogg new file mode 100644 index 0000000..dc19f13 Binary files /dev/null and b/sounds/HAD-I-A-GOLDEN-POUND.ogg differ diff --git a/sounds/HOME.ogg b/sounds/HOME.ogg new file mode 100644 index 0000000..120fa2c Binary files /dev/null and b/sounds/HOME.ogg differ diff --git a/sounds/IN-A-CAFÉ.ogg b/sounds/IN-A-CAFÉ.ogg new file mode 100644 index 0000000..ccd9515 Binary files /dev/null and b/sounds/IN-A-CAFÉ.ogg differ diff --git a/sounds/IN-FRANCE.ogg b/sounds/IN-FRANCE.ogg new file mode 100644 index 0000000..5a43a53 Binary files /dev/null and b/sounds/IN-FRANCE.ogg differ diff --git a/sounds/IN-MANCHESTER.ogg b/sounds/IN-MANCHESTER.ogg new file mode 100644 index 0000000..7d317b3 Binary files /dev/null and b/sounds/IN-MANCHESTER.ogg differ diff --git a/sounds/IN-SEPTEMBER.ogg b/sounds/IN-SEPTEMBER.ogg new file mode 100644 index 0000000..e316373 Binary files /dev/null and b/sounds/IN-SEPTEMBER.ogg differ diff --git a/sounds/IN-THE-DUSK.ogg b/sounds/IN-THE-DUSK.ogg new file mode 100644 index 0000000..9e34c7f Binary files /dev/null and b/sounds/IN-THE-DUSK.ogg differ diff --git a/sounds/IN-THE-MEDITERRANEAN-GOING-TO-THE-WAR.ogg b/sounds/IN-THE-MEDITERRANEAN-GOING-TO-THE-WAR.ogg new file mode 100644 index 0000000..ed30d2f Binary files /dev/null and b/sounds/IN-THE-MEDITERRANEAN-GOING-TO-THE-WAR.ogg differ diff --git a/sounds/IN-THE-SHADOWS.ogg b/sounds/IN-THE-SHADOWS.ogg new file mode 100644 index 0000000..a19075d Binary files /dev/null and b/sounds/IN-THE-SHADOWS.ogg differ diff --git a/sounds/INAMORATA.ogg b/sounds/INAMORATA.ogg new file mode 100644 index 0000000..74727cf Binary files /dev/null and b/sounds/INAMORATA.ogg differ diff --git a/sounds/IRELAND.ogg b/sounds/IRELAND.ogg new file mode 100644 index 0000000..049a6ea Binary files /dev/null and b/sounds/IRELAND.ogg differ diff --git a/sounds/JUNE.ogg b/sounds/JUNE.ogg new file mode 100644 index 0000000..16a1f1d Binary files /dev/null and b/sounds/JUNE.ogg differ diff --git a/sounds/LADY FAIR.ogg b/sounds/LADY FAIR.ogg new file mode 100644 index 0000000..e0e4032 Binary files /dev/null and b/sounds/LADY FAIR.ogg differ diff --git a/sounds/LAST-SONGS.ogg b/sounds/LAST-SONGS.ogg new file mode 100644 index 0000000..d16052c Binary files /dev/null and b/sounds/LAST-SONGS.ogg differ diff --git a/sounds/LOW-MOON-LAND.ogg b/sounds/LOW-MOON-LAND.ogg new file mode 100644 index 0000000..0319f4d Binary files /dev/null and b/sounds/LOW-MOON-LAND.ogg differ diff --git a/sounds/MAY.ogg b/sounds/MAY.ogg new file mode 100644 index 0000000..58e9ae4 Binary files /dev/null and b/sounds/MAY.ogg differ diff --git a/sounds/MUSIC-ON-WATER.ogg b/sounds/MUSIC-ON-WATER.ogg new file mode 100644 index 0000000..8130569 Binary files /dev/null and b/sounds/MUSIC-ON-WATER.ogg differ diff --git a/sounds/MY-MOTHER.ogg b/sounds/MY-MOTHER.ogg new file mode 100644 index 0000000..ea916ce Binary files /dev/null and b/sounds/MY-MOTHER.ogg differ diff --git a/sounds/NOCTURNE.ogg b/sounds/NOCTURNE.ogg new file mode 100644 index 0000000..c00b082 Binary files /dev/null and b/sounds/NOCTURNE.ogg differ diff --git a/sounds/OLD-CLO.ogg b/sounds/OLD-CLO.ogg new file mode 100644 index 0000000..cb958c7 Binary files /dev/null and b/sounds/OLD-CLO.ogg differ diff --git a/sounds/ON-AN-OATEN-STRAW.ogg b/sounds/ON-AN-OATEN-STRAW.ogg new file mode 100644 index 0000000..b9a9c55 Binary files /dev/null and b/sounds/ON-AN-OATEN-STRAW.ogg differ diff --git a/sounds/ON-DREAM-WATER.ogg b/sounds/ON-DREAM-WATER.ogg new file mode 100644 index 0000000..645388c Binary files /dev/null and b/sounds/ON-DREAM-WATER.ogg differ diff --git a/sounds/PAN.ogg b/sounds/PAN.ogg new file mode 100644 index 0000000..6a0ddfb Binary files /dev/null and b/sounds/PAN.ogg differ diff --git a/sounds/SOLILOQUY.ogg b/sounds/SOLILOQUY.ogg new file mode 100644 index 0000000..7414363 Binary files /dev/null and b/sounds/SOLILOQUY.ogg differ diff --git a/sounds/SONG-Nothing-but-sweet-music-wakes.ogg b/sounds/SONG-Nothing-but-sweet-music-wakes.ogg new file mode 100644 index 0000000..d48f65f Binary files /dev/null and b/sounds/SONG-Nothing-but-sweet-music-wakes.ogg differ diff --git a/sounds/SONG-TIME-IS-OVER.ogg b/sounds/SONG-TIME-IS-OVER.ogg new file mode 100644 index 0000000..aa21475 Binary files /dev/null and b/sounds/SONG-TIME-IS-OVER.ogg differ diff --git a/sounds/SONG-The-winds-are-scented-with-woods-after-rain.ogg b/sounds/SONG-The-winds-are-scented-with-woods-after-rain.ogg new file mode 100644 index 0000000..f985e7b Binary files /dev/null and b/sounds/SONG-The-winds-are-scented-with-woods-after-rain.ogg differ diff --git a/sounds/SONGS-OF-PEACE.ogg b/sounds/SONGS-OF-PEACE.ogg new file mode 100644 index 0000000..090eb2f Binary files /dev/null and b/sounds/SONGS-OF-PEACE.ogg differ diff --git a/sounds/SONGS-OF-THE-FIELDS.ogg b/sounds/SONGS-OF-THE-FIELDS.ogg new file mode 100644 index 0000000..5a8e0ab Binary files /dev/null and b/sounds/SONGS-OF-THE-FIELDS.ogg differ diff --git a/sounds/SPRING-AND-AUTUMN.ogg b/sounds/SPRING-AND-AUTUMN.ogg new file mode 100644 index 0000000..04d07ff Binary files /dev/null and b/sounds/SPRING-AND-AUTUMN.ogg differ diff --git a/sounds/SPRING-France.ogg b/sounds/SPRING-France.ogg new file mode 100644 index 0000000..025912b Binary files /dev/null and b/sounds/SPRING-France.ogg differ diff --git a/sounds/SPRING-LOVE.ogg b/sounds/SPRING-LOVE.ogg new file mode 100644 index 0000000..ff88b69 Binary files /dev/null and b/sounds/SPRING-LOVE.ogg differ diff --git a/sounds/SPRING.ogg b/sounds/SPRING.ogg new file mode 100644 index 0000000..90b399d Binary files /dev/null and b/sounds/SPRING.ogg differ diff --git a/sounds/THE-BLACKBIRDS.ogg b/sounds/THE-BLACKBIRDS.ogg new file mode 100644 index 0000000..ce5987f Binary files /dev/null and b/sounds/THE-BLACKBIRDS.ogg differ diff --git a/sounds/THE-BROKEN-TRYST.ogg b/sounds/THE-BROKEN-TRYST.ogg new file mode 100644 index 0000000..047c20c Binary files /dev/null and b/sounds/THE-BROKEN-TRYST.ogg differ diff --git a/sounds/THE-COMING-POET.ogg b/sounds/THE-COMING-POET.ogg new file mode 100644 index 0000000..515e5d0 Binary files /dev/null and b/sounds/THE-COMING-POET.ogg differ diff --git a/sounds/THE-DEAD-KINGS.ogg b/sounds/THE-DEAD-KINGS.ogg new file mode 100644 index 0000000..11c712a Binary files /dev/null and b/sounds/THE-DEAD-KINGS.ogg differ diff --git a/sounds/THE-DEATH-OF-AILILL.ogg b/sounds/THE-DEATH-OF-AILILL.ogg new file mode 100644 index 0000000..cd3b6f4 Binary files /dev/null and b/sounds/THE-DEATH-OF-AILILL.ogg differ diff --git a/sounds/THE-DEATH-OF-LEAG-CUCHULAINS-CHARIOTEER.ogg b/sounds/THE-DEATH-OF-LEAG-CUCHULAINS-CHARIOTEER.ogg new file mode 100644 index 0000000..a2e0a2b Binary files /dev/null and b/sounds/THE-DEATH-OF-LEAG-CUCHULAINS-CHARIOTEER.ogg differ diff --git a/sounds/THE-DEATH-OF-SUALTEM.ogg b/sounds/THE-DEATH-OF-SUALTEM.ogg new file mode 100644 index 0000000..7a74e85 Binary files /dev/null and b/sounds/THE-DEATH-OF-SUALTEM.ogg differ diff --git a/sounds/THE-DEPARTURE-OF-PROSERPINE.ogg b/sounds/THE-DEPARTURE-OF-PROSERPINE.ogg new file mode 100644 index 0000000..4d0cc92 Binary files /dev/null and b/sounds/THE-DEPARTURE-OF-PROSERPINE.ogg differ diff --git a/sounds/THE-FIND.ogg b/sounds/THE-FIND.ogg new file mode 100644 index 0000000..9bb1322 Binary files /dev/null and b/sounds/THE-FIND.ogg differ diff --git a/sounds/THE-GARDENER.ogg b/sounds/THE-GARDENER.ogg new file mode 100644 index 0000000..ca34888 Binary files /dev/null and b/sounds/THE-GARDENER.ogg differ diff --git a/sounds/THE-HERONS.ogg b/sounds/THE-HERONS.ogg new file mode 100644 index 0000000..74dbc04 Binary files /dev/null and b/sounds/THE-HERONS.ogg differ diff --git a/sounds/THE-HILLS.ogg b/sounds/THE-HILLS.ogg new file mode 100644 index 0000000..97feb95 Binary files /dev/null and b/sounds/THE-HILLS.ogg differ diff --git a/sounds/THE-HOMECOMING-OF-THE-SHEEP.ogg b/sounds/THE-HOMECOMING-OF-THE-SHEEP.ogg new file mode 100644 index 0000000..d0ef7c7 Binary files /dev/null and b/sounds/THE-HOMECOMING-OF-THE-SHEEP.ogg differ diff --git a/sounds/THE-LANAWN-SHEE.ogg b/sounds/THE-LANAWN-SHEE.ogg new file mode 100644 index 0000000..a0f2e6d Binary files /dev/null and b/sounds/THE-LANAWN-SHEE.ogg differ diff --git a/sounds/THE-LITTLE-CHILDREN.ogg b/sounds/THE-LITTLE-CHILDREN.ogg new file mode 100644 index 0000000..8734d85 Binary files /dev/null and b/sounds/THE-LITTLE-CHILDREN.ogg differ diff --git a/sounds/THE-LOST-ONES.ogg b/sounds/THE-LOST-ONES.ogg new file mode 100644 index 0000000..0adf643 Binary files /dev/null and b/sounds/THE-LOST-ONES.ogg differ diff --git a/sounds/THE-LURE.ogg b/sounds/THE-LURE.ogg new file mode 100644 index 0000000..0b2568e Binary files /dev/null and b/sounds/THE-LURE.ogg differ diff --git a/sounds/THE-MAID-IN-LOW-MOON-LAND.ogg b/sounds/THE-MAID-IN-LOW-MOON-LAND.ogg new file mode 100644 index 0000000..4d4b04f Binary files /dev/null and b/sounds/THE-MAID-IN-LOW-MOON-LAND.ogg differ diff --git a/sounds/THE-PASSING-OF-CAOILTE.ogg b/sounds/THE-PASSING-OF-CAOILTE.ogg new file mode 100644 index 0000000..bd5bd0b Binary files /dev/null and b/sounds/THE-PASSING-OF-CAOILTE.ogg differ diff --git a/sounds/THE-PLACE.ogg b/sounds/THE-PLACE.ogg new file mode 100644 index 0000000..3551a38 Binary files /dev/null and b/sounds/THE-PLACE.ogg differ diff --git a/sounds/THE-RESURRECTION.ogg b/sounds/THE-RESURRECTION.ogg new file mode 100644 index 0000000..8fe5c56 Binary files /dev/null and b/sounds/THE-RESURRECTION.ogg differ diff --git a/sounds/THE-RUSHES.ogg b/sounds/THE-RUSHES.ogg new file mode 100644 index 0000000..c8b7aa4 Binary files /dev/null and b/sounds/THE-RUSHES.ogg differ diff --git a/sounds/THE-SHADOW-PEOPLE.ogg b/sounds/THE-SHADOW-PEOPLE.ogg new file mode 100644 index 0000000..99fed04 Binary files /dev/null and b/sounds/THE-SHADOW-PEOPLE.ogg differ diff --git a/sounds/THE-SHIPS-OF-ARCADY.ogg b/sounds/THE-SHIPS-OF-ARCADY.ogg new file mode 100644 index 0000000..1e66453 Binary files /dev/null and b/sounds/THE-SHIPS-OF-ARCADY.ogg differ diff --git a/sounds/THE-SINGER'S-MUSE.ogg b/sounds/THE-SINGER'S-MUSE.ogg new file mode 100644 index 0000000..3cb9295 Binary files /dev/null and b/sounds/THE-SINGER'S-MUSE.ogg differ diff --git a/sounds/THE-SISTER.ogg b/sounds/THE-SISTER.ogg new file mode 100644 index 0000000..6a4ec6d Binary files /dev/null and b/sounds/THE-SISTER.ogg differ diff --git a/sounds/THE-SORROW-OF-FINDEBAR.ogg b/sounds/THE-SORROW-OF-FINDEBAR.ogg new file mode 100644 index 0000000..9ca1abe Binary files /dev/null and b/sounds/THE-SORROW-OF-FINDEBAR.ogg differ diff --git a/sounds/THE-SYLPH.ogg b/sounds/THE-SYLPH.ogg new file mode 100644 index 0000000..4406461 Binary files /dev/null and b/sounds/THE-SYLPH.ogg differ diff --git a/sounds/THE-VISION-ON-THE-BRINK.ogg b/sounds/THE-VISION-ON-THE-BRINK.ogg new file mode 100644 index 0000000..546bf7c Binary files /dev/null and b/sounds/THE-VISION-ON-THE-BRINK.ogg differ diff --git a/sounds/THE-VISITATION-OF-PEACE.ogg b/sounds/THE-VISITATION-OF-PEACE.ogg new file mode 100644 index 0000000..4976ecd Binary files /dev/null and b/sounds/THE-VISITATION-OF-PEACE.ogg differ diff --git a/sounds/THE-WEDDING-MORNING.ogg b/sounds/THE-WEDDING-MORNING.ogg new file mode 100644 index 0000000..bc88b50 Binary files /dev/null and b/sounds/THE-WEDDING-MORNING.ogg differ diff --git a/sounds/THE-WIFE-OF-LLEW.ogg b/sounds/THE-WIFE-OF-LLEW.ogg new file mode 100644 index 0000000..73934c8 Binary files /dev/null and b/sounds/THE-WIFE-OF-LLEW.ogg differ diff --git a/sounds/THOMAS-McDONAGH.ogg b/sounds/THOMAS-McDONAGH.ogg new file mode 100644 index 0000000..a5a6cb7 Binary files /dev/null and b/sounds/THOMAS-McDONAGH.ogg differ diff --git a/sounds/THOUGHTS-AT-THE-TRYSTING-STILE.ogg b/sounds/THOUGHTS-AT-THE-TRYSTING-STILE.ogg new file mode 100644 index 0000000..b04b2bf Binary files /dev/null and b/sounds/THOUGHTS-AT-THE-TRYSTING-STILE.ogg differ diff --git a/sounds/THRO-BOGAC-BAN.ogg b/sounds/THRO-BOGAC-BAN.ogg new file mode 100644 index 0000000..cd4cf55 Binary files /dev/null and b/sounds/THRO-BOGAC-BAN.ogg differ diff --git a/sounds/TO-A-DISTANT-ONE.ogg b/sounds/TO-A-DISTANT-ONE.ogg new file mode 100644 index 0000000..7b60dc4 Binary files /dev/null and b/sounds/TO-A-DISTANT-ONE.ogg differ diff --git a/sounds/TO-A-LINNET-IN-A-CAGE.ogg b/sounds/TO-A-LINNET-IN-A-CAGE.ogg new file mode 100644 index 0000000..285ec5e Binary files /dev/null and b/sounds/TO-A-LINNET-IN-A-CAGE.ogg differ diff --git a/sounds/TO-A-SPARROW.ogg b/sounds/TO-A-SPARROW.ogg new file mode 100644 index 0000000..5a0db3d Binary files /dev/null and b/sounds/TO-A-SPARROW.ogg differ diff --git a/sounds/TO-AN-OLD-QUILL-OF-LORD-DUNSANY-S.ogg b/sounds/TO-AN-OLD-QUILL-OF-LORD-DUNSANY-S.ogg new file mode 100644 index 0000000..8387d29 Binary files /dev/null and b/sounds/TO-AN-OLD-QUILL-OF-LORD-DUNSANY-S.ogg differ diff --git a/sounds/TO-EILISH-OF-THE-FAIR-HAIR.ogg b/sounds/TO-EILISH-OF-THE-FAIR-HAIR.ogg new file mode 100644 index 0000000..5a6b006 Binary files /dev/null and b/sounds/TO-EILISH-OF-THE-FAIR-HAIR.ogg differ diff --git a/sounds/TO-LORD-DUNSANY.ogg b/sounds/TO-LORD-DUNSANY.ogg new file mode 100644 index 0000000..0261979 Binary files /dev/null and b/sounds/TO-LORD-DUNSANY.ogg differ diff --git a/sounds/TO-M-McG.ogg b/sounds/TO-M-McG.ogg new file mode 100644 index 0000000..2ff746f Binary files /dev/null and b/sounds/TO-M-McG.ogg differ diff --git a/sounds/TO-MY-BEST-FRIEND.ogg b/sounds/TO-MY-BEST-FRIEND.ogg new file mode 100644 index 0000000..b8c1079 Binary files /dev/null and b/sounds/TO-MY-BEST-FRIEND.ogg differ diff --git a/sounds/TO-ONE-DEAD.ogg b/sounds/TO-ONE-DEAD.ogg new file mode 100644 index 0000000..6695af8 Binary files /dev/null and b/sounds/TO-ONE-DEAD.ogg differ diff --git a/sounds/TO-ONE-WEEPING.ogg b/sounds/TO-ONE-WEEPING.ogg new file mode 100644 index 0000000..154f593 Binary files /dev/null and b/sounds/TO-ONE-WEEPING.ogg differ diff --git a/sounds/TO-ONE-WHO-COMES-NOW-AND-THEN.ogg b/sounds/TO-ONE-WHO-COMES-NOW-AND-THEN.ogg new file mode 100644 index 0000000..987b895 Binary files /dev/null and b/sounds/TO-ONE-WHO-COMES-NOW-AND-THEN.ogg differ diff --git a/sounds/UNA-BAWN.ogg b/sounds/UNA-BAWN.ogg new file mode 100644 index 0000000..79370ca Binary files /dev/null and b/sounds/UNA-BAWN.ogg differ diff --git a/sounds/WAITING.ogg b/sounds/WAITING.ogg new file mode 100644 index 0000000..bf2ee7f Binary files /dev/null and b/sounds/WAITING.ogg differ diff --git a/sounds/WHEN-LOVE-AND-BEAUTY-WANDER-AWAY.ogg b/sounds/WHEN-LOVE-AND-BEAUTY-WANDER-AWAY.ogg new file mode 100644 index 0000000..3894d5f Binary files /dev/null and b/sounds/WHEN-LOVE-AND-BEAUTY-WANDER-AWAY.ogg differ diff --git a/sounds/WITH-FLOWERS.ogg b/sounds/WITH-FLOWERS.ogg new file mode 100644 index 0000000..1e2bba7 Binary files /dev/null and b/sounds/WITH-FLOWERS.ogg differ diff --git a/sounds/YOUTH.ogg b/sounds/YOUTH.ogg new file mode 100644 index 0000000..61cbe71 Binary files /dev/null and b/sounds/YOUTH.ogg differ diff --git a/vote.lua b/vote.lua new file mode 100644 index 0000000..6c92b40 --- /dev/null +++ b/vote.lua @@ -0,0 +1,68 @@ +--music +--vote.lua - vote module to change songs + +function music.vote_play(name, param) + id=tonumber(param) + if id and id>0 and id<=#music.songs then + vote.new_vote(name, { + description = "Play "..music.song_human_readable(id), + help = "/yes or /no", + duration = 20, + perc_needed = 0.4, + + on_result = function(self, result, results) + if result == "yes" then + minetest.chat_send_all("Vote to play " .. music.song_human_readable(id) .. " passed " .. + #results.yes .. " to " .. #results.no) + music.play_song(id) + else + minetest.chat_send_all("Vote to play " .. music.song_human_readable(id) .. " failed " .. + #results.yes .. " to " .. #results.no) + end + end, + + on_vote = function(self, name, value) + minetest.chat_send_all(name .. " voted " .. value .. " to '" .. + self.description .. "'") + end, + }) + return true + end + return false,"Invalid song ID! See available song IDs using /music_list" +end + +minetest.register_chatcommand("vote_music_play", { + func = music.vote_play +}) + +function music.vote_next(name, param) + vote.new_vote(name, { + description = "Play next song", + help = "/yes or /no", + duration = 20, + perc_needed = 0.4, + + on_result = function(self, result, results) + minetest.chat_send_all(result..dump(results)) + if result == "yes" then + minetest.chat_send_all("Vote to play next song passed " .. + #results.yes .. " to " .. #results.no) + music.next_song() + else + minetest.chat_send_all("Vote to play next song failed " .. + #results.yes .. " to " .. #results.no) + end + end, + + on_vote = function(self, name, value) + minetest.chat_send_all(name .. " voted " .. value .. " to '" .. + self.description .. "'") + end + }) + return true +end + +minetest.register_chatcommand("vote_music_next", { + func = music.vote_next +}) +