diff --git a/code/game/gamemodes/extra/ninja_equipment.dm b/code/game/gamemodes/extra/ninja_equipment.dm
index b7ca1f8465d..e68f68cf7e1 100644
--- a/code/game/gamemodes/extra/ninja_equipment.dm
+++ b/code/game/gamemodes/extra/ninja_equipment.dm
@@ -940,7 +940,8 @@ ________________________________________________________________________________
G.draining = 1
- U << "\blue Now charging battery..."
+ if(target_type!="RESEARCH")//I lumped research downloading here for ease of use.
+ U << "\blue Now charging battery..."
switch(target_type)
@@ -1052,6 +1053,29 @@ ________________________________________________________________________________
else
U << "\red This recharger is not providing energy. You must find another source."
+ if("RESEARCH")
+ var/obj/machinery/A = target
+ U << "\blue Hacking \the [A]..."
+ spawn(0)
+ for(var/mob/living/silicon/ai/AI in world)
+ if(U.loc)
+ AI << "\red Network Alert: Hacking attempt detected in [U.loc]."
+ else
+ AI << "\red Network Alert: Hacking attempt detected. Unable to pinpoint location."
+ if(A:files&&A:files.known_tech.len))
+ while(G.candrain&&!isnull(A))
+ for(var/datum/tech/current_data in S.stored_research)
+ U << "\blue Checking \the [current_data.name] database."
+ if(do_after(U,S.s_delay)
+ for(var/datum/tech/analyzing_data in A:files.known_tech)
+ if(current_data.id==analyzing_data.id)
+ if(analyzing_data.level>current_data.level)
+ U << "\blue Database: \black UPDATED."
+ current_data.level = analyzing_data.level
+ break
+ break
+ U << "\blue Data analyzed. Process finished."
+
if("WIRE")
var/obj/cable/A = target
var/datum/powernet/PN = A.get_powernet()
@@ -1124,6 +1148,7 @@ ________________________________________________________________________________
U << "\blue Gained [totaldrain] energy from [A]."
else
U << "\red Their battery has run dry of power. You must find another source."
+
else//Else nothing :<
G.draining = 0
diff --git a/code/game/magic/musician.dm b/code/game/magic/musician.dm
index fd5a139a12c..96cb89d70c3 100644
--- a/code/game/magic/musician.dm
+++ b/code/game/magic/musician.dm
@@ -1,9 +1,7 @@
-datum/song
+/datum/song
var
name = "Untitled"
- var/list/lines = list()
-
-
+ lines[] = list()
/obj/device/piano
name = "space piano"
@@ -11,127 +9,442 @@ datum/song
icon_state = "piano"
anchored = 1
density = 1
- var/hitstaken = 0
- var/broken = 0
var
datum/song/song
playing = 0
tempo = 5
- proc/playnote(var/note as text)
- var/soundfile
- switch(note)
- if("A")
- soundfile = 'pianoA.ogg'
- if("B")
- soundfile = 'pianoB.ogg'
- if("C")
- soundfile = 'pianoC.ogg'
- if("D")
- soundfile = 'pianoD.ogg'
- if("E")
- soundfile = 'pianoE.ogg'
- if("F")
- soundfile = 'pianoF.ogg'
- if("G")
- soundfile = 'pianoG.ogg'
- else
- return
-
- for(var/mob/M in range(15, src))
- M << sound(soundfile)
-
- proc/playsong()
- for(var/line in song.lines)
- var/i
- for(i = 1; i <= lentext(line); i++)
- var/currentnote = copytext(line, i, i+1)
- if(currentnote == "*")
- sleep(src.tempo)
+ proc
+ playnote(var/note as text)
+ var/soundfile
+ /*BYOND loads resource files at compile time if they are ''. This means you can't really manipulate them dynamically.
+ Tried doing it dynamically at first but its more trouble than its worth. Would have saved many lines tho.*/
+ switch(note)
+ if("Cn1")
+ soundfile = 'Cn1.ogg'
+ if("C#1")
+ soundfile = 'C#1.ogg'
+ if("Db1")
+ soundfile = 'Db1.ogg'
+ if("Dn1")
+ soundfile = 'Dn1.ogg'
+ if("D#1")
+ soundfile = 'D#1.ogg'
+ if("Eb1")
+ soundfile = 'Eb1.ogg'
+ if("En1")
+ soundfile = 'En1.ogg'
+ if("E#1")
+ soundfile = 'E#1.ogg'
+ if("Fb1")
+ soundfile = 'Fb1.ogg'
+ if("Fn1")
+ soundfile = 'Fn1.ogg'
+ if("F#1")
+ soundfile = 'F#1.ogg'
+ if("Gb1")
+ soundfile = 'Gb1.ogg'
+ if("Gn1")
+ soundfile = 'Gn1.ogg'
+ if("G#1")
+ soundfile = 'G#1.ogg'
+ if("Ab1")
+ soundfile = 'Ab1.ogg'
+ if("An1")
+ soundfile = 'An1.ogg'
+ if("A#1")
+ soundfile = 'A#1.ogg'
+ if("Bb1")
+ soundfile = 'Bb1.ogg'
+ if("Bn1")
+ soundfile = 'Bn1.ogg'
+ if("B#1")
+ soundfile = 'B#1.ogg'
+ if("Cb2")
+ soundfile = 'Cb2.ogg'
+ if("Cn2")
+ soundfile = 'Cn2.ogg'
+ if("C#2")
+ soundfile = 'C#2.ogg'
+ if("Db2")
+ soundfile = 'Db2.ogg'
+ if("Dn2")
+ soundfile = 'Dn2.ogg'
+ if("D#2")
+ soundfile = 'D#2.ogg'
+ if("Eb2")
+ soundfile = 'Eb2.ogg'
+ if("En2")
+ soundfile = 'En2.ogg'
+ if("E#2")
+ soundfile = 'E#2.ogg'
+ if("Fb2")
+ soundfile = 'Fb2.ogg'
+ if("Fn2")
+ soundfile = 'Fn2.ogg'
+ if("F#2")
+ soundfile = 'F#2.ogg'
+ if("Gb2")
+ soundfile = 'Gb2.ogg'
+ if("Gn2")
+ soundfile = 'Gn2.ogg'
+ if("G#2")
+ soundfile = 'G#2.ogg'
+ if("Ab2")
+ soundfile = 'Ab2.ogg'
+ if("An2")
+ soundfile = 'An2.ogg'
+ if("A#2")
+ soundfile = 'A#2.ogg'
+ if("Bb2")
+ soundfile = 'Bb2.ogg'
+ if("Bn2")
+ soundfile = 'Bn2.ogg'
+ if("B#2")
+ soundfile = 'B#2.ogg'
+ if("Cb3")
+ soundfile = 'Cb3.ogg'
+ if("Cn3")
+ soundfile = 'Cn3.ogg'
+ if("C#3")
+ soundfile = 'C#3.ogg'
+ if("Db3")
+ soundfile = 'Db3.ogg'
+ if("Dn3")
+ soundfile = 'Dn3.ogg'
+ if("D#3")
+ soundfile = 'D#3.ogg'
+ if("Eb3")
+ soundfile = 'Eb3.ogg'
+ if("En3")
+ soundfile = 'En3.ogg'
+ if("E#3")
+ soundfile = 'E#3.ogg'
+ if("Fb3")
+ soundfile = 'Fb3.ogg'
+ if("Fn3")
+ soundfile = 'Fn3.ogg'
+ if("F#3")
+ soundfile = 'F#3.ogg'
+ if("Gb3")
+ soundfile = 'Gb3.ogg'
+ if("Gn3")
+ soundfile = 'Gn3.ogg'
+ if("G#3")
+ soundfile = 'G#3.ogg'
+ if("Ab3")
+ soundfile = 'Ab3.ogg'
+ if("An3")
+ soundfile = 'An3.ogg'
+ if("A#3")
+ soundfile = 'A#3.ogg'
+ if("Bb3")
+ soundfile = 'Bb3.ogg'
+ if("Bn3")
+ soundfile = 'Bn3.ogg'
+ if("B#3")
+ soundfile = 'B#3.ogg'
+ if("Cb4")
+ soundfile = 'Cb4.ogg'
+ if("Cn4")
+ soundfile = 'Cn4.ogg'
+ if("C#4")
+ soundfile = 'C#4.ogg'
+ if("Db4")
+ soundfile = 'Db4.ogg'
+ if("Dn4")
+ soundfile = 'Dn4.ogg'
+ if("D#4")
+ soundfile = 'D#4.ogg'
+ if("Eb4")
+ soundfile = 'Eb4.ogg'
+ if("En4")
+ soundfile = 'En4.ogg'
+ if("E#4")
+ soundfile = 'E#4.ogg'
+ if("Fb4")
+ soundfile = 'Fb4.ogg'
+ if("Fn4")
+ soundfile = 'Fn4.ogg'
+ if("F#4")
+ soundfile = 'F#4.ogg'
+ if("Gb4")
+ soundfile = 'Gb4.ogg'
+ if("Gn4")
+ soundfile = 'Gn4.ogg'
+ if("G#4")
+ soundfile = 'G#4.ogg'
+ if("Ab4")
+ soundfile = 'Ab4.ogg'
+ if("An4")
+ soundfile = 'An4.ogg'
+ if("A#4")
+ soundfile = 'A#4.ogg'
+ if("Bb4")
+ soundfile = 'Bb4.ogg'
+ if("Bn4")
+ soundfile = 'Bn4.ogg'
+ if("B#4")
+ soundfile = 'B#4.ogg'
+ if("Cb5")
+ soundfile = 'Cb5.ogg'
+ if("Cn5")
+ soundfile = 'Cn5.ogg'
+ if("C#5")
+ soundfile = 'C#5.ogg'
+ if("Db5")
+ soundfile = 'Db5.ogg'
+ if("Dn5")
+ soundfile = 'Dn5.ogg'
+ if("D#5")
+ soundfile = 'D#5.ogg'
+ if("Eb5")
+ soundfile = 'Eb5.ogg'
+ if("En5")
+ soundfile = 'En5.ogg'
+ if("E#5")
+ soundfile = 'E#5.ogg'
+ if("Fb5")
+ soundfile = 'Fb5.ogg'
+ if("Fn5")
+ soundfile = 'Fn5.ogg'
+ if("F#5")
+ soundfile = 'F#5.ogg'
+ if("Gb5")
+ soundfile = 'Gb5.ogg'
+ if("Gn5")
+ soundfile = 'Gn5.ogg'
+ if("G#5")
+ soundfile = 'G#5.ogg'
+ if("Ab5")
+ soundfile = 'Ab5.ogg'
+ if("An5")
+ soundfile = 'An5.ogg'
+ if("A#5")
+ soundfile = 'A#5.ogg'
+ if("Bb5")
+ soundfile = 'Bb5.ogg'
+ if("Bn5")
+ soundfile = 'Bn5.ogg'
+ if("B#5")
+ soundfile = 'B#5.ogg'
+ if("Cb6")
+ soundfile = 'Cb6.ogg'
+ if("Cn6")
+ soundfile = 'Cn6.ogg'
+ if("C#6")
+ soundfile = 'C#6.ogg'
+ if("Db6")
+ soundfile = 'Db6.ogg'
+ if("Dn6")
+ soundfile = 'Dn6.ogg'
+ if("D#6")
+ soundfile = 'D#6.ogg'
+ if("Eb6")
+ soundfile = 'Eb6.ogg'
+ if("En6")
+ soundfile = 'En6.ogg'
+ if("E#6")
+ soundfile = 'E#6.ogg'
+ if("Fb6")
+ soundfile = 'Fb6.ogg'
+ if("Fn6")
+ soundfile = 'Fn6.ogg'
+ if("F#6")
+ soundfile = 'F#6.ogg'
+ if("Gb6")
+ soundfile = 'Gb6.ogg'
+ if("Gn6")
+ soundfile = 'Gn6.ogg'
+ if("G#6")
+ soundfile = 'G#6.ogg'
+ if("Ab6")
+ soundfile = 'Ab6.ogg'
+ if("An6")
+ soundfile = 'An6.ogg'
+ if("A#6")
+ soundfile = 'A#6.ogg'
+ if("Bb6")
+ soundfile = 'Bb6.ogg'
+ if("Bn6")
+ soundfile = 'Bn6.ogg'
+ if("B#6")
+ soundfile = 'B#6.ogg'
+ if("Cb7")
+ soundfile = 'Cb7.ogg'
+ if("Cn7")
+ soundfile = 'Cn7.ogg'
+ if("C#7")
+ soundfile = 'C#7.ogg'
+ if("Db7")
+ soundfile = 'Db7.ogg'
+ if("Dn7")
+ soundfile = 'Dn7.ogg'
+ if("D#7")
+ soundfile = 'D#7.ogg'
+ if("Eb7")
+ soundfile = 'Eb7.ogg'
+ if("En7")
+ soundfile = 'En7.ogg'
+ if("E#7")
+ soundfile = 'E#7.ogg'
+ if("Fb7")
+ soundfile = 'Fb7.ogg'
+ if("Fn7")
+ soundfile = 'Fn7.ogg'
+ if("F#7")
+ soundfile = 'F#7.ogg'
+ if("Gb7")
+ soundfile = 'Gb7.ogg'
+ if("Gn7")
+ soundfile = 'Gn7.ogg'
+ if("G#7")
+ soundfile = 'G#7.ogg'
+ if("Ab7")
+ soundfile = 'Ab7.ogg'
+ if("An7")
+ soundfile = 'An7.ogg'
+ if("A#7")
+ soundfile = 'A#7.ogg'
+ if("Bb7")
+ soundfile = 'Bb7.ogg'
+ if("Bn7")
+ soundfile = 'Bn7.ogg'
+ if("B#7")
+ soundfile = 'B#7.ogg'
+ if("Cb8")
+ soundfile = 'Cb8.ogg'
+ if("Cn8")
+ soundfile = 'Cn8.ogg'
+ if("C#8")
+ soundfile = 'C#8.ogg'
+ if("Db8")
+ soundfile = 'Db8.ogg'
+ if("Dn8")
+ soundfile = 'Dn8.ogg'
+ if("D#8")
+ soundfile = 'D#8.ogg'
+ if("Eb8")
+ soundfile = 'Eb8.ogg'
+ if("En8")
+ soundfile = 'En8.ogg'
+ if("E#8")
+ soundfile = 'E#8.ogg'
+ if("Fb8")
+ soundfile = 'Fb8.ogg'
+ if("Fn8")
+ soundfile = 'Fn8.ogg'
+ if("F#8")
+ soundfile = 'F#8.ogg'
+ if("Gb8")
+ soundfile = 'Gb8.ogg'
+ if("Gn8")
+ soundfile = 'Gn8.ogg'
+ if("G#8")
+ soundfile = 'G#8.ogg'
+ if("Ab8")
+ soundfile = 'Ab8.ogg'
+ if("An8")
+ soundfile = 'An8.ogg'
+ if("A#8")
+ soundfile = 'A#8.ogg'
+ if("Bb8")
+ soundfile = 'Bb8.ogg'
+ if("Bn8")
+ soundfile = 'Bn8.ogg'
+ if("B#8")
+ soundfile = 'B#8.ogg'
+ if("Cb9")
+ soundfile = 'Cb9.ogg'
+ if("Cn9")
+ soundfile = 'Cn9.ogg'
else
+ return
+
+ for(var/mob/M in range(15, src))
+ M << sound(soundfile)
+
+ playsong()
+ for(var/line in song.lines)
+ for(var/i = 1, i <= length(line), i+=4)//i starts as 1, or beggining of list. Goes up by 4, skipping every fourth character.
+ if(!playing)//If the piano is playing and you don't want it playing, this will stop the proc.
+ return
+ var/currentnote = copytext(line, i, i+3)
playnote(currentnote)
- if(!src.playing)
- return
- src.playing = 0
+ sleep(tempo)
+ playing = 0
attack_hand(var/mob/user as mob)
- if(src.broken)
- return
- else
- usr.machine = src
- //var/dat = "
Piano\n "
- var/dat
- var/calctempo = (10/tempo)*60
- dat += "Tempo : [calctempo] BPM (-/+)"
- dat += "(Start a New Song)
"
- if(src.song)
- var/linecount = 0
- for(var/line in song.lines)
- linecount += 1
- dat += "Bar [linecount]: [line]
"//(Delete bar)
" // TODO: Replace delimeters with spaces, clean up display
- dat += "(Write a new bar)
"
- if(src.song.lines.len > 0 && !(src.playing))
- dat += "(Play song)
"
- if(src.playing)
- dat += "(Stop playing)
"
- dat += "
Bars are a series of notes separated by asterisks (*)
Example: A*B*C*D*E*F*G will play a scale
Chords can be played simply by listing more than one note before a pause : AB*CD*EF*GA
Bars may be up to 30 characters (including pauses)
A song may only contain up to 10 bars
"
- user << browse(dat, "window=piano")
- onclose(user, "piano")
+ usr.machine = src
+ var/dat = "Piano\n "
+ var/calctempo = (10/tempo)*60
+ dat += "Tempo : [calctempo] BPM (-/+)"
+ dat += "(Start a New Song)
"
+ if(song)
+ var/linecount = 0
+ for(var/line in song.lines)
+ linecount += 1
+ dat += "Bar [linecount]: [line]
"//(Delete bar)
" // TODO: Replace delimeters with spaces, clean up display
+ dat += "(Write a new bar)
"
+ if(song.lines.len > 0 && !(playing))
+ dat += "(Play song)
"
+ if(playing)
+ dat += "(Stop playing)
"
+ dat += {"
+
+ Bars are a series of notes separated by asterisks (*) or anything else you want to put there.
+ Just know that every fourth character will act as a stop, delaying the next note by tempo.
+
+ Notes are played by the names of the note, the accidental, then the octave number.
+ Example: An3*Bn3*Cn3*Dn3*En3*Fn3*Gn3 will play a scale.
+ Chords can be played simply by listing more than one note before a pause: AB*CD*EF*GA
+
+ Bars may be up to 30 characters (including pauses).
+ A song may only contain up to 10 bars.
+ "}
+ user << browse(dat, "window=piano")
+ onclose(user, "piano")
Topic(href, href_list)
- if(href_list["lowertempo"])
- tempo += 1
- if(tempo < 1)
- tempo = 1
- if(href_list["raisetempo"])
- tempo -= 1
- if(tempo < 1)
- tempo = 1
- if(href_list["play"])
- if(src.song)
- src.playing = 1
- spawn() playsong()
- if(href_list["newsong"])
- src.song = new /datum/song
- if(href_list["newbar"])
- var/newbar = input("Enter your bar: ") as text|null
- if(!newbar)
- return
- if(src.song.lines.len >= 10)
- return
- if(lentext(newbar) > 30)
- newbar = copytext(newbar, 1, 30)
- src.song.lines.Add(newbar)
- if(href_list["deletebar"])
- var/num = href_list["deletebar"]
- num -= 1
- var/line = src.song.lines[num]
- usr << "Line found is [line]"
- src.song.lines.Remove(line)
- if(href_list["stop"])
- src.playing = 0
- src.add_fingerprint(usr)
- src.updateUsrDialog()
- return
-
- attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W, /obj/item/weapon/fireaxe) && W.wielded == 1)
- playsound(src.loc, 'woodhit.ogg', 50, 0)
- for(var/mob/O in viewers(user, null))
- O.show_message(text("\red [] forcefully slams the [] with the Fire axe!", user, src), 1)
- if(!src.broken) //we don't want an already damaged piano to be more damageable
- src.hitstaken++
- if(prob(src.hitstaken*8))
- src.broken = 1
- src.icon_state = "pianobroken"
- playsound(src.loc, 'pianocrash.ogg', 50, 0)
+ //You need some safety checks here. Where is the person located, etc.
+ switch(href_list["choice"])
+ if("lowertempo")
+ tempo += 1
+ if(tempo < 1)
+ tempo = 1
+ if("raisetempo")
+ tempo -= 1
+ if(tempo < 1)
+ tempo = 1
+ if("play")
+ if(song)
+ playing = 1
+ spawn() playsong()
+ if("newsong")
+ song = new /datum/song
+ if("newbar")
+ var/newbar = input("Enter your bar: ") as text|null
+ if(!newbar)
return
- return
+ if(song.lines.len >= 10)
+ return
+ if(lentext(newbar) > 30)
+ newbar = copytext(newbar, 1, 30)
+ song.lines.Add(newbar)
+ if("deletebar")
+ var/num = href_list["deletebar"]
+ num -= 1
+ var/line = song.lines[num]
+ usr << "Line found is [line]"
+ song.lines.Remove(line)
+ if("stop")
+ playing = 0
+ add_fingerprint(usr)
+ updateUsrDialog()
return
-
-/* src.playing = 1
- var/datum/song/S = new /datum/song
- S.lines.Add("A;B;C;D;E;F;G;A;A;B;B;A;G;A;F;F;A;*;*;*;*;B;C;C;F;G")
- S.lines.Add("A;B;C;D;E;F;G;A;A;B;B;A;G;A;F;F;A;*;*;*;*;B;C;C;F;G")
- src.song = S*/
\ No newline at end of file
+/* playing = 1
+ var/datum/song/S = new /datum/song
+ S.lines.Add("A;B;C;D;E;F;G;A;A;B;B;A;G;A;F;F;A;*;*;*;*;B;C;C;F;G")
+ S.lines.Add("A;B;C;D;E;F;G;A;A;B;B;A;G;A;F;F;A;*;*;*;*;B;C;C;F;G")
+ song = S*/
\ No newline at end of file
diff --git a/code/game/research/rdconsole.dm b/code/game/research/rdconsole.dm
index e5814b3e030..73a8159a680 100644
--- a/code/game/research/rdconsole.dm
+++ b/code/game/research/rdconsole.dm
@@ -511,6 +511,12 @@ won't update every console in existence) but it's more of a hassle to do. Also,
attack_hand(mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
+
+ if(ishuman(user))
+ if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
+ call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit)
+ return
+
user.machine = src
var/dat = ""
files.RefreshResearch()
diff --git a/code/game/research/server.dm b/code/game/research/server.dm
index d169720e314..031d7f524b6 100644
--- a/code/game/research/server.dm
+++ b/code/game/research/server.dm
@@ -115,6 +115,16 @@
del(src)
return 1
+ attack_hand(mob/user as mob)
+ if (disabled)
+ return
+ if (shocked)
+ shock(user,50)
+ if(ishuman(user))
+ if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining)
+ call(/obj/item/clothing/gloves/space_ninja/proc/drain)("RESEARCH",src,user:wear_suit)
+ return
+
/obj/machinery/r_n_d/server/centcom
name = "Centcom Central R&D Database"
server_id = -1
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm
index dc68f0c14f7..e1afeb644df 100644
--- a/code/modules/admin/verbs/playsound.dm
+++ b/code/modules/admin/verbs/playsound.dm
@@ -8,6 +8,7 @@
return
var/sound/uploaded_sound = sound(S,0,1,0)
+ uploaded_sound.channel = 777
uploaded_sound.priority = 255
uploaded_sound.wait = 1
diff --git a/sound/piano/A#1.ogg b/sound/piano/A#1.ogg
new file mode 100644
index 00000000000..b40cc723334
Binary files /dev/null and b/sound/piano/A#1.ogg differ
diff --git a/sound/piano/A#2.ogg b/sound/piano/A#2.ogg
new file mode 100644
index 00000000000..2b0677d44ae
Binary files /dev/null and b/sound/piano/A#2.ogg differ
diff --git a/sound/piano/A#3.ogg b/sound/piano/A#3.ogg
new file mode 100644
index 00000000000..e8fc263d8f4
Binary files /dev/null and b/sound/piano/A#3.ogg differ
diff --git a/sound/piano/A#4.ogg b/sound/piano/A#4.ogg
new file mode 100644
index 00000000000..8ba7c40d331
Binary files /dev/null and b/sound/piano/A#4.ogg differ
diff --git a/sound/piano/A#5.ogg b/sound/piano/A#5.ogg
new file mode 100644
index 00000000000..65c14d3320f
Binary files /dev/null and b/sound/piano/A#5.ogg differ
diff --git a/sound/piano/A#6.ogg b/sound/piano/A#6.ogg
new file mode 100644
index 00000000000..88317f7d55c
Binary files /dev/null and b/sound/piano/A#6.ogg differ
diff --git a/sound/piano/A#7.ogg b/sound/piano/A#7.ogg
new file mode 100644
index 00000000000..e7354522fee
Binary files /dev/null and b/sound/piano/A#7.ogg differ
diff --git a/sound/piano/A#8.ogg b/sound/piano/A#8.ogg
new file mode 100644
index 00000000000..7d8014c059a
Binary files /dev/null and b/sound/piano/A#8.ogg differ
diff --git a/sound/piano/Ab1.ogg b/sound/piano/Ab1.ogg
new file mode 100644
index 00000000000..0c5ae362163
Binary files /dev/null and b/sound/piano/Ab1.ogg differ
diff --git a/sound/piano/Ab2.ogg b/sound/piano/Ab2.ogg
new file mode 100644
index 00000000000..4dabf2cc82c
Binary files /dev/null and b/sound/piano/Ab2.ogg differ
diff --git a/sound/piano/Ab3.ogg b/sound/piano/Ab3.ogg
new file mode 100644
index 00000000000..beb96005de0
Binary files /dev/null and b/sound/piano/Ab3.ogg differ
diff --git a/sound/piano/Ab4.ogg b/sound/piano/Ab4.ogg
new file mode 100644
index 00000000000..bfcf3018777
Binary files /dev/null and b/sound/piano/Ab4.ogg differ
diff --git a/sound/piano/Ab5.ogg b/sound/piano/Ab5.ogg
new file mode 100644
index 00000000000..b95acaf5a02
Binary files /dev/null and b/sound/piano/Ab5.ogg differ
diff --git a/sound/piano/Ab6.ogg b/sound/piano/Ab6.ogg
new file mode 100644
index 00000000000..501f51b3e13
Binary files /dev/null and b/sound/piano/Ab6.ogg differ
diff --git a/sound/piano/Ab7.ogg b/sound/piano/Ab7.ogg
new file mode 100644
index 00000000000..b96f4e0766f
Binary files /dev/null and b/sound/piano/Ab7.ogg differ
diff --git a/sound/piano/Ab8.ogg b/sound/piano/Ab8.ogg
new file mode 100644
index 00000000000..c4bd37195bd
Binary files /dev/null and b/sound/piano/Ab8.ogg differ
diff --git a/sound/piano/An1.ogg b/sound/piano/An1.ogg
new file mode 100644
index 00000000000..5698578e796
Binary files /dev/null and b/sound/piano/An1.ogg differ
diff --git a/sound/piano/An2.ogg b/sound/piano/An2.ogg
new file mode 100644
index 00000000000..aaff9b8e657
Binary files /dev/null and b/sound/piano/An2.ogg differ
diff --git a/sound/piano/An3.ogg b/sound/piano/An3.ogg
new file mode 100644
index 00000000000..16fe54be836
Binary files /dev/null and b/sound/piano/An3.ogg differ
diff --git a/sound/piano/An4.ogg b/sound/piano/An4.ogg
new file mode 100644
index 00000000000..52cfc701a0e
Binary files /dev/null and b/sound/piano/An4.ogg differ
diff --git a/sound/piano/An5.ogg b/sound/piano/An5.ogg
new file mode 100644
index 00000000000..ba4ad8ee61f
Binary files /dev/null and b/sound/piano/An5.ogg differ
diff --git a/sound/piano/An6.ogg b/sound/piano/An6.ogg
new file mode 100644
index 00000000000..49be4e31a88
Binary files /dev/null and b/sound/piano/An6.ogg differ
diff --git a/sound/piano/An7.ogg b/sound/piano/An7.ogg
new file mode 100644
index 00000000000..da5f477db78
Binary files /dev/null and b/sound/piano/An7.ogg differ
diff --git a/sound/piano/An8.ogg b/sound/piano/An8.ogg
new file mode 100644
index 00000000000..32e5cb81e74
Binary files /dev/null and b/sound/piano/An8.ogg differ
diff --git a/sound/piano/B#1.ogg b/sound/piano/B#1.ogg
new file mode 100644
index 00000000000..b82c6cff8a4
Binary files /dev/null and b/sound/piano/B#1.ogg differ
diff --git a/sound/piano/B#2.ogg b/sound/piano/B#2.ogg
new file mode 100644
index 00000000000..e2183806292
Binary files /dev/null and b/sound/piano/B#2.ogg differ
diff --git a/sound/piano/B#3.ogg b/sound/piano/B#3.ogg
new file mode 100644
index 00000000000..b4dd559a24e
Binary files /dev/null and b/sound/piano/B#3.ogg differ
diff --git a/sound/piano/B#4.ogg b/sound/piano/B#4.ogg
new file mode 100644
index 00000000000..578c45e452e
Binary files /dev/null and b/sound/piano/B#4.ogg differ
diff --git a/sound/piano/B#5.ogg b/sound/piano/B#5.ogg
new file mode 100644
index 00000000000..6dfd56115ff
Binary files /dev/null and b/sound/piano/B#5.ogg differ
diff --git a/sound/piano/B#6.ogg b/sound/piano/B#6.ogg
new file mode 100644
index 00000000000..32996328c8b
Binary files /dev/null and b/sound/piano/B#6.ogg differ
diff --git a/sound/piano/B#7.ogg b/sound/piano/B#7.ogg
new file mode 100644
index 00000000000..89b771aa375
Binary files /dev/null and b/sound/piano/B#7.ogg differ
diff --git a/sound/piano/B#8.ogg b/sound/piano/B#8.ogg
new file mode 100644
index 00000000000..cca99040dec
Binary files /dev/null and b/sound/piano/B#8.ogg differ
diff --git a/sound/piano/Bb1.ogg b/sound/piano/Bb1.ogg
new file mode 100644
index 00000000000..c872abe1a97
Binary files /dev/null and b/sound/piano/Bb1.ogg differ
diff --git a/sound/piano/Bb2.ogg b/sound/piano/Bb2.ogg
new file mode 100644
index 00000000000..acd54ab3882
Binary files /dev/null and b/sound/piano/Bb2.ogg differ
diff --git a/sound/piano/Bb3.ogg b/sound/piano/Bb3.ogg
new file mode 100644
index 00000000000..33bea9f0797
Binary files /dev/null and b/sound/piano/Bb3.ogg differ
diff --git a/sound/piano/Bb4.ogg b/sound/piano/Bb4.ogg
new file mode 100644
index 00000000000..736fa1fc8d2
Binary files /dev/null and b/sound/piano/Bb4.ogg differ
diff --git a/sound/piano/Bb5.ogg b/sound/piano/Bb5.ogg
new file mode 100644
index 00000000000..38bddcf7610
Binary files /dev/null and b/sound/piano/Bb5.ogg differ
diff --git a/sound/piano/Bb6.ogg b/sound/piano/Bb6.ogg
new file mode 100644
index 00000000000..e7a04257457
Binary files /dev/null and b/sound/piano/Bb6.ogg differ
diff --git a/sound/piano/Bb7.ogg b/sound/piano/Bb7.ogg
new file mode 100644
index 00000000000..89441baba6c
Binary files /dev/null and b/sound/piano/Bb7.ogg differ
diff --git a/sound/piano/Bb8.ogg b/sound/piano/Bb8.ogg
new file mode 100644
index 00000000000..49dce93253c
Binary files /dev/null and b/sound/piano/Bb8.ogg differ
diff --git a/sound/piano/Bn1.ogg b/sound/piano/Bn1.ogg
new file mode 100644
index 00000000000..2ddf3f59b85
Binary files /dev/null and b/sound/piano/Bn1.ogg differ
diff --git a/sound/piano/Bn2.ogg b/sound/piano/Bn2.ogg
new file mode 100644
index 00000000000..92b49a24ca2
Binary files /dev/null and b/sound/piano/Bn2.ogg differ
diff --git a/sound/piano/Bn3.ogg b/sound/piano/Bn3.ogg
new file mode 100644
index 00000000000..20aa8ca434a
Binary files /dev/null and b/sound/piano/Bn3.ogg differ
diff --git a/sound/piano/Bn4.ogg b/sound/piano/Bn4.ogg
new file mode 100644
index 00000000000..b2ecc85255a
Binary files /dev/null and b/sound/piano/Bn4.ogg differ
diff --git a/sound/piano/Bn5.ogg b/sound/piano/Bn5.ogg
new file mode 100644
index 00000000000..e03af44292e
Binary files /dev/null and b/sound/piano/Bn5.ogg differ
diff --git a/sound/piano/Bn6.ogg b/sound/piano/Bn6.ogg
new file mode 100644
index 00000000000..1acf0d94d03
Binary files /dev/null and b/sound/piano/Bn6.ogg differ
diff --git a/sound/piano/Bn7.ogg b/sound/piano/Bn7.ogg
new file mode 100644
index 00000000000..b68372b4ab7
Binary files /dev/null and b/sound/piano/Bn7.ogg differ
diff --git a/sound/piano/Bn8.ogg b/sound/piano/Bn8.ogg
new file mode 100644
index 00000000000..5db915a607b
Binary files /dev/null and b/sound/piano/Bn8.ogg differ
diff --git a/sound/piano/C#1.ogg b/sound/piano/C#1.ogg
new file mode 100644
index 00000000000..dc3c859caee
Binary files /dev/null and b/sound/piano/C#1.ogg differ
diff --git a/sound/piano/C#2.ogg b/sound/piano/C#2.ogg
new file mode 100644
index 00000000000..5a36e244a76
Binary files /dev/null and b/sound/piano/C#2.ogg differ
diff --git a/sound/piano/C#3.ogg b/sound/piano/C#3.ogg
new file mode 100644
index 00000000000..af3e49f21e4
Binary files /dev/null and b/sound/piano/C#3.ogg differ
diff --git a/sound/piano/C#4.ogg b/sound/piano/C#4.ogg
new file mode 100644
index 00000000000..8b18a4ce418
Binary files /dev/null and b/sound/piano/C#4.ogg differ
diff --git a/sound/piano/C#5.ogg b/sound/piano/C#5.ogg
new file mode 100644
index 00000000000..690bd2763e9
Binary files /dev/null and b/sound/piano/C#5.ogg differ
diff --git a/sound/piano/C#6.ogg b/sound/piano/C#6.ogg
new file mode 100644
index 00000000000..3a27950bd3f
Binary files /dev/null and b/sound/piano/C#6.ogg differ
diff --git a/sound/piano/C#7.ogg b/sound/piano/C#7.ogg
new file mode 100644
index 00000000000..9a7bc071ead
Binary files /dev/null and b/sound/piano/C#7.ogg differ
diff --git a/sound/piano/C#8.ogg b/sound/piano/C#8.ogg
new file mode 100644
index 00000000000..9adc2dbbbc5
Binary files /dev/null and b/sound/piano/C#8.ogg differ
diff --git a/sound/piano/Cb2.ogg b/sound/piano/Cb2.ogg
new file mode 100644
index 00000000000..7c36759c95a
Binary files /dev/null and b/sound/piano/Cb2.ogg differ
diff --git a/sound/piano/Cb3.ogg b/sound/piano/Cb3.ogg
new file mode 100644
index 00000000000..b8569638545
Binary files /dev/null and b/sound/piano/Cb3.ogg differ
diff --git a/sound/piano/Cb4.ogg b/sound/piano/Cb4.ogg
new file mode 100644
index 00000000000..fb693c0cadb
Binary files /dev/null and b/sound/piano/Cb4.ogg differ
diff --git a/sound/piano/Cb5.ogg b/sound/piano/Cb5.ogg
new file mode 100644
index 00000000000..b114181e3fc
Binary files /dev/null and b/sound/piano/Cb5.ogg differ
diff --git a/sound/piano/Cb6.ogg b/sound/piano/Cb6.ogg
new file mode 100644
index 00000000000..42470f9f3a3
Binary files /dev/null and b/sound/piano/Cb6.ogg differ
diff --git a/sound/piano/Cb7.ogg b/sound/piano/Cb7.ogg
new file mode 100644
index 00000000000..adeb34cacdf
Binary files /dev/null and b/sound/piano/Cb7.ogg differ
diff --git a/sound/piano/Cb8.ogg b/sound/piano/Cb8.ogg
new file mode 100644
index 00000000000..1f2cbb94dd2
Binary files /dev/null and b/sound/piano/Cb8.ogg differ
diff --git a/sound/piano/Cb9.ogg b/sound/piano/Cb9.ogg
new file mode 100644
index 00000000000..25c0d646c3b
Binary files /dev/null and b/sound/piano/Cb9.ogg differ
diff --git a/sound/piano/Cn1.ogg b/sound/piano/Cn1.ogg
new file mode 100644
index 00000000000..e05b36d3252
Binary files /dev/null and b/sound/piano/Cn1.ogg differ
diff --git a/sound/piano/Cn2.ogg b/sound/piano/Cn2.ogg
new file mode 100644
index 00000000000..cc96f265705
Binary files /dev/null and b/sound/piano/Cn2.ogg differ
diff --git a/sound/piano/Cn3.ogg b/sound/piano/Cn3.ogg
new file mode 100644
index 00000000000..6d2f2069278
Binary files /dev/null and b/sound/piano/Cn3.ogg differ
diff --git a/sound/piano/Cn4.ogg b/sound/piano/Cn4.ogg
new file mode 100644
index 00000000000..d0c0f4995ed
Binary files /dev/null and b/sound/piano/Cn4.ogg differ
diff --git a/sound/piano/Cn5.ogg b/sound/piano/Cn5.ogg
new file mode 100644
index 00000000000..1d95dfa0992
Binary files /dev/null and b/sound/piano/Cn5.ogg differ
diff --git a/sound/piano/Cn6.ogg b/sound/piano/Cn6.ogg
new file mode 100644
index 00000000000..f1e847d32f5
Binary files /dev/null and b/sound/piano/Cn6.ogg differ
diff --git a/sound/piano/Cn7.ogg b/sound/piano/Cn7.ogg
new file mode 100644
index 00000000000..85cb1dd0fe9
Binary files /dev/null and b/sound/piano/Cn7.ogg differ
diff --git a/sound/piano/Cn8.ogg b/sound/piano/Cn8.ogg
new file mode 100644
index 00000000000..f081d91d8bb
Binary files /dev/null and b/sound/piano/Cn8.ogg differ
diff --git a/sound/piano/Cn9.ogg b/sound/piano/Cn9.ogg
new file mode 100644
index 00000000000..06172ca6f10
Binary files /dev/null and b/sound/piano/Cn9.ogg differ
diff --git a/sound/piano/D#1.ogg b/sound/piano/D#1.ogg
new file mode 100644
index 00000000000..bd58c7dd75a
Binary files /dev/null and b/sound/piano/D#1.ogg differ
diff --git a/sound/piano/D#2.ogg b/sound/piano/D#2.ogg
new file mode 100644
index 00000000000..fc01076810a
Binary files /dev/null and b/sound/piano/D#2.ogg differ
diff --git a/sound/piano/D#3.ogg b/sound/piano/D#3.ogg
new file mode 100644
index 00000000000..e437f444663
Binary files /dev/null and b/sound/piano/D#3.ogg differ
diff --git a/sound/piano/D#4.ogg b/sound/piano/D#4.ogg
new file mode 100644
index 00000000000..0804aa03de0
Binary files /dev/null and b/sound/piano/D#4.ogg differ
diff --git a/sound/piano/D#5.ogg b/sound/piano/D#5.ogg
new file mode 100644
index 00000000000..40889dbae51
Binary files /dev/null and b/sound/piano/D#5.ogg differ
diff --git a/sound/piano/D#6.ogg b/sound/piano/D#6.ogg
new file mode 100644
index 00000000000..616481d2f90
Binary files /dev/null and b/sound/piano/D#6.ogg differ
diff --git a/sound/piano/D#7.ogg b/sound/piano/D#7.ogg
new file mode 100644
index 00000000000..5c191fb7f69
Binary files /dev/null and b/sound/piano/D#7.ogg differ
diff --git a/sound/piano/D#8.ogg b/sound/piano/D#8.ogg
new file mode 100644
index 00000000000..5955ed7f8d0
Binary files /dev/null and b/sound/piano/D#8.ogg differ
diff --git a/sound/piano/Db1.ogg b/sound/piano/Db1.ogg
new file mode 100644
index 00000000000..a33554e4764
Binary files /dev/null and b/sound/piano/Db1.ogg differ
diff --git a/sound/piano/Db2.ogg b/sound/piano/Db2.ogg
new file mode 100644
index 00000000000..dd45c2f11da
Binary files /dev/null and b/sound/piano/Db2.ogg differ
diff --git a/sound/piano/Db3.ogg b/sound/piano/Db3.ogg
new file mode 100644
index 00000000000..ebfa23bbc34
Binary files /dev/null and b/sound/piano/Db3.ogg differ
diff --git a/sound/piano/Db4.ogg b/sound/piano/Db4.ogg
new file mode 100644
index 00000000000..52486484ebf
Binary files /dev/null and b/sound/piano/Db4.ogg differ
diff --git a/sound/piano/Db5.ogg b/sound/piano/Db5.ogg
new file mode 100644
index 00000000000..8250bbb7cb6
Binary files /dev/null and b/sound/piano/Db5.ogg differ
diff --git a/sound/piano/Db6.ogg b/sound/piano/Db6.ogg
new file mode 100644
index 00000000000..8ec394da17c
Binary files /dev/null and b/sound/piano/Db6.ogg differ
diff --git a/sound/piano/Db7.ogg b/sound/piano/Db7.ogg
new file mode 100644
index 00000000000..9a6c81dc343
Binary files /dev/null and b/sound/piano/Db7.ogg differ
diff --git a/sound/piano/Db8.ogg b/sound/piano/Db8.ogg
new file mode 100644
index 00000000000..2790f603907
Binary files /dev/null and b/sound/piano/Db8.ogg differ
diff --git a/sound/piano/Dn1.ogg b/sound/piano/Dn1.ogg
new file mode 100644
index 00000000000..89ac14cc143
Binary files /dev/null and b/sound/piano/Dn1.ogg differ
diff --git a/sound/piano/Dn2.ogg b/sound/piano/Dn2.ogg
new file mode 100644
index 00000000000..bb5f18fbf75
Binary files /dev/null and b/sound/piano/Dn2.ogg differ
diff --git a/sound/piano/Dn3.ogg b/sound/piano/Dn3.ogg
new file mode 100644
index 00000000000..6a54b775499
Binary files /dev/null and b/sound/piano/Dn3.ogg differ
diff --git a/sound/piano/Dn4.ogg b/sound/piano/Dn4.ogg
new file mode 100644
index 00000000000..8f930b8b50d
Binary files /dev/null and b/sound/piano/Dn4.ogg differ
diff --git a/sound/piano/Dn5.ogg b/sound/piano/Dn5.ogg
new file mode 100644
index 00000000000..981d37e9101
Binary files /dev/null and b/sound/piano/Dn5.ogg differ
diff --git a/sound/piano/Dn6.ogg b/sound/piano/Dn6.ogg
new file mode 100644
index 00000000000..112f101bb2e
Binary files /dev/null and b/sound/piano/Dn6.ogg differ
diff --git a/sound/piano/Dn7.ogg b/sound/piano/Dn7.ogg
new file mode 100644
index 00000000000..ff2724463cc
Binary files /dev/null and b/sound/piano/Dn7.ogg differ
diff --git a/sound/piano/Dn8.ogg b/sound/piano/Dn8.ogg
new file mode 100644
index 00000000000..5e2523f1237
Binary files /dev/null and b/sound/piano/Dn8.ogg differ
diff --git a/sound/piano/E#1.ogg b/sound/piano/E#1.ogg
new file mode 100644
index 00000000000..c192032dc0f
Binary files /dev/null and b/sound/piano/E#1.ogg differ
diff --git a/sound/piano/E#2.ogg b/sound/piano/E#2.ogg
new file mode 100644
index 00000000000..da09b649798
Binary files /dev/null and b/sound/piano/E#2.ogg differ
diff --git a/sound/piano/E#3.ogg b/sound/piano/E#3.ogg
new file mode 100644
index 00000000000..e7a2f935350
Binary files /dev/null and b/sound/piano/E#3.ogg differ
diff --git a/sound/piano/E#4.ogg b/sound/piano/E#4.ogg
new file mode 100644
index 00000000000..b3b14b7266d
Binary files /dev/null and b/sound/piano/E#4.ogg differ
diff --git a/sound/piano/E#5.ogg b/sound/piano/E#5.ogg
new file mode 100644
index 00000000000..08bc2cf5a80
Binary files /dev/null and b/sound/piano/E#5.ogg differ
diff --git a/sound/piano/E#6.ogg b/sound/piano/E#6.ogg
new file mode 100644
index 00000000000..6060576f36e
Binary files /dev/null and b/sound/piano/E#6.ogg differ
diff --git a/sound/piano/E#7.ogg b/sound/piano/E#7.ogg
new file mode 100644
index 00000000000..77a81ed5702
Binary files /dev/null and b/sound/piano/E#7.ogg differ
diff --git a/sound/piano/E#8.ogg b/sound/piano/E#8.ogg
new file mode 100644
index 00000000000..5502fedbdac
Binary files /dev/null and b/sound/piano/E#8.ogg differ
diff --git a/sound/piano/Eb1.ogg b/sound/piano/Eb1.ogg
new file mode 100644
index 00000000000..8923e11fd99
Binary files /dev/null and b/sound/piano/Eb1.ogg differ
diff --git a/sound/piano/Eb2.ogg b/sound/piano/Eb2.ogg
new file mode 100644
index 00000000000..b61faa17374
Binary files /dev/null and b/sound/piano/Eb2.ogg differ
diff --git a/sound/piano/Eb3.ogg b/sound/piano/Eb3.ogg
new file mode 100644
index 00000000000..bf80c6eeeb9
Binary files /dev/null and b/sound/piano/Eb3.ogg differ
diff --git a/sound/piano/Eb4.ogg b/sound/piano/Eb4.ogg
new file mode 100644
index 00000000000..fa991d11c52
Binary files /dev/null and b/sound/piano/Eb4.ogg differ
diff --git a/sound/piano/Eb5.ogg b/sound/piano/Eb5.ogg
new file mode 100644
index 00000000000..e63e0143a58
Binary files /dev/null and b/sound/piano/Eb5.ogg differ
diff --git a/sound/piano/Eb6.ogg b/sound/piano/Eb6.ogg
new file mode 100644
index 00000000000..e3f6ccb4c46
Binary files /dev/null and b/sound/piano/Eb6.ogg differ
diff --git a/sound/piano/Eb7.ogg b/sound/piano/Eb7.ogg
new file mode 100644
index 00000000000..a7dc94edbd0
Binary files /dev/null and b/sound/piano/Eb7.ogg differ
diff --git a/sound/piano/Eb8.ogg b/sound/piano/Eb8.ogg
new file mode 100644
index 00000000000..f6a7f466577
Binary files /dev/null and b/sound/piano/Eb8.ogg differ
diff --git a/sound/piano/En1.ogg b/sound/piano/En1.ogg
new file mode 100644
index 00000000000..fbcb29c2de9
Binary files /dev/null and b/sound/piano/En1.ogg differ
diff --git a/sound/piano/En2.ogg b/sound/piano/En2.ogg
new file mode 100644
index 00000000000..b6f4f1a5e81
Binary files /dev/null and b/sound/piano/En2.ogg differ
diff --git a/sound/piano/En3.ogg b/sound/piano/En3.ogg
new file mode 100644
index 00000000000..5f6ade5f1b4
Binary files /dev/null and b/sound/piano/En3.ogg differ
diff --git a/sound/piano/En4.ogg b/sound/piano/En4.ogg
new file mode 100644
index 00000000000..0f567ffb987
Binary files /dev/null and b/sound/piano/En4.ogg differ
diff --git a/sound/piano/En5.ogg b/sound/piano/En5.ogg
new file mode 100644
index 00000000000..05719f2a2d4
Binary files /dev/null and b/sound/piano/En5.ogg differ
diff --git a/sound/piano/En6.ogg b/sound/piano/En6.ogg
new file mode 100644
index 00000000000..b1295b67ee5
Binary files /dev/null and b/sound/piano/En6.ogg differ
diff --git a/sound/piano/En7.ogg b/sound/piano/En7.ogg
new file mode 100644
index 00000000000..0d97b93fbce
Binary files /dev/null and b/sound/piano/En7.ogg differ
diff --git a/sound/piano/En8.ogg b/sound/piano/En8.ogg
new file mode 100644
index 00000000000..f0ea5f1ec53
Binary files /dev/null and b/sound/piano/En8.ogg differ
diff --git a/sound/piano/F#1.ogg b/sound/piano/F#1.ogg
new file mode 100644
index 00000000000..ad9e0a563ce
Binary files /dev/null and b/sound/piano/F#1.ogg differ
diff --git a/sound/piano/F#2.ogg b/sound/piano/F#2.ogg
new file mode 100644
index 00000000000..b1e86bfeaa6
Binary files /dev/null and b/sound/piano/F#2.ogg differ
diff --git a/sound/piano/F#3.ogg b/sound/piano/F#3.ogg
new file mode 100644
index 00000000000..53b56c5017d
Binary files /dev/null and b/sound/piano/F#3.ogg differ
diff --git a/sound/piano/F#4.ogg b/sound/piano/F#4.ogg
new file mode 100644
index 00000000000..e9d71303a1a
Binary files /dev/null and b/sound/piano/F#4.ogg differ
diff --git a/sound/piano/F#5.ogg b/sound/piano/F#5.ogg
new file mode 100644
index 00000000000..c4cc3165ab1
Binary files /dev/null and b/sound/piano/F#5.ogg differ
diff --git a/sound/piano/F#6.ogg b/sound/piano/F#6.ogg
new file mode 100644
index 00000000000..09420951163
Binary files /dev/null and b/sound/piano/F#6.ogg differ
diff --git a/sound/piano/F#7.ogg b/sound/piano/F#7.ogg
new file mode 100644
index 00000000000..c37dc8fb37a
Binary files /dev/null and b/sound/piano/F#7.ogg differ
diff --git a/sound/piano/F#8.ogg b/sound/piano/F#8.ogg
new file mode 100644
index 00000000000..0241e9beaba
Binary files /dev/null and b/sound/piano/F#8.ogg differ
diff --git a/sound/piano/Fb1.ogg b/sound/piano/Fb1.ogg
new file mode 100644
index 00000000000..fbcb29c2de9
Binary files /dev/null and b/sound/piano/Fb1.ogg differ
diff --git a/sound/piano/Fb2.ogg b/sound/piano/Fb2.ogg
new file mode 100644
index 00000000000..4cece2d9cd0
Binary files /dev/null and b/sound/piano/Fb2.ogg differ
diff --git a/sound/piano/Fb3.ogg b/sound/piano/Fb3.ogg
new file mode 100644
index 00000000000..3675271a157
Binary files /dev/null and b/sound/piano/Fb3.ogg differ
diff --git a/sound/piano/Fb4.ogg b/sound/piano/Fb4.ogg
new file mode 100644
index 00000000000..26087702274
Binary files /dev/null and b/sound/piano/Fb4.ogg differ
diff --git a/sound/piano/Fb5.ogg b/sound/piano/Fb5.ogg
new file mode 100644
index 00000000000..f8016a6d247
Binary files /dev/null and b/sound/piano/Fb5.ogg differ
diff --git a/sound/piano/Fb6.ogg b/sound/piano/Fb6.ogg
new file mode 100644
index 00000000000..397714bdaae
Binary files /dev/null and b/sound/piano/Fb6.ogg differ
diff --git a/sound/piano/Fb7.ogg b/sound/piano/Fb7.ogg
new file mode 100644
index 00000000000..d9f630f11d8
Binary files /dev/null and b/sound/piano/Fb7.ogg differ
diff --git a/sound/piano/Fb8.ogg b/sound/piano/Fb8.ogg
new file mode 100644
index 00000000000..28ae958d82d
Binary files /dev/null and b/sound/piano/Fb8.ogg differ
diff --git a/sound/piano/Fn1.ogg b/sound/piano/Fn1.ogg
new file mode 100644
index 00000000000..9d10f8ccf63
Binary files /dev/null and b/sound/piano/Fn1.ogg differ
diff --git a/sound/piano/Fn2.ogg b/sound/piano/Fn2.ogg
new file mode 100644
index 00000000000..24cff105e64
Binary files /dev/null and b/sound/piano/Fn2.ogg differ
diff --git a/sound/piano/Fn3.ogg b/sound/piano/Fn3.ogg
new file mode 100644
index 00000000000..313c54b59ae
Binary files /dev/null and b/sound/piano/Fn3.ogg differ
diff --git a/sound/piano/Fn4.ogg b/sound/piano/Fn4.ogg
new file mode 100644
index 00000000000..3331d67fbe9
Binary files /dev/null and b/sound/piano/Fn4.ogg differ
diff --git a/sound/piano/Fn5.ogg b/sound/piano/Fn5.ogg
new file mode 100644
index 00000000000..72941715953
Binary files /dev/null and b/sound/piano/Fn5.ogg differ
diff --git a/sound/piano/Fn6.ogg b/sound/piano/Fn6.ogg
new file mode 100644
index 00000000000..8218928c85e
Binary files /dev/null and b/sound/piano/Fn6.ogg differ
diff --git a/sound/piano/Fn7.ogg b/sound/piano/Fn7.ogg
new file mode 100644
index 00000000000..b459e82acdd
Binary files /dev/null and b/sound/piano/Fn7.ogg differ
diff --git a/sound/piano/Fn8.ogg b/sound/piano/Fn8.ogg
new file mode 100644
index 00000000000..be144990590
Binary files /dev/null and b/sound/piano/Fn8.ogg differ
diff --git a/sound/piano/G#1.ogg b/sound/piano/G#1.ogg
new file mode 100644
index 00000000000..3ef68c0d87f
Binary files /dev/null and b/sound/piano/G#1.ogg differ
diff --git a/sound/piano/G#2.ogg b/sound/piano/G#2.ogg
new file mode 100644
index 00000000000..4d921693655
Binary files /dev/null and b/sound/piano/G#2.ogg differ
diff --git a/sound/piano/G#3.ogg b/sound/piano/G#3.ogg
new file mode 100644
index 00000000000..21a03c7805c
Binary files /dev/null and b/sound/piano/G#3.ogg differ
diff --git a/sound/piano/G#4.ogg b/sound/piano/G#4.ogg
new file mode 100644
index 00000000000..070ad2b4532
Binary files /dev/null and b/sound/piano/G#4.ogg differ
diff --git a/sound/piano/G#5.ogg b/sound/piano/G#5.ogg
new file mode 100644
index 00000000000..233256500fb
Binary files /dev/null and b/sound/piano/G#5.ogg differ
diff --git a/sound/piano/G#6.ogg b/sound/piano/G#6.ogg
new file mode 100644
index 00000000000..3c387fcfab0
Binary files /dev/null and b/sound/piano/G#6.ogg differ
diff --git a/sound/piano/G#7.ogg b/sound/piano/G#7.ogg
new file mode 100644
index 00000000000..4ba6c8b6581
Binary files /dev/null and b/sound/piano/G#7.ogg differ
diff --git a/sound/piano/G#8.ogg b/sound/piano/G#8.ogg
new file mode 100644
index 00000000000..b847ab1c86b
Binary files /dev/null and b/sound/piano/G#8.ogg differ
diff --git a/sound/piano/Gb1.ogg b/sound/piano/Gb1.ogg
new file mode 100644
index 00000000000..d53e3ea9d8f
Binary files /dev/null and b/sound/piano/Gb1.ogg differ
diff --git a/sound/piano/Gb2.ogg b/sound/piano/Gb2.ogg
new file mode 100644
index 00000000000..0ceea3ecc85
Binary files /dev/null and b/sound/piano/Gb2.ogg differ
diff --git a/sound/piano/Gb3.ogg b/sound/piano/Gb3.ogg
new file mode 100644
index 00000000000..53b56c5017d
Binary files /dev/null and b/sound/piano/Gb3.ogg differ
diff --git a/sound/piano/Gb4.ogg b/sound/piano/Gb4.ogg
new file mode 100644
index 00000000000..c982d7beaf0
Binary files /dev/null and b/sound/piano/Gb4.ogg differ
diff --git a/sound/piano/Gb5.ogg b/sound/piano/Gb5.ogg
new file mode 100644
index 00000000000..787c19bed8d
Binary files /dev/null and b/sound/piano/Gb5.ogg differ
diff --git a/sound/piano/Gb6.ogg b/sound/piano/Gb6.ogg
new file mode 100644
index 00000000000..d5a5dbb2d1b
Binary files /dev/null and b/sound/piano/Gb6.ogg differ
diff --git a/sound/piano/Gb7.ogg b/sound/piano/Gb7.ogg
new file mode 100644
index 00000000000..c6f92716803
Binary files /dev/null and b/sound/piano/Gb7.ogg differ
diff --git a/sound/piano/Gb8.ogg b/sound/piano/Gb8.ogg
new file mode 100644
index 00000000000..85c0b707545
Binary files /dev/null and b/sound/piano/Gb8.ogg differ
diff --git a/sound/piano/Gn1.ogg b/sound/piano/Gn1.ogg
new file mode 100644
index 00000000000..d2829a4c0b2
Binary files /dev/null and b/sound/piano/Gn1.ogg differ
diff --git a/sound/piano/Gn2.ogg b/sound/piano/Gn2.ogg
new file mode 100644
index 00000000000..e657124c717
Binary files /dev/null and b/sound/piano/Gn2.ogg differ
diff --git a/sound/piano/Gn3.ogg b/sound/piano/Gn3.ogg
new file mode 100644
index 00000000000..c1e88555f17
Binary files /dev/null and b/sound/piano/Gn3.ogg differ
diff --git a/sound/piano/Gn4.ogg b/sound/piano/Gn4.ogg
new file mode 100644
index 00000000000..bbae7fa3e8b
Binary files /dev/null and b/sound/piano/Gn4.ogg differ
diff --git a/sound/piano/Gn5.ogg b/sound/piano/Gn5.ogg
new file mode 100644
index 00000000000..556cd6085a3
Binary files /dev/null and b/sound/piano/Gn5.ogg differ
diff --git a/sound/piano/Gn6.ogg b/sound/piano/Gn6.ogg
new file mode 100644
index 00000000000..6bf8c36013d
Binary files /dev/null and b/sound/piano/Gn6.ogg differ
diff --git a/sound/piano/Gn7.ogg b/sound/piano/Gn7.ogg
new file mode 100644
index 00000000000..0637492985e
Binary files /dev/null and b/sound/piano/Gn7.ogg differ
diff --git a/sound/piano/Gn8.ogg b/sound/piano/Gn8.ogg
new file mode 100644
index 00000000000..85f89a198ea
Binary files /dev/null and b/sound/piano/Gn8.ogg differ
diff --git a/sound/piano/pianoA.ogg b/sound/piano/pianoA.ogg
deleted file mode 100644
index e9ca0d2d963..00000000000
Binary files a/sound/piano/pianoA.ogg and /dev/null differ
diff --git a/sound/piano/pianoB.ogg b/sound/piano/pianoB.ogg
deleted file mode 100644
index 943b3cc8a5e..00000000000
Binary files a/sound/piano/pianoB.ogg and /dev/null differ
diff --git a/sound/piano/pianoC.ogg b/sound/piano/pianoC.ogg
deleted file mode 100644
index 533e95fc451..00000000000
Binary files a/sound/piano/pianoC.ogg and /dev/null differ
diff --git a/sound/piano/pianoD.ogg b/sound/piano/pianoD.ogg
deleted file mode 100644
index 4ea675c1d3a..00000000000
Binary files a/sound/piano/pianoD.ogg and /dev/null differ
diff --git a/sound/piano/pianoE.ogg b/sound/piano/pianoE.ogg
deleted file mode 100644
index eb49eceb8a9..00000000000
Binary files a/sound/piano/pianoE.ogg and /dev/null differ
diff --git a/sound/piano/pianoF.ogg b/sound/piano/pianoF.ogg
deleted file mode 100644
index 89c0d7ab795..00000000000
Binary files a/sound/piano/pianoF.ogg and /dev/null differ
diff --git a/sound/piano/pianoG.ogg b/sound/piano/pianoG.ogg
deleted file mode 100644
index 34db93d4de7..00000000000
Binary files a/sound/piano/pianoG.ogg and /dev/null differ
diff --git a/tgstation.dme b/tgstation.dme
index 7b7ab2a6e2f..bc0718aa065 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -130,7 +130,6 @@
#define FILE_DIR "icons/turf"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
-#define FILE_DIR "maps/backup"
#define FILE_DIR "sound"
#define FILE_DIR "sound/ambience"
#define FILE_DIR "sound/announcer"