From d8408a2c5997d2dd24bfc1196558c89bfce80e2c Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sun, 14 Sep 2025 13:46:26 -0700 Subject: [PATCH] [MIRROR] Instrument Update (#11645) Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- .../signals/signals_atom/signals_atom_main.dm | 3 + code/__defines/dcs/signals/signals_music.dm | 12 + code/__defines/instruments.dm | 6 +- code/__defines/song.dm | 17 + code/__defines/text.dm | 4 + code/_helpers/text.dm | 107 +++++ .../subsystems/processing/instruments.dm | 11 +- code/game/objects/items/devices/hacktool.dm | 2 +- .../client/preferences/types/game/sound.dm | 14 + .../instrument_data/_instrument_data.dm | 7 +- .../instruments/instrument_data/brass.dm | 22 +- .../instrument_data/chromatic_percussion.dm | 32 +- .../instruments/instrument_data/fun.dm | 11 +- .../instruments/instrument_data/guitar.dm | 34 +- .../instruments/instrument_data/hardcoded.dm | 4 +- .../instruments/instrument_data/organ.dm | 40 +- .../instruments/instrument_data/piano.dm | 66 +-- .../instrument_data/synth_tones.dm | 8 +- code/modules/instruments/items.dm | 98 +---- code/modules/instruments/piano_synth.dm | 60 +++ code/modules/instruments/songs/_song.dm | 179 +++++--- code/modules/instruments/songs/editor.dm | 411 ++++++++---------- code/modules/instruments/songs/play_legacy.dm | 23 +- .../instruments/songs/play_synthesized.dm | 43 +- code/modules/instruments/stationary.dm | 89 ++-- .../code/modules/instruments/items.dm | 0 .../code/modules/instruments/stationary.dm | 13 + sound/runtime/README.md | 5 + .../instruments/accordion/Ab2.mid | Bin .../instruments/accordion/Ab3.mid | Bin .../instruments/accordion/Ab4.mid | Bin .../instruments/accordion/Ab5.mid | Bin .../instruments/accordion/Ab6.mid | Bin .../instruments/accordion/An2.mid | Bin .../instruments/accordion/An3.mid | Bin .../instruments/accordion/An4.mid | Bin .../instruments/accordion/An5.mid | Bin .../instruments/accordion/An6.mid | Bin .../instruments/accordion/Bb2.mid | Bin .../instruments/accordion/Bb3.mid | Bin .../instruments/accordion/Bb4.mid | Bin .../instruments/accordion/Bb5.mid | Bin .../instruments/accordion/Bb6.mid | Bin .../instruments/accordion/Bn2.mid | Bin .../instruments/accordion/Bn3.mid | Bin .../instruments/accordion/Bn4.mid | Bin .../instruments/accordion/Bn5.mid | Bin .../instruments/accordion/Bn6.mid | Bin .../instruments/accordion/Cn2.mid | Bin .../instruments/accordion/Cn3.mid | Bin .../instruments/accordion/Cn4.mid | Bin .../instruments/accordion/Cn5.mid | Bin .../instruments/accordion/Cn6.mid | Bin .../instruments/accordion/Db2.mid | Bin .../instruments/accordion/Db3.mid | Bin .../instruments/accordion/Db4.mid | Bin .../instruments/accordion/Db5.mid | Bin .../instruments/accordion/Db6.mid | Bin .../instruments/accordion/Dn2.mid | Bin .../instruments/accordion/Dn3.mid | Bin .../instruments/accordion/Dn4.mid | Bin .../instruments/accordion/Dn5.mid | Bin .../instruments/accordion/Dn6.mid | Bin .../instruments/accordion/Eb2.mid | Bin .../instruments/accordion/Eb3.mid | Bin .../instruments/accordion/Eb4.mid | Bin .../instruments/accordion/Eb5.mid | Bin .../instruments/accordion/Eb6.mid | Bin .../instruments/accordion/En2.mid | Bin .../instruments/accordion/En3.mid | Bin .../instruments/accordion/En4.mid | Bin .../instruments/accordion/En5.mid | Bin .../instruments/accordion/En6.mid | Bin .../instruments/accordion/Fn2.mid | Bin .../instruments/accordion/Fn3.mid | Bin .../instruments/accordion/Fn4.mid | Bin .../instruments/accordion/Fn5.mid | Bin .../instruments/accordion/Fn6.mid | Bin .../instruments/accordion/Gb2.mid | Bin .../instruments/accordion/Gb3.mid | Bin .../instruments/accordion/Gb4.mid | Bin .../instruments/accordion/Gb5.mid | Bin .../instruments/accordion/Gb6.mid | Bin .../instruments/accordion/Gn2.mid | Bin .../instruments/accordion/Gn3.mid | Bin .../instruments/accordion/Gn4.mid | Bin .../instruments/accordion/Gn5.mid | Bin .../instruments/accordion/Gn6.mid | Bin sound/{ => runtime}/instruments/banjo/Ab3.ogg | Bin sound/{ => runtime}/instruments/banjo/Ab4.ogg | Bin sound/{ => runtime}/instruments/banjo/Ab5.ogg | Bin sound/{ => runtime}/instruments/banjo/An3.ogg | Bin sound/{ => runtime}/instruments/banjo/An4.ogg | Bin sound/{ => runtime}/instruments/banjo/An5.ogg | Bin sound/{ => runtime}/instruments/banjo/Bb3.ogg | Bin sound/{ => runtime}/instruments/banjo/Bb4.ogg | Bin sound/{ => runtime}/instruments/banjo/Bb5.ogg | Bin sound/{ => runtime}/instruments/banjo/Bn2.ogg | Bin sound/{ => runtime}/instruments/banjo/Bn3.ogg | Bin sound/{ => runtime}/instruments/banjo/Bn4.ogg | Bin sound/{ => runtime}/instruments/banjo/Bn5.ogg | Bin sound/{ => runtime}/instruments/banjo/Cn3.ogg | Bin sound/{ => runtime}/instruments/banjo/Cn4.ogg | Bin sound/{ => runtime}/instruments/banjo/Cn5.ogg | Bin sound/{ => runtime}/instruments/banjo/Cn6.ogg | Bin sound/{ => runtime}/instruments/banjo/Db3.ogg | Bin sound/{ => runtime}/instruments/banjo/Db4.ogg | Bin sound/{ => runtime}/instruments/banjo/Db5.ogg | Bin sound/{ => runtime}/instruments/banjo/Db6.ogg | Bin sound/{ => runtime}/instruments/banjo/Dn3.ogg | Bin sound/{ => runtime}/instruments/banjo/Dn4.ogg | Bin sound/{ => runtime}/instruments/banjo/Dn5.ogg | Bin sound/{ => runtime}/instruments/banjo/Dn6.ogg | Bin sound/{ => runtime}/instruments/banjo/Eb3.ogg | Bin sound/{ => runtime}/instruments/banjo/Eb4.ogg | Bin sound/{ => runtime}/instruments/banjo/Eb5.ogg | Bin sound/{ => runtime}/instruments/banjo/En3.ogg | Bin sound/{ => runtime}/instruments/banjo/En4.ogg | Bin sound/{ => runtime}/instruments/banjo/En5.ogg | Bin sound/{ => runtime}/instruments/banjo/Fn3.ogg | Bin sound/{ => runtime}/instruments/banjo/Fn4.ogg | Bin sound/{ => runtime}/instruments/banjo/Fn5.ogg | Bin sound/{ => runtime}/instruments/banjo/Gb3.ogg | Bin sound/{ => runtime}/instruments/banjo/Gb4.ogg | Bin sound/{ => runtime}/instruments/banjo/Gb5.ogg | Bin sound/{ => runtime}/instruments/banjo/Gn3.ogg | Bin sound/{ => runtime}/instruments/banjo/Gn4.ogg | Bin sound/{ => runtime}/instruments/banjo/Gn5.ogg | Bin .../instruments/bikehorn/Ab2.ogg | Bin .../instruments/bikehorn/Ab3.ogg | Bin .../instruments/bikehorn/Ab4.ogg | Bin .../instruments/bikehorn/An2.ogg | Bin .../instruments/bikehorn/An3.ogg | Bin .../instruments/bikehorn/An4.ogg | Bin .../instruments/bikehorn/Bb2.ogg | Bin .../instruments/bikehorn/Bb3.ogg | Bin .../instruments/bikehorn/Bb4.ogg | Bin .../instruments/bikehorn/Bn2.ogg | Bin .../instruments/bikehorn/Bn3.ogg | Bin .../instruments/bikehorn/Bn4.ogg | Bin .../instruments/bikehorn/Cn3.ogg | Bin .../instruments/bikehorn/Cn4.ogg | Bin .../instruments/bikehorn/Cn5.ogg | Bin .../instruments/bikehorn/Db3.ogg | Bin .../instruments/bikehorn/Db4.ogg | Bin .../instruments/bikehorn/Db5.ogg | Bin .../instruments/bikehorn/Dn3.ogg | Bin .../instruments/bikehorn/Dn4.ogg | Bin .../instruments/bikehorn/Dn5.ogg | Bin .../instruments/bikehorn/Eb3.ogg | Bin .../instruments/bikehorn/Eb4.ogg | Bin .../instruments/bikehorn/Eb5.ogg | Bin .../instruments/bikehorn/En2.ogg | Bin .../instruments/bikehorn/En3.ogg | Bin .../instruments/bikehorn/En4.ogg | Bin .../instruments/bikehorn/Fn2.ogg | Bin .../instruments/bikehorn/Fn3.ogg | Bin .../instruments/bikehorn/Fn4.ogg | Bin .../instruments/bikehorn/Gb2.ogg | Bin .../instruments/bikehorn/Gb3.ogg | Bin .../instruments/bikehorn/Gb4.ogg | Bin .../instruments/bikehorn/Gn2.ogg | Bin .../instruments/bikehorn/Gn3.ogg | Bin .../instruments/bikehorn/Gn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Ab4.ogg | Bin .../{ => runtime}/instruments/eguitar/Ab5.ogg | Bin .../{ => runtime}/instruments/eguitar/Ab6.ogg | Bin .../{ => runtime}/instruments/eguitar/An4.ogg | Bin .../{ => runtime}/instruments/eguitar/An5.ogg | Bin .../{ => runtime}/instruments/eguitar/An6.ogg | Bin .../{ => runtime}/instruments/eguitar/Bb4.ogg | Bin .../{ => runtime}/instruments/eguitar/Bb5.ogg | Bin .../{ => runtime}/instruments/eguitar/Bb6.ogg | Bin .../{ => runtime}/instruments/eguitar/Bn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Bn5.ogg | Bin .../{ => runtime}/instruments/eguitar/Bn6.ogg | Bin .../{ => runtime}/instruments/eguitar/Cn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Cn5.ogg | Bin .../{ => runtime}/instruments/eguitar/Cn6.ogg | Bin .../{ => runtime}/instruments/eguitar/Cn7.ogg | Bin .../{ => runtime}/instruments/eguitar/Db4.ogg | Bin .../{ => runtime}/instruments/eguitar/Db5.ogg | Bin .../{ => runtime}/instruments/eguitar/Db6.ogg | Bin .../{ => runtime}/instruments/eguitar/Dn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Dn5.ogg | Bin .../{ => runtime}/instruments/eguitar/Dn6.ogg | Bin .../{ => runtime}/instruments/eguitar/Eb4.ogg | Bin .../{ => runtime}/instruments/eguitar/Eb5.ogg | Bin .../{ => runtime}/instruments/eguitar/Eb6.ogg | Bin .../{ => runtime}/instruments/eguitar/En4.ogg | Bin .../{ => runtime}/instruments/eguitar/En5.ogg | Bin .../{ => runtime}/instruments/eguitar/En6.ogg | Bin .../{ => runtime}/instruments/eguitar/Fn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Fn5.ogg | Bin .../{ => runtime}/instruments/eguitar/Fn6.ogg | Bin .../{ => runtime}/instruments/eguitar/Gb4.ogg | Bin .../{ => runtime}/instruments/eguitar/Gb5.ogg | Bin .../{ => runtime}/instruments/eguitar/Gb6.ogg | Bin .../{ => runtime}/instruments/eguitar/Gn4.ogg | Bin .../{ => runtime}/instruments/eguitar/Gn5.ogg | Bin .../{ => runtime}/instruments/eguitar/Gn6.ogg | Bin .../instruments/glockenspiel/Ab2.mid | Bin .../instruments/glockenspiel/Ab3.mid | Bin .../instruments/glockenspiel/Ab4.mid | Bin .../instruments/glockenspiel/Ab5.mid | Bin .../instruments/glockenspiel/Ab6.mid | Bin .../instruments/glockenspiel/Ab7.mid | Bin .../instruments/glockenspiel/An2.mid | Bin .../instruments/glockenspiel/An3.mid | Bin .../instruments/glockenspiel/An4.mid | Bin .../instruments/glockenspiel/An5.mid | Bin .../instruments/glockenspiel/An6.mid | Bin .../instruments/glockenspiel/An7.mid | Bin .../instruments/glockenspiel/Bb2.mid | Bin .../instruments/glockenspiel/Bb3.mid | Bin .../instruments/glockenspiel/Bb4.mid | Bin .../instruments/glockenspiel/Bb5.mid | Bin .../instruments/glockenspiel/Bb6.mid | Bin .../instruments/glockenspiel/Bb7.mid | Bin .../instruments/glockenspiel/Bn2.mid | Bin .../instruments/glockenspiel/Bn3.mid | Bin .../instruments/glockenspiel/Bn4.mid | Bin .../instruments/glockenspiel/Bn5.mid | Bin .../instruments/glockenspiel/Bn6.mid | Bin .../instruments/glockenspiel/Bn7.mid | Bin .../instruments/glockenspiel/Cn2.mid | Bin .../instruments/glockenspiel/Cn3.mid | Bin .../instruments/glockenspiel/Cn4.mid | Bin .../instruments/glockenspiel/Cn5.mid | Bin .../instruments/glockenspiel/Cn6.mid | Bin .../instruments/glockenspiel/Cn7.mid | Bin .../instruments/glockenspiel/Db2.mid | Bin .../instruments/glockenspiel/Db3.mid | Bin .../instruments/glockenspiel/Db4.mid | Bin .../instruments/glockenspiel/Db5.mid | Bin .../instruments/glockenspiel/Db6.mid | Bin .../instruments/glockenspiel/Db7.mid | Bin .../instruments/glockenspiel/Dn2.mid | Bin .../instruments/glockenspiel/Dn3.mid | Bin .../instruments/glockenspiel/Dn4.mid | Bin .../instruments/glockenspiel/Dn5.mid | Bin .../instruments/glockenspiel/Dn6.mid | Bin .../instruments/glockenspiel/Dn7.mid | Bin .../instruments/glockenspiel/Eb2.mid | Bin .../instruments/glockenspiel/Eb3.mid | Bin .../instruments/glockenspiel/Eb4.mid | Bin .../instruments/glockenspiel/Eb5.mid | Bin .../instruments/glockenspiel/Eb6.mid | Bin .../instruments/glockenspiel/Eb7.mid | Bin .../instruments/glockenspiel/En2.mid | Bin .../instruments/glockenspiel/En3.mid | Bin .../instruments/glockenspiel/En4.mid | Bin .../instruments/glockenspiel/En5.mid | Bin .../instruments/glockenspiel/En6.mid | Bin .../instruments/glockenspiel/En7.mid | Bin .../instruments/glockenspiel/Fn2.mid | Bin .../instruments/glockenspiel/Fn3.mid | Bin .../instruments/glockenspiel/Fn4.mid | Bin .../instruments/glockenspiel/Fn5.mid | Bin .../instruments/glockenspiel/Fn6.mid | Bin .../instruments/glockenspiel/Fn7.mid | Bin .../instruments/glockenspiel/Gb2.mid | Bin .../instruments/glockenspiel/Gb3.mid | Bin .../instruments/glockenspiel/Gb4.mid | Bin .../instruments/glockenspiel/Gb5.mid | Bin .../instruments/glockenspiel/Gb6.mid | Bin .../instruments/glockenspiel/Gb7.mid | Bin .../instruments/glockenspiel/Gn2.mid | Bin .../instruments/glockenspiel/Gn3.mid | Bin .../instruments/glockenspiel/Gn4.mid | Bin .../instruments/glockenspiel/Gn5.mid | Bin .../instruments/glockenspiel/Gn6.mid | Bin .../instruments/glockenspiel/Gn7.mid | Bin .../{ => runtime}/instruments/guitar/Ab3.ogg | Bin .../{ => runtime}/instruments/guitar/Ab4.ogg | Bin .../{ => runtime}/instruments/guitar/Ab5.ogg | Bin .../{ => runtime}/instruments/guitar/Ab6.ogg | Bin .../{ => runtime}/instruments/guitar/An3.ogg | Bin .../{ => runtime}/instruments/guitar/An4.ogg | Bin .../{ => runtime}/instruments/guitar/An5.ogg | Bin .../{ => runtime}/instruments/guitar/An6.ogg | Bin .../{ => runtime}/instruments/guitar/Bb3.ogg | Bin .../{ => runtime}/instruments/guitar/Bb4.ogg | Bin .../{ => runtime}/instruments/guitar/Bb5.ogg | Bin .../{ => runtime}/instruments/guitar/Bb6.ogg | Bin .../{ => runtime}/instruments/guitar/Bn3.ogg | Bin .../{ => runtime}/instruments/guitar/Bn4.ogg | Bin .../{ => runtime}/instruments/guitar/Bn5.ogg | Bin .../{ => runtime}/instruments/guitar/Bn6.ogg | Bin .../{ => runtime}/instruments/guitar/Cb4.ogg | Bin .../{ => runtime}/instruments/guitar/Cb5.ogg | Bin .../{ => runtime}/instruments/guitar/Cb6.ogg | Bin .../{ => runtime}/instruments/guitar/Cb7.ogg | Bin .../{ => runtime}/instruments/guitar/Cn4.ogg | Bin .../{ => runtime}/instruments/guitar/Cn5.ogg | Bin .../{ => runtime}/instruments/guitar/Cn6.ogg | Bin .../{ => runtime}/instruments/guitar/Db4.ogg | Bin .../{ => runtime}/instruments/guitar/Db5.ogg | Bin .../{ => runtime}/instruments/guitar/Db6.ogg | Bin .../{ => runtime}/instruments/guitar/Dn4.ogg | Bin .../{ => runtime}/instruments/guitar/Dn5.ogg | Bin .../{ => runtime}/instruments/guitar/Dn6.ogg | Bin .../{ => runtime}/instruments/guitar/Eb4.ogg | Bin .../{ => runtime}/instruments/guitar/Eb5.ogg | Bin .../{ => runtime}/instruments/guitar/Eb6.ogg | Bin .../{ => runtime}/instruments/guitar/En3.ogg | Bin .../{ => runtime}/instruments/guitar/En4.ogg | Bin .../{ => runtime}/instruments/guitar/En5.ogg | Bin .../{ => runtime}/instruments/guitar/En6.ogg | Bin .../{ => runtime}/instruments/guitar/Fb3.ogg | Bin .../{ => runtime}/instruments/guitar/Fb4.ogg | Bin .../{ => runtime}/instruments/guitar/Fb5.ogg | Bin .../{ => runtime}/instruments/guitar/Fb6.ogg | Bin .../{ => runtime}/instruments/guitar/Fn3.ogg | Bin .../{ => runtime}/instruments/guitar/Fn4.ogg | Bin .../{ => runtime}/instruments/guitar/Fn5.ogg | Bin .../{ => runtime}/instruments/guitar/Fn6.ogg | Bin .../{ => runtime}/instruments/guitar/Gb3.ogg | Bin .../{ => runtime}/instruments/guitar/Gb4.ogg | Bin .../{ => runtime}/instruments/guitar/Gb5.ogg | Bin .../{ => runtime}/instruments/guitar/Gb6.ogg | Bin .../{ => runtime}/instruments/guitar/Gn3.ogg | Bin .../{ => runtime}/instruments/guitar/Gn4.ogg | Bin .../{ => runtime}/instruments/guitar/Gn5.ogg | Bin .../{ => runtime}/instruments/guitar/Gn6.ogg | Bin .../instruments/harmonica/Ab2.mid | Bin .../instruments/harmonica/Ab3.mid | Bin .../instruments/harmonica/Ab4.mid | Bin .../instruments/harmonica/Ab5.mid | Bin .../instruments/harmonica/Ab6.mid | Bin .../instruments/harmonica/An2.mid | Bin .../instruments/harmonica/An3.mid | Bin .../instruments/harmonica/An4.mid | Bin .../instruments/harmonica/An5.mid | Bin .../instruments/harmonica/An6.mid | Bin .../instruments/harmonica/Bb2.mid | Bin .../instruments/harmonica/Bb3.mid | Bin .../instruments/harmonica/Bb4.mid | Bin .../instruments/harmonica/Bb5.mid | Bin .../instruments/harmonica/Bb6.mid | Bin .../instruments/harmonica/Bn2.mid | Bin .../instruments/harmonica/Bn3.mid | Bin .../instruments/harmonica/Bn4.mid | Bin .../instruments/harmonica/Bn5.mid | Bin .../instruments/harmonica/Bn6.mid | Bin .../instruments/harmonica/Cn2.mid | Bin .../instruments/harmonica/Cn3.mid | Bin .../instruments/harmonica/Cn4.mid | Bin .../instruments/harmonica/Cn5.mid | Bin .../instruments/harmonica/Cn6.mid | Bin .../instruments/harmonica/Cn7.mid | Bin .../instruments/harmonica/Db2.mid | Bin .../instruments/harmonica/Db3.mid | Bin .../instruments/harmonica/Db4.mid | Bin .../instruments/harmonica/Db5.mid | Bin .../instruments/harmonica/Db6.mid | Bin .../instruments/harmonica/Dn2.mid | Bin .../instruments/harmonica/Dn3.mid | Bin .../instruments/harmonica/Dn4.mid | Bin .../instruments/harmonica/Dn5.mid | Bin .../instruments/harmonica/Dn6.mid | Bin .../instruments/harmonica/Eb2.mid | Bin .../instruments/harmonica/Eb3.mid | Bin .../instruments/harmonica/Eb4.mid | Bin .../instruments/harmonica/Eb5.mid | Bin .../instruments/harmonica/Eb6.mid | Bin .../instruments/harmonica/En2.mid | Bin .../instruments/harmonica/En3.mid | Bin .../instruments/harmonica/En4.mid | Bin .../instruments/harmonica/En5.mid | Bin .../instruments/harmonica/En6.mid | Bin .../instruments/harmonica/Fn2.mid | Bin .../instruments/harmonica/Fn3.mid | Bin .../instruments/harmonica/Fn4.mid | Bin .../instruments/harmonica/Fn5.mid | Bin .../instruments/harmonica/Fn6.mid | Bin .../instruments/harmonica/Gb2.mid | Bin .../instruments/harmonica/Gb3.mid | Bin .../instruments/harmonica/Gb4.mid | Bin .../instruments/harmonica/Gb5.mid | Bin .../instruments/harmonica/Gb6.mid | Bin .../instruments/harmonica/Gn2.mid | Bin .../instruments/harmonica/Gn3.mid | Bin .../instruments/harmonica/Gn4.mid | Bin .../instruments/harmonica/Gn5.mid | Bin .../instruments/harmonica/Gn6.mid | Bin sound/{ => runtime}/instruments/piano/Ab2.ogg | Bin sound/{ => runtime}/instruments/piano/Ab3.ogg | Bin sound/{ => runtime}/instruments/piano/Ab4.ogg | Bin sound/{ => runtime}/instruments/piano/Ab5.ogg | Bin sound/{ => runtime}/instruments/piano/Ab6.ogg | Bin sound/{ => runtime}/instruments/piano/Ab7.ogg | Bin sound/{ => runtime}/instruments/piano/Ab8.ogg | Bin sound/{ => runtime}/instruments/piano/An1.ogg | Bin sound/{ => runtime}/instruments/piano/An2.ogg | Bin sound/{ => runtime}/instruments/piano/An3.ogg | Bin sound/{ => runtime}/instruments/piano/An4.ogg | Bin sound/{ => runtime}/instruments/piano/An5.ogg | Bin sound/{ => runtime}/instruments/piano/An6.ogg | Bin sound/{ => runtime}/instruments/piano/An7.ogg | Bin sound/{ => runtime}/instruments/piano/An8.ogg | Bin sound/{ => runtime}/instruments/piano/Bb1.ogg | Bin sound/{ => runtime}/instruments/piano/Bb2.ogg | Bin sound/{ => runtime}/instruments/piano/Bb3.ogg | Bin sound/{ => runtime}/instruments/piano/Bb4.ogg | Bin sound/{ => runtime}/instruments/piano/Bb5.ogg | Bin sound/{ => runtime}/instruments/piano/Bb6.ogg | Bin sound/{ => runtime}/instruments/piano/Bb7.ogg | Bin sound/{ => runtime}/instruments/piano/Bb8.ogg | Bin sound/{ => runtime}/instruments/piano/Bn1.ogg | Bin sound/{ => runtime}/instruments/piano/Bn2.ogg | Bin sound/{ => runtime}/instruments/piano/Bn3.ogg | Bin sound/{ => runtime}/instruments/piano/Bn4.ogg | Bin sound/{ => runtime}/instruments/piano/Bn5.ogg | Bin sound/{ => runtime}/instruments/piano/Bn6.ogg | Bin sound/{ => runtime}/instruments/piano/Bn7.ogg | Bin sound/{ => runtime}/instruments/piano/Bn8.ogg | Bin sound/{ => runtime}/instruments/piano/Cn2.ogg | Bin sound/{ => runtime}/instruments/piano/Cn3.ogg | Bin sound/{ => runtime}/instruments/piano/Cn4.ogg | Bin sound/{ => runtime}/instruments/piano/Cn5.ogg | Bin sound/{ => runtime}/instruments/piano/Cn6.ogg | Bin sound/{ => runtime}/instruments/piano/Cn7.ogg | Bin sound/{ => runtime}/instruments/piano/Cn8.ogg | Bin sound/{ => runtime}/instruments/piano/Cn9.ogg | Bin sound/{ => runtime}/instruments/piano/Db2.ogg | Bin sound/{ => runtime}/instruments/piano/Db3.ogg | Bin sound/{ => runtime}/instruments/piano/Db4.ogg | Bin sound/{ => runtime}/instruments/piano/Db5.ogg | Bin sound/{ => runtime}/instruments/piano/Db6.ogg | Bin sound/{ => runtime}/instruments/piano/Db7.ogg | Bin sound/{ => runtime}/instruments/piano/Db8.ogg | Bin sound/{ => runtime}/instruments/piano/Dn2.ogg | Bin sound/{ => runtime}/instruments/piano/Dn3.ogg | Bin sound/{ => runtime}/instruments/piano/Dn4.ogg | Bin sound/{ => runtime}/instruments/piano/Dn5.ogg | Bin sound/{ => runtime}/instruments/piano/Dn6.ogg | Bin sound/{ => runtime}/instruments/piano/Dn7.ogg | Bin sound/{ => runtime}/instruments/piano/Dn8.ogg | Bin sound/{ => runtime}/instruments/piano/Eb2.ogg | Bin sound/{ => runtime}/instruments/piano/Eb3.ogg | Bin sound/{ => runtime}/instruments/piano/Eb4.ogg | Bin sound/{ => runtime}/instruments/piano/Eb5.ogg | Bin sound/{ => runtime}/instruments/piano/Eb6.ogg | Bin sound/{ => runtime}/instruments/piano/Eb7.ogg | Bin sound/{ => runtime}/instruments/piano/Eb8.ogg | Bin sound/{ => runtime}/instruments/piano/En2.ogg | Bin sound/{ => runtime}/instruments/piano/En3.ogg | Bin sound/{ => runtime}/instruments/piano/En4.ogg | Bin sound/{ => runtime}/instruments/piano/En5.ogg | Bin sound/{ => runtime}/instruments/piano/En6.ogg | Bin sound/{ => runtime}/instruments/piano/En7.ogg | Bin sound/{ => runtime}/instruments/piano/En8.ogg | Bin sound/{ => runtime}/instruments/piano/Fn2.ogg | Bin sound/{ => runtime}/instruments/piano/Fn3.ogg | Bin sound/{ => runtime}/instruments/piano/Fn4.ogg | Bin sound/{ => runtime}/instruments/piano/Fn5.ogg | Bin sound/{ => runtime}/instruments/piano/Fn6.ogg | Bin sound/{ => runtime}/instruments/piano/Fn7.ogg | Bin sound/{ => runtime}/instruments/piano/Fn8.ogg | Bin sound/{ => runtime}/instruments/piano/Gb2.ogg | Bin sound/{ => runtime}/instruments/piano/Gb3.ogg | Bin sound/{ => runtime}/instruments/piano/Gb4.ogg | Bin sound/{ => runtime}/instruments/piano/Gb5.ogg | Bin sound/{ => runtime}/instruments/piano/Gb6.ogg | Bin sound/{ => runtime}/instruments/piano/Gb7.ogg | Bin sound/{ => runtime}/instruments/piano/Gb8.ogg | Bin sound/{ => runtime}/instruments/piano/Gn2.ogg | Bin sound/{ => runtime}/instruments/piano/Gn3.ogg | Bin sound/{ => runtime}/instruments/piano/Gn4.ogg | Bin sound/{ => runtime}/instruments/piano/Gn5.ogg | Bin sound/{ => runtime}/instruments/piano/Gn6.ogg | Bin sound/{ => runtime}/instruments/piano/Gn7.ogg | Bin sound/{ => runtime}/instruments/piano/Gn8.ogg | Bin .../instruments/recorder/Ab2.mid | Bin .../instruments/recorder/Ab3.mid | Bin .../instruments/recorder/Ab4.mid | Bin .../instruments/recorder/Ab5.mid | Bin .../instruments/recorder/Ab6.mid | Bin .../instruments/recorder/An2.mid | Bin .../instruments/recorder/An3.mid | Bin .../instruments/recorder/An4.mid | Bin .../instruments/recorder/An5.mid | Bin .../instruments/recorder/An6.mid | Bin .../instruments/recorder/Bb2.mid | Bin .../instruments/recorder/Bb3.mid | Bin .../instruments/recorder/Bb4.mid | Bin .../instruments/recorder/Bb5.mid | Bin .../instruments/recorder/Bb6.mid | Bin .../instruments/recorder/Bn2.mid | Bin .../instruments/recorder/Bn3.mid | Bin .../instruments/recorder/Bn4.mid | Bin .../instruments/recorder/Bn5.mid | Bin .../instruments/recorder/Bn6.mid | Bin .../instruments/recorder/Cn2.mid | Bin .../instruments/recorder/Cn3.mid | Bin .../instruments/recorder/Cn4.mid | Bin .../instruments/recorder/Cn5.mid | Bin .../instruments/recorder/Cn6.mid | Bin .../instruments/recorder/Cn7.mid | Bin .../instruments/recorder/Db2.mid | Bin .../instruments/recorder/Db3.mid | Bin .../instruments/recorder/Db4.mid | Bin .../instruments/recorder/Db5.mid | Bin .../instruments/recorder/Db6.mid | Bin .../instruments/recorder/Db7.mid | Bin .../instruments/recorder/Dn2.mid | Bin .../instruments/recorder/Dn3.mid | Bin .../instruments/recorder/Dn4.mid | Bin .../instruments/recorder/Dn5.mid | Bin .../instruments/recorder/Dn6.mid | Bin .../instruments/recorder/Eb2.mid | Bin .../instruments/recorder/Eb3.mid | Bin .../instruments/recorder/Eb4.mid | Bin .../instruments/recorder/Eb5.mid | Bin .../instruments/recorder/Eb6.mid | Bin .../instruments/recorder/En2.mid | Bin .../instruments/recorder/En3.mid | Bin .../instruments/recorder/En4.mid | Bin .../instruments/recorder/En5.mid | Bin .../instruments/recorder/En6.mid | Bin .../instruments/recorder/Fn2.mid | Bin .../instruments/recorder/Fn3.mid | Bin .../instruments/recorder/Fn4.mid | Bin .../instruments/recorder/Fn5.mid | Bin .../instruments/recorder/Fn6.mid | Bin .../instruments/recorder/Gb2.mid | Bin .../instruments/recorder/Gb3.mid | Bin .../instruments/recorder/Gb4.mid | Bin .../instruments/recorder/Gb5.mid | Bin .../instruments/recorder/Gb6.mid | Bin .../instruments/recorder/Gn2.mid | Bin .../instruments/recorder/Gn3.mid | Bin .../instruments/recorder/Gn4.mid | Bin .../instruments/recorder/Gn5.mid | Bin .../instruments/recorder/Gn6.mid | Bin .../instruments/saxophone/Ab2.mid | Bin .../instruments/saxophone/Ab3.mid | Bin .../instruments/saxophone/Ab4.mid | Bin .../instruments/saxophone/Ab5.mid | Bin .../instruments/saxophone/Ab6.mid | Bin .../instruments/saxophone/An2.mid | Bin .../instruments/saxophone/An3.mid | Bin .../instruments/saxophone/An4.mid | Bin .../instruments/saxophone/An5.mid | Bin .../instruments/saxophone/An6.mid | Bin .../instruments/saxophone/Bb2.mid | Bin .../instruments/saxophone/Bb3.mid | Bin .../instruments/saxophone/Bb4.mid | Bin .../instruments/saxophone/Bb5.mid | Bin .../instruments/saxophone/Bb6.mid | Bin .../instruments/saxophone/Bn2.mid | Bin .../instruments/saxophone/Bn3.mid | Bin .../instruments/saxophone/Bn4.mid | Bin .../instruments/saxophone/Bn5.mid | Bin .../instruments/saxophone/Bn6.mid | Bin .../instruments/saxophone/Cn2.mid | Bin .../instruments/saxophone/Cn3.mid | Bin .../instruments/saxophone/Cn4.mid | Bin .../instruments/saxophone/Cn5.mid | Bin .../instruments/saxophone/Cn6.mid | Bin .../instruments/saxophone/Db2.mid | Bin .../instruments/saxophone/Db3.mid | Bin .../instruments/saxophone/Db4.mid | Bin .../instruments/saxophone/Db5.mid | Bin .../instruments/saxophone/Db6.mid | Bin .../instruments/saxophone/Dn2.mid | Bin .../instruments/saxophone/Dn3.mid | Bin .../instruments/saxophone/Dn4.mid | Bin .../instruments/saxophone/Dn5.mid | Bin .../instruments/saxophone/Dn6.mid | Bin .../instruments/saxophone/Eb2.mid | Bin .../instruments/saxophone/Eb3.mid | Bin .../instruments/saxophone/Eb4.mid | Bin .../instruments/saxophone/Eb5.mid | Bin .../instruments/saxophone/Eb6.mid | Bin .../instruments/saxophone/En2.mid | Bin .../instruments/saxophone/En3.mid | Bin .../instruments/saxophone/En4.mid | Bin .../instruments/saxophone/En5.mid | Bin .../instruments/saxophone/En6.mid | Bin .../instruments/saxophone/Fn2.mid | Bin .../instruments/saxophone/Fn3.mid | Bin .../instruments/saxophone/Fn4.mid | Bin .../instruments/saxophone/Fn5.mid | Bin .../instruments/saxophone/Fn6.mid | Bin .../instruments/saxophone/Gb2.mid | Bin .../instruments/saxophone/Gb3.mid | Bin .../instruments/saxophone/Gb4.mid | Bin .../instruments/saxophone/Gb5.mid | Bin .../instruments/saxophone/Gb6.mid | Bin .../instruments/saxophone/Gn2.mid | Bin .../instruments/saxophone/Gn4.mid | Bin .../instruments/saxophone/Gn5.mid | Bin .../instruments/saxophone/Gn6.mid | Bin .../brass/crisis_brass/c2.ogg | Bin .../brass/crisis_brass/c3.ogg | Bin .../brass/crisis_brass/c4.ogg | Bin .../brass/crisis_brass/c5.ogg | Bin .../brass/crisis_trombone/C2.ogg | Bin .../brass/crisis_trombone/C3.ogg | Bin .../brass/crisis_trombone/C4.ogg | Bin .../brass/crisis_trombone/C5.ogg | Bin .../brass/crisis_trumpet/C4.ogg | Bin .../brass/crisis_trumpet/C5.ogg | Bin .../chromatic/fluid_celeste/C2.ogg | Bin .../chromatic/fluid_celeste/C3.ogg | Bin .../chromatic/fluid_celeste/C4.ogg | Bin .../chromatic/fluid_celeste/C5.ogg | Bin .../chromatic/fluid_celeste/C6.ogg | Bin .../chromatic/fluid_celeste/C7.ogg | Bin .../chromatic/fluid_celeste/C8.ogg | Bin .../synthesis_samples/chromatic/sgmbox/c2.ogg | Bin .../synthesis_samples/chromatic/sgmbox/c3.ogg | Bin .../synthesis_samples/chromatic/sgmbox/c4.ogg | Bin .../synthesis_samples/chromatic/sgmbox/c5.ogg | Bin .../chromatic/vibraphone1/c2.ogg | Bin .../chromatic/vibraphone1/c3.ogg | Bin .../chromatic/vibraphone1/c4.ogg | Bin .../chromatic/vibraphone1/c5.ogg | Bin .../guitar/crisis_clean/C2.ogg | Bin .../guitar/crisis_clean/C3.ogg | Bin .../guitar/crisis_clean/C4.ogg | Bin .../guitar/crisis_clean/C5.ogg | Bin .../guitar/crisis_muted/C2.ogg | Bin .../guitar/crisis_muted/C3.ogg | Bin .../guitar/crisis_muted/C4.ogg | Bin .../guitar/crisis_muted/C5.ogg | Bin .../guitar/crisis_nylon/c2.ogg | Bin .../guitar/crisis_nylon/c3.ogg | Bin .../guitar/crisis_nylon/c4.ogg | Bin .../guitar/crisis_nylon/c5.ogg | Bin .../guitar/crisis_steel/c2.ogg | Bin .../guitar/crisis_steel/c3.ogg | Bin .../guitar/crisis_steel/c4.ogg | Bin .../guitar/crisis_steel/c5.ogg | Bin .../synthesis_samples/meowsynth/LICENSE.txt | 14 + .../synthesis_samples/meowsynth/c2.ogg | Bin 0 -> 12609 bytes .../synthesis_samples/meowsynth/c3.ogg | Bin 0 -> 12972 bytes .../synthesis_samples/meowsynth/c4.ogg | Bin 0 -> 9703 bytes .../synthesis_samples/meowsynth/c5.ogg | Bin 0 -> 9600 bytes .../synthesis_samples/meowsynth/c6.ogg | Bin 0 -> 6191 bytes .../organ/crisis_accordian/c2.ogg | Bin .../organ/crisis_accordian/c3.ogg | Bin .../organ/crisis_accordian/c4.ogg | Bin .../organ/crisis_accordian/c5.ogg | Bin .../organ/crisis_church/c2.ogg | Bin .../organ/crisis_church/c3.ogg | Bin .../organ/crisis_church/c4.ogg | Bin .../organ/crisis_church/c5.ogg | Bin .../organ/crisis_hammond/c2.ogg | Bin .../organ/crisis_hammond/c3.ogg | Bin .../organ/crisis_hammond/c4.ogg | Bin .../organ/crisis_hammond/c5.ogg | Bin .../organ/crisis_harmonica/c3.ogg | Bin .../organ/crisis_harmonica/c4.ogg | Bin .../organ/crisis_harmonica/c5.ogg | Bin .../organ/crisis_tangaccordian/c2.ogg | Bin .../organ/crisis_tangaccordian/c3.ogg | Bin .../organ/crisis_tangaccordian/c4.ogg | Bin .../organ/crisis_tangaccordian/c5.ogg | Bin .../piano/crisis_bright_piano/c2.ogg | Bin .../piano/crisis_bright_piano/c3.ogg | Bin .../piano/crisis_bright_piano/c4.ogg | Bin .../piano/crisis_bright_piano/c5.ogg | Bin .../piano/crisis_bright_piano/c6.ogg | Bin .../piano/crisis_bright_piano/c7.ogg | Bin .../piano/crisis_bright_piano/c8.ogg | Bin .../piano/crisis_grand_piano/c2.ogg | Bin .../piano/crisis_grand_piano/c3.ogg | Bin .../piano/crisis_grand_piano/c4.ogg | Bin .../piano/crisis_grand_piano/c5.ogg | Bin .../piano/crisis_grand_piano/c6.ogg | Bin .../piano/crisis_grand_piano/c7.ogg | Bin .../piano/crisis_grand_piano/c8.ogg | Bin .../piano/crisis_harpsichord/c2.ogg | Bin .../piano/crisis_harpsichord/c3.ogg | Bin .../piano/crisis_harpsichord/c4.ogg | Bin .../piano/crisis_harpsichord/c5.ogg | Bin .../piano/fluid_harpsi/C2.ogg | Bin .../piano/fluid_harpsi/C3.ogg | Bin .../piano/fluid_harpsi/C4.ogg | Bin .../piano/fluid_harpsi/C5.ogg | Bin .../piano/fluid_harpsi/C6.ogg | Bin .../piano/fluid_harpsi/C7.ogg | Bin .../piano/fluid_harpsi/C8.ogg | Bin .../piano/fluid_piano/c2.ogg | Bin .../piano/fluid_piano/c3.ogg | Bin .../piano/fluid_piano/c4.ogg | Bin .../piano/fluid_piano/c5.ogg | Bin .../piano/fluid_piano/c6.ogg | Bin .../piano/fluid_piano/c7.ogg | Bin .../piano/fluid_piano/c8.ogg | Bin .../synthesis_samples/tones/Sawtooth.ogg | Bin .../synthesis_samples/tones/Sine.ogg | Bin .../synthesis_samples/tones/Square.ogg | Bin .../instruments/trombone/Ab2.mid | Bin .../instruments/trombone/Ab3.mid | Bin .../instruments/trombone/Ab4.mid | Bin .../instruments/trombone/Ab5.mid | Bin .../instruments/trombone/Ab6.mid | Bin .../instruments/trombone/An2.mid | Bin .../instruments/trombone/An3.mid | Bin .../instruments/trombone/An4.mid | Bin .../instruments/trombone/An5.mid | Bin .../instruments/trombone/An6.mid | Bin .../instruments/trombone/Bb2.mid | Bin .../instruments/trombone/Bb3.mid | Bin .../instruments/trombone/Bb4.mid | Bin .../instruments/trombone/Bb5.mid | Bin .../instruments/trombone/Bb6.mid | Bin .../instruments/trombone/Bn2.mid | Bin .../instruments/trombone/Bn3.mid | Bin .../instruments/trombone/Bn4.mid | Bin .../instruments/trombone/Bn5.mid | Bin .../instruments/trombone/Bn6.mid | Bin .../instruments/trombone/Cn2.mid | Bin .../instruments/trombone/Cn3.mid | Bin .../instruments/trombone/Cn4.mid | Bin .../instruments/trombone/Cn5.mid | Bin .../instruments/trombone/Cn6.mid | Bin .../instruments/trombone/Db2.mid | Bin .../instruments/trombone/Db3.mid | Bin .../instruments/trombone/Db4.mid | Bin .../instruments/trombone/Db5.mid | Bin .../instruments/trombone/Db6.mid | Bin .../instruments/trombone/Dn2.mid | Bin .../instruments/trombone/Dn3.mid | Bin .../instruments/trombone/Dn4.mid | Bin .../instruments/trombone/Dn5.mid | Bin .../instruments/trombone/Dn6.mid | Bin .../instruments/trombone/Eb2.mid | Bin .../instruments/trombone/Eb3.mid | Bin .../instruments/trombone/Eb4.mid | Bin .../instruments/trombone/Eb5.mid | Bin .../instruments/trombone/Eb6.mid | Bin .../instruments/trombone/En2.mid | Bin .../instruments/trombone/En3.mid | Bin .../instruments/trombone/En4.mid | Bin .../instruments/trombone/En5.mid | Bin .../instruments/trombone/En6.mid | Bin .../instruments/trombone/Fn2.mid | Bin .../instruments/trombone/Fn3.mid | Bin .../instruments/trombone/Fn4.mid | Bin .../instruments/trombone/Fn5.mid | Bin .../instruments/trombone/Fn6.mid | Bin .../instruments/trombone/Gb2.mid | Bin .../instruments/trombone/Gb3.mid | Bin .../instruments/trombone/Gb4.mid | Bin .../instruments/trombone/Gb5.mid | Bin .../instruments/trombone/Gb6.mid | Bin .../instruments/trombone/Gn2.mid | Bin .../instruments/trombone/Gn3.mid | Bin .../instruments/trombone/Gn4.mid | Bin .../instruments/trombone/Gn5.mid | Bin .../instruments/trombone/Gn6.mid | Bin .../{ => runtime}/instruments/violin/Ab1.mid | Bin .../{ => runtime}/instruments/violin/Ab2.mid | Bin .../{ => runtime}/instruments/violin/Ab3.mid | Bin .../{ => runtime}/instruments/violin/Ab4.mid | Bin .../{ => runtime}/instruments/violin/Ab5.mid | Bin .../{ => runtime}/instruments/violin/Ab6.mid | Bin .../{ => runtime}/instruments/violin/Ab7.mid | Bin .../{ => runtime}/instruments/violin/Ab8.mid | Bin .../{ => runtime}/instruments/violin/An1.mid | Bin .../{ => runtime}/instruments/violin/An2.mid | Bin .../{ => runtime}/instruments/violin/An3.mid | Bin .../{ => runtime}/instruments/violin/An4.mid | Bin .../{ => runtime}/instruments/violin/An5.mid | Bin .../{ => runtime}/instruments/violin/An6.mid | Bin .../{ => runtime}/instruments/violin/An7.mid | Bin .../{ => runtime}/instruments/violin/An8.mid | Bin .../{ => runtime}/instruments/violin/Bb1.mid | Bin .../{ => runtime}/instruments/violin/Bb2.mid | Bin .../{ => runtime}/instruments/violin/Bb3.mid | Bin .../{ => runtime}/instruments/violin/Bb4.mid | Bin .../{ => runtime}/instruments/violin/Bb5.mid | Bin .../{ => runtime}/instruments/violin/Bb6.mid | Bin .../{ => runtime}/instruments/violin/Bb7.mid | Bin .../{ => runtime}/instruments/violin/Bb8.mid | Bin .../{ => runtime}/instruments/violin/Bn1.mid | Bin .../{ => runtime}/instruments/violin/Bn2.mid | Bin .../{ => runtime}/instruments/violin/Bn3.mid | Bin .../{ => runtime}/instruments/violin/Bn4.mid | Bin .../{ => runtime}/instruments/violin/Bn5.mid | Bin .../{ => runtime}/instruments/violin/Bn6.mid | Bin .../{ => runtime}/instruments/violin/Bn7.mid | Bin .../{ => runtime}/instruments/violin/Bn8.mid | Bin .../{ => runtime}/instruments/violin/Cn1.mid | Bin .../{ => runtime}/instruments/violin/Cn2.mid | Bin .../{ => runtime}/instruments/violin/Cn3.mid | Bin .../{ => runtime}/instruments/violin/Cn4.mid | Bin .../{ => runtime}/instruments/violin/Cn5.mid | Bin .../{ => runtime}/instruments/violin/Cn6.mid | Bin .../{ => runtime}/instruments/violin/Cn7.mid | Bin .../{ => runtime}/instruments/violin/Cn8.mid | Bin .../{ => runtime}/instruments/violin/Cn9.mid | Bin .../{ => runtime}/instruments/violin/Db1.mid | Bin .../{ => runtime}/instruments/violin/Db2.mid | Bin .../{ => runtime}/instruments/violin/Db3.mid | Bin .../{ => runtime}/instruments/violin/Db4.mid | Bin .../{ => runtime}/instruments/violin/Db5.mid | Bin .../{ => runtime}/instruments/violin/Db6.mid | Bin .../{ => runtime}/instruments/violin/Db7.mid | Bin .../{ => runtime}/instruments/violin/Db8.mid | Bin .../{ => runtime}/instruments/violin/Dn1.mid | Bin .../{ => runtime}/instruments/violin/Dn2.mid | Bin .../{ => runtime}/instruments/violin/Dn3.mid | Bin .../{ => runtime}/instruments/violin/Dn4.mid | Bin .../{ => runtime}/instruments/violin/Dn5.mid | Bin .../{ => runtime}/instruments/violin/Dn6.mid | Bin .../{ => runtime}/instruments/violin/Dn7.mid | Bin .../{ => runtime}/instruments/violin/Dn8.mid | Bin .../{ => runtime}/instruments/violin/Eb1.mid | Bin .../{ => runtime}/instruments/violin/Eb2.mid | Bin .../{ => runtime}/instruments/violin/Eb3.mid | Bin .../{ => runtime}/instruments/violin/Eb4.mid | Bin .../{ => runtime}/instruments/violin/Eb5.mid | Bin .../{ => runtime}/instruments/violin/Eb6.mid | Bin .../{ => runtime}/instruments/violin/Eb7.mid | Bin .../{ => runtime}/instruments/violin/Eb8.mid | Bin .../{ => runtime}/instruments/violin/En1.mid | Bin .../{ => runtime}/instruments/violin/En2.mid | Bin .../{ => runtime}/instruments/violin/En3.mid | Bin .../{ => runtime}/instruments/violin/En4.mid | Bin .../{ => runtime}/instruments/violin/En5.mid | Bin .../{ => runtime}/instruments/violin/En6.mid | Bin .../{ => runtime}/instruments/violin/En7.mid | Bin .../{ => runtime}/instruments/violin/En8.mid | Bin .../{ => runtime}/instruments/violin/Fn1.mid | Bin .../{ => runtime}/instruments/violin/Fn2.mid | Bin .../{ => runtime}/instruments/violin/Fn3.mid | Bin .../{ => runtime}/instruments/violin/Fn4.mid | Bin .../{ => runtime}/instruments/violin/Fn5.mid | Bin .../{ => runtime}/instruments/violin/Fn6.mid | Bin .../{ => runtime}/instruments/violin/Fn7.mid | Bin .../{ => runtime}/instruments/violin/Fn8.mid | Bin .../{ => runtime}/instruments/violin/Gb1.mid | Bin .../{ => runtime}/instruments/violin/Gb2.mid | Bin .../{ => runtime}/instruments/violin/Gb3.mid | Bin .../{ => runtime}/instruments/violin/Gb4.mid | Bin .../{ => runtime}/instruments/violin/Gb5.mid | Bin .../{ => runtime}/instruments/violin/Gb6.mid | Bin .../{ => runtime}/instruments/violin/Gb7.mid | Bin .../{ => runtime}/instruments/violin/Gb8.mid | Bin .../{ => runtime}/instruments/violin/Gn1.mid | Bin .../{ => runtime}/instruments/violin/Gn2.mid | Bin .../{ => runtime}/instruments/violin/Gn3.mid | Bin .../{ => runtime}/instruments/violin/Gn4.mid | Bin .../{ => runtime}/instruments/violin/Gn5.mid | Bin .../{ => runtime}/instruments/violin/Gn6.mid | Bin .../{ => runtime}/instruments/violin/Gn7.mid | Bin .../{ => runtime}/instruments/violin/Gn8.mid | Bin .../instruments/xylophone/Ab2.mid | Bin .../instruments/xylophone/Ab3.mid | Bin .../instruments/xylophone/Ab4.mid | Bin .../instruments/xylophone/Ab5.mid | Bin .../instruments/xylophone/Ab6.mid | Bin .../instruments/xylophone/An2.mid | Bin .../instruments/xylophone/An3.mid | Bin .../instruments/xylophone/An4.mid | Bin .../instruments/xylophone/An5.mid | Bin .../instruments/xylophone/An6.mid | Bin .../instruments/xylophone/Bb2.mid | Bin .../instruments/xylophone/Bb3.mid | Bin .../instruments/xylophone/Bb4.mid | Bin .../instruments/xylophone/Bb5.mid | Bin .../instruments/xylophone/Bb6.mid | Bin .../instruments/xylophone/Bn2.mid | Bin .../instruments/xylophone/Bn3.mid | Bin .../instruments/xylophone/Bn4.mid | Bin .../instruments/xylophone/Bn5.mid | Bin .../instruments/xylophone/Bn6.mid | Bin .../instruments/xylophone/Cn2.mid | Bin .../instruments/xylophone/Cn3.mid | Bin .../instruments/xylophone/Cn4.mid | Bin .../instruments/xylophone/Cn5.mid | Bin .../instruments/xylophone/Cn6.mid | Bin .../instruments/xylophone/Db2.mid | Bin .../instruments/xylophone/Db3.mid | Bin .../instruments/xylophone/Db4.mid | Bin .../instruments/xylophone/Db5.mid | Bin .../instruments/xylophone/Db6.mid | Bin .../instruments/xylophone/Dn2.mid | Bin .../instruments/xylophone/Dn3.mid | Bin .../instruments/xylophone/Dn4.mid | Bin .../instruments/xylophone/Dn5.mid | Bin .../instruments/xylophone/Dn6.mid | Bin .../instruments/xylophone/Eb2.mid | Bin .../instruments/xylophone/Eb3.mid | Bin .../instruments/xylophone/Eb4.mid | Bin .../instruments/xylophone/Eb5.mid | Bin .../instruments/xylophone/Eb6.mid | Bin .../instruments/xylophone/En2.mid | Bin .../instruments/xylophone/En3.mid | Bin .../instruments/xylophone/En4.mid | Bin .../instruments/xylophone/En5.mid | Bin .../instruments/xylophone/En6.mid | Bin .../instruments/xylophone/Fn2.mid | Bin .../instruments/xylophone/Fn3.mid | Bin .../instruments/xylophone/Fn4.mid | Bin .../instruments/xylophone/Fn5.mid | Bin .../instruments/xylophone/Fn6.mid | Bin .../instruments/xylophone/Gb2.mid | Bin .../instruments/xylophone/Gb3.mid | Bin .../instruments/xylophone/Gb4.mid | Bin .../instruments/xylophone/Gb5.mid | Bin .../instruments/xylophone/Gb6.mid | Bin .../instruments/xylophone/Gn2.mid | Bin .../instruments/xylophone/Gn3.mid | Bin .../instruments/xylophone/Gn4.mid | Bin .../instruments/xylophone/Gn5.mid | Bin .../instruments/xylophone/Gn6.mid | Bin .../tgui/interfaces/InstrumentEditor.tsx | 371 ++++++++++++++++ .../features/game_preferences/sound.tsx | 9 + vorestation.dme | 6 +- 916 files changed, 1155 insertions(+), 566 deletions(-) create mode 100644 code/__defines/dcs/signals/signals_music.dm create mode 100644 code/__defines/song.dm create mode 100644 code/modules/instruments/piano_synth.dm rename code/modules/instruments/items_ch.dm => modular_chomp/code/modules/instruments/items.dm (100%) create mode 100644 modular_chomp/code/modules/instruments/stationary.dm create mode 100644 sound/runtime/README.md rename sound/{ => runtime}/instruments/accordion/Ab2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Ab3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Ab4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Ab5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Ab6.mid (100%) rename sound/{ => runtime}/instruments/accordion/An2.mid (100%) rename sound/{ => runtime}/instruments/accordion/An3.mid (100%) rename sound/{ => runtime}/instruments/accordion/An4.mid (100%) rename sound/{ => runtime}/instruments/accordion/An5.mid (100%) rename sound/{ => runtime}/instruments/accordion/An6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bb2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bb3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bb4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bb5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bb6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bn2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bn3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bn4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bn5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Bn6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Cn2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Cn3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Cn4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Cn5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Cn6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Db2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Db3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Db4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Db5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Db6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Dn2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Dn3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Dn4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Dn5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Dn6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Eb2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Eb3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Eb4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Eb5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Eb6.mid (100%) rename sound/{ => runtime}/instruments/accordion/En2.mid (100%) rename sound/{ => runtime}/instruments/accordion/En3.mid (100%) rename sound/{ => runtime}/instruments/accordion/En4.mid (100%) rename sound/{ => runtime}/instruments/accordion/En5.mid (100%) rename sound/{ => runtime}/instruments/accordion/En6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Fn2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Fn3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Fn4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Fn5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Fn6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gb2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gb3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gb4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gb5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gb6.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gn2.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gn3.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gn4.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gn5.mid (100%) rename sound/{ => runtime}/instruments/accordion/Gn6.mid (100%) rename sound/{ => runtime}/instruments/banjo/Ab3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Ab4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Ab5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/An3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/An4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/An5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bb3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bb4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bb5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bn2.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bn3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bn4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Bn5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Cn3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Cn4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Cn5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Cn6.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Db3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Db4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Db5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Db6.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Dn3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Dn4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Dn5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Dn6.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Eb3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Eb4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Eb5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/En3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/En4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/En5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Fn3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Fn4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Fn5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gb3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gb4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gb5.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gn3.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gn4.ogg (100%) rename sound/{ => runtime}/instruments/banjo/Gn5.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Ab2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Ab3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Ab4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/An2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/An3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/An4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bb2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bb3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bb4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bn2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bn3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Bn4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Cn3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Cn4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Cn5.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Db3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Db4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Db5.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Dn3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Dn4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Dn5.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Eb3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Eb4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Eb5.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/En2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/En3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/En4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Fn2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Fn3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Fn4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gb2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gb3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gb4.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gn2.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gn3.ogg (100%) rename sound/{ => runtime}/instruments/bikehorn/Gn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Ab4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Ab5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Ab6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/An4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/An5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/An6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bb4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bb5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bb6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bn5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Bn6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Cn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Cn5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Cn6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Cn7.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Db4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Db5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Db6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Dn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Dn5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Dn6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Eb4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Eb5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Eb6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/En4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/En5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/En6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Fn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Fn5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Fn6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gb4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gb5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gb6.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gn4.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gn5.ogg (100%) rename sound/{ => runtime}/instruments/eguitar/Gn6.ogg (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Ab7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/An7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bb7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Bn7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Cn7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Db7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Dn7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Eb7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/En7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Fn7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gb7.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn2.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn3.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn4.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn5.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn6.mid (100%) rename sound/{ => runtime}/instruments/glockenspiel/Gn7.mid (100%) rename sound/{ => runtime}/instruments/guitar/Ab3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Ab4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Ab5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Ab6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/An3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/An4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/An5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/An6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bb3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bb4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bb5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bb6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bn3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bn4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bn5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Bn6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cb4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cb5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cb6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cb7.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cn4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cn5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Cn6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Db4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Db5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Db6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Dn4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Dn5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Dn6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Eb4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Eb5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Eb6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/En3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/En4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/En5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/En6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fb3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fb4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fb5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fb6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fn3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fn4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fn5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Fn6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gb3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gb4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gb5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gb6.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gn3.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gn4.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gn5.ogg (100%) rename sound/{ => runtime}/instruments/guitar/Gn6.ogg (100%) rename sound/{ => runtime}/instruments/harmonica/Ab2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Ab3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Ab4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Ab5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Ab6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/An2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/An3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/An4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/An5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/An6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bb2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bb3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bb4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bb5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bb6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bn2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bn3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bn4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bn5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Bn6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Cn7.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Db2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Db3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Db4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Db5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Db6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Dn2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Dn3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Dn4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Dn5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Dn6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Eb2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Eb3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Eb4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Eb5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Eb6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/En2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/En3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/En4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/En5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/En6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Fn2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Fn3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Fn4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Fn5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Fn6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gb2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gb3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gb4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gb5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gb6.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gn2.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gn3.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gn4.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gn5.mid (100%) rename sound/{ => runtime}/instruments/harmonica/Gn6.mid (100%) rename sound/{ => runtime}/instruments/piano/Ab2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Ab8.ogg (100%) rename sound/{ => runtime}/instruments/piano/An1.ogg (100%) rename sound/{ => runtime}/instruments/piano/An2.ogg (100%) rename sound/{ => runtime}/instruments/piano/An3.ogg (100%) rename sound/{ => runtime}/instruments/piano/An4.ogg (100%) rename sound/{ => runtime}/instruments/piano/An5.ogg (100%) rename sound/{ => runtime}/instruments/piano/An6.ogg (100%) rename sound/{ => runtime}/instruments/piano/An7.ogg (100%) rename sound/{ => runtime}/instruments/piano/An8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb1.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bb8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn1.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Bn8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Cn9.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Db8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Dn8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Eb8.ogg (100%) rename sound/{ => runtime}/instruments/piano/En2.ogg (100%) rename sound/{ => runtime}/instruments/piano/En3.ogg (100%) rename sound/{ => runtime}/instruments/piano/En4.ogg (100%) rename sound/{ => runtime}/instruments/piano/En5.ogg (100%) rename sound/{ => runtime}/instruments/piano/En6.ogg (100%) rename sound/{ => runtime}/instruments/piano/En7.ogg (100%) rename sound/{ => runtime}/instruments/piano/En8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Fn8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gb8.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn2.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn3.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn4.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn5.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn6.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn7.ogg (100%) rename sound/{ => runtime}/instruments/piano/Gn8.ogg (100%) rename sound/{ => runtime}/instruments/recorder/Ab2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Ab3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Ab4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Ab5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Ab6.mid (100%) rename sound/{ => runtime}/instruments/recorder/An2.mid (100%) rename sound/{ => runtime}/instruments/recorder/An3.mid (100%) rename sound/{ => runtime}/instruments/recorder/An4.mid (100%) rename sound/{ => runtime}/instruments/recorder/An5.mid (100%) rename sound/{ => runtime}/instruments/recorder/An6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bb2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bb3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bb4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bb5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bb6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bn2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bn3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bn4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bn5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Bn6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Cn7.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Db7.mid (100%) rename sound/{ => runtime}/instruments/recorder/Dn2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Dn3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Dn4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Dn5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Dn6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Eb2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Eb3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Eb4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Eb5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Eb6.mid (100%) rename sound/{ => runtime}/instruments/recorder/En2.mid (100%) rename sound/{ => runtime}/instruments/recorder/En3.mid (100%) rename sound/{ => runtime}/instruments/recorder/En4.mid (100%) rename sound/{ => runtime}/instruments/recorder/En5.mid (100%) rename sound/{ => runtime}/instruments/recorder/En6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Fn2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Fn3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Fn4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Fn5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Fn6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gb2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gb3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gb4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gb5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gb6.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gn2.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gn3.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gn4.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gn5.mid (100%) rename sound/{ => runtime}/instruments/recorder/Gn6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Ab2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Ab3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Ab4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Ab5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Ab6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/An2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/An3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/An4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/An5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/An6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bb2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bb3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bb4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bb5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bb6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bn2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bn3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bn4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bn5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Bn6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Cn2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Cn3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Cn4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Cn5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Cn6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Db2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Db3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Db4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Db5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Db6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Dn2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Dn3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Dn4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Dn5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Dn6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Eb2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Eb3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Eb4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Eb5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Eb6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/En2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/En3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/En4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/En5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/En6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Fn2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Fn3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Fn4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Fn5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Fn6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gb2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gb3.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gb4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gb5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gb6.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gn2.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gn4.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gn5.mid (100%) rename sound/{ => runtime}/instruments/saxophone/Gn6.mid (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_brass/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_brass/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_brass/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_brass/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg (100%) create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/LICENSE.txt create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/c2.ogg create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/c3.ogg create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/c4.ogg create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/c5.ogg create mode 100644 sound/runtime/instruments/synthesis_samples/meowsynth/c6.ogg rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_church/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_church/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_church/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_church/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c2.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c3.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c4.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c5.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c6.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c7.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/piano/fluid_piano/c8.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/tones/Sawtooth.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/tones/Sine.ogg (100%) rename sound/{ => runtime}/instruments/synthesis_samples/tones/Square.ogg (100%) rename sound/{ => runtime}/instruments/trombone/Ab2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Ab3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Ab4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Ab5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Ab6.mid (100%) rename sound/{ => runtime}/instruments/trombone/An2.mid (100%) rename sound/{ => runtime}/instruments/trombone/An3.mid (100%) rename sound/{ => runtime}/instruments/trombone/An4.mid (100%) rename sound/{ => runtime}/instruments/trombone/An5.mid (100%) rename sound/{ => runtime}/instruments/trombone/An6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bb2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bb3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bb4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bb5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bb6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bn2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bn3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bn4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bn5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Bn6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Cn2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Cn3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Cn4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Cn5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Cn6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Db2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Db3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Db4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Db5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Db6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Dn2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Dn3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Dn4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Dn5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Dn6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Eb2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Eb3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Eb4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Eb5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Eb6.mid (100%) rename sound/{ => runtime}/instruments/trombone/En2.mid (100%) rename sound/{ => runtime}/instruments/trombone/En3.mid (100%) rename sound/{ => runtime}/instruments/trombone/En4.mid (100%) rename sound/{ => runtime}/instruments/trombone/En5.mid (100%) rename sound/{ => runtime}/instruments/trombone/En6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Fn2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Fn3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Fn4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Fn5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Fn6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gb2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gb3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gb4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gb5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gb6.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gn2.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gn3.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gn4.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gn5.mid (100%) rename sound/{ => runtime}/instruments/trombone/Gn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab1.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab2.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab3.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab4.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab5.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab6.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab7.mid (100%) rename sound/{ => runtime}/instruments/violin/Ab8.mid (100%) rename sound/{ => runtime}/instruments/violin/An1.mid (100%) rename sound/{ => runtime}/instruments/violin/An2.mid (100%) rename sound/{ => runtime}/instruments/violin/An3.mid (100%) rename sound/{ => runtime}/instruments/violin/An4.mid (100%) rename sound/{ => runtime}/instruments/violin/An5.mid (100%) rename sound/{ => runtime}/instruments/violin/An6.mid (100%) rename sound/{ => runtime}/instruments/violin/An7.mid (100%) rename sound/{ => runtime}/instruments/violin/An8.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb1.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb2.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb3.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb4.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb5.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb6.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb7.mid (100%) rename sound/{ => runtime}/instruments/violin/Bb8.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn1.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn2.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn3.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn4.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn5.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn7.mid (100%) rename sound/{ => runtime}/instruments/violin/Bn8.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn1.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn2.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn3.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn4.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn5.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn7.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn8.mid (100%) rename sound/{ => runtime}/instruments/violin/Cn9.mid (100%) rename sound/{ => runtime}/instruments/violin/Db1.mid (100%) rename sound/{ => runtime}/instruments/violin/Db2.mid (100%) rename sound/{ => runtime}/instruments/violin/Db3.mid (100%) rename sound/{ => runtime}/instruments/violin/Db4.mid (100%) rename sound/{ => runtime}/instruments/violin/Db5.mid (100%) rename sound/{ => runtime}/instruments/violin/Db6.mid (100%) rename sound/{ => runtime}/instruments/violin/Db7.mid (100%) rename sound/{ => runtime}/instruments/violin/Db8.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn1.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn2.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn3.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn4.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn5.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn7.mid (100%) rename sound/{ => runtime}/instruments/violin/Dn8.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb1.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb2.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb3.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb4.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb5.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb6.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb7.mid (100%) rename sound/{ => runtime}/instruments/violin/Eb8.mid (100%) rename sound/{ => runtime}/instruments/violin/En1.mid (100%) rename sound/{ => runtime}/instruments/violin/En2.mid (100%) rename sound/{ => runtime}/instruments/violin/En3.mid (100%) rename sound/{ => runtime}/instruments/violin/En4.mid (100%) rename sound/{ => runtime}/instruments/violin/En5.mid (100%) rename sound/{ => runtime}/instruments/violin/En6.mid (100%) rename sound/{ => runtime}/instruments/violin/En7.mid (100%) rename sound/{ => runtime}/instruments/violin/En8.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn1.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn2.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn3.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn4.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn5.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn7.mid (100%) rename sound/{ => runtime}/instruments/violin/Fn8.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb1.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb2.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb3.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb4.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb5.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb6.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb7.mid (100%) rename sound/{ => runtime}/instruments/violin/Gb8.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn1.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn2.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn3.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn4.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn5.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn6.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn7.mid (100%) rename sound/{ => runtime}/instruments/violin/Gn8.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Ab2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Ab3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Ab4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Ab5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Ab6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/An2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/An3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/An4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/An5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/An6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bb2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bb3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bb4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bb5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bb6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bn2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bn3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bn4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bn5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Bn6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Cn2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Cn3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Cn4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Cn5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Cn6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Db2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Db3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Db4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Db5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Db6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Dn2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Dn3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Dn4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Dn5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Dn6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Eb2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Eb3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Eb4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Eb5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Eb6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/En2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/En3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/En4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/En5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/En6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Fn2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Fn3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Fn4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Fn5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Fn6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gb2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gb3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gb4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gb5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gb6.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gn2.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gn3.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gn4.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gn5.mid (100%) rename sound/{ => runtime}/instruments/xylophone/Gn6.mid (100%) create mode 100644 tgui/packages/tgui/interfaces/InstrumentEditor.tsx diff --git a/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm b/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm index 06d8b734a4..52a5559ec0 100644 --- a/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__defines/dcs/signals/signals_atom/signals_atom_main.dm @@ -2,5 +2,8 @@ // When the signal is called: (signal arguments) // All signals send the source datum of the signal as the first argument +///when an atom starts playing a song datum (datum/song) +#define COMSIG_ATOM_STARTING_INSTRUMENT "atom_starting_instrument" + ///When the transform or an atom is varedited through vv topic. #define COMSIG_ATOM_VV_MODIFY_TRANSFORM "atom_vv_modify_transform" diff --git a/code/__defines/dcs/signals/signals_music.dm b/code/__defines/dcs/signals/signals_music.dm new file mode 100644 index 0000000000..2f15f4e632 --- /dev/null +++ b/code/__defines/dcs/signals/signals_music.dm @@ -0,0 +1,12 @@ +// /datum/song signals + +///sent to the instrument when a song starts playing: (datum/starting_song, atom/player) +#define COMSIG_INSTRUMENT_START "instrument_start" +///sent to the instrument when a song stops playing +#define COMSIG_INSTRUMENT_END "instrument_end" +///sent to the instrument on /should_stop_playing(): (atom/player). Return values can be found in DEFINES/song.dm +#define COMSIG_INSTRUMENT_SHOULD_STOP_PLAYING "instrument_should_stop_playing" +///sent to the instrument (and player if available) when a song repeats (datum/song) +#define COMSIG_INSTRUMENT_REPEAT "instrument_repeat" +///sent to the instrument when tempo changes, skipped on new. (datum/song) +#define COMSIG_INSTRUMENT_TEMPO_CHANGE "instrument_tempo_change" diff --git a/code/__defines/instruments.dm b/code/__defines/instruments.dm index fa09eee0dd..bf54ddf1b9 100644 --- a/code/__defines/instruments.dm +++ b/code/__defines/instruments.dm @@ -6,6 +6,8 @@ /// Max number of playing notes per instrument. #define CHANNELS_PER_INSTRUMENT 128 +/// Minimum length a note should ever go for +#define INSTRUMENT_MIN_TOTAL_SUSTAIN 0.1 /// Maximum length a note should ever go for #define INSTRUMENT_MAX_TOTAL_SUSTAIN (5 SECONDS) @@ -16,8 +18,8 @@ /// Minimum volume for when the sound is considered dead. #define INSTRUMENT_MIN_SUSTAIN_DROPOFF 0 -#define SUSTAIN_LINEAR 1 -#define SUSTAIN_EXPONENTIAL 2 +#define SUSTAIN_LINEAR "Linear" +#define SUSTAIN_EXPONENTIAL "Exponential" // /datum/instrument instrument_flags #define INSTRUMENT_LEGACY (1<<0) //Legacy instrument. Implies INSTRUMENT_DO_NOT_AUTOSAMPLE diff --git a/code/__defines/song.dm b/code/__defines/song.dm new file mode 100644 index 0000000000..782a7923ea --- /dev/null +++ b/code/__defines/song.dm @@ -0,0 +1,17 @@ +#define MUSICIAN_HEARCHECK_MINDELAY 4 +#define MUSIC_MAXLINES 1000 +#define MUSIC_MAXLINECHARS 300 + +#define BPM_TO_TEMPO_SETTING(value) (600 / round(value, 1)) + +//Return values of song/should_stop_playing() + +///When the song should stop being played +#define STOP_PLAYING 1 +///Will ignore the instrument checks and play the song anyway. +#define IGNORE_INSTRUMENT_CHECKS 2 + +///it's what monkeys play! +#define MONKEY_SONG "BPM: 200\nC4/0,14,C,A4-F2,F3,A3,F-F2,A-F,F4,G4,F,D4-Bb2-G2\nD3,G3,D-G2,G3-G2,D,D4-G3,D,B4-B2,G,B3,G-B2,B3-B2\nG4,A4,G,E4-C3,E3,G3,E-C,G-C,E,E4-G,E,C5-E-A3,C4\nA-E3,C,E4-C3,A4-C4,B4-A3-A2,C5-C4,D5-F-B3,D4,B-F3\nD,F4-D3,D4,F-B-B2,G4-D,A4-C-F3,F,C/2,B3/2,A3-C3/2\nB/2,C4,E-C3,F4,G-C,F-F3,F-C,C4/2,B/2,A-A2/2,G3/2\nF/I" +///song played by the mook bard +#define MOOK_SONG "BPM: 240\nA5,B5,C#6,D6,E6/0.17,A/0.5,A/0.25,A3/0.25\nA4/0.25,C#5/0.25,E5/0.25,A/0.25,C#/0.25,E/0.12\nC#6/0.25,C#/0.25,E6/0.25,A3/0.25,A4/0.25\nC#5/0.25,E5/0.25,A/0.25,C#/0.25,E/0.25,D/0.25\nG6/0.25,D/0.17,F6/0.17,C#6/0.5,E6/0.5,D4/0.25\nA/0.25,D5/0.25,F5/0.25,A/0.25,D/0.25,F/0.25\nD6/0.08,F6/0.08,D4/0.25,A/0.25,D5/0.25,F5/0.25\nCn4/0.2,B/0.17,D6/0.17,G5/0.5,G/0.25,B3/0.25\nD4/0.25,G4/0.25,B4/0.25,D/0.25,G/0.25,B/0.12\nB5/0.25,B/0.25,D6/0.25,G3/0.25,G4/0.25,B4/0.25\nF/0.25,G/0.25,B/0.25,F/0.25,D/0.25,F6/0.25\nC6/0.17,E/0.17,B5/0.5,D#/0.5,C4/0.25,G/0.25\nC5/0.25,E5/0.25,G/0.25,C/0.25,E/0.25,C6/0.08\nE6/0.08,C4/0.25,Dn4/0.25,E4/0.25,A5/0.17,B/0.5\nC6/0.25,F5/0.08,F4/0.08,C5/0.08,E5/0.12,G5/0.12\nC6/0.25,E6/0.25,E4/0.08,C5/0.08,B/0.17,F6/0.17\nE6/0.5,B/0.25,E4/0.08,G#4/0.08,C6/0.17,D6/0.5\nE6/0.25,A3/0.25,E4/0.25,C5/0.25,Gn3/0.25\nF5/0.12,A5/0.12,A6/0.25,F3/0.25,F4/0.12,A4/0.12\nC/0.12,F6/0.17,A6/0.17,G#6/0.5,A/0.25,F3/0.25\nF4/0.12,A4/0.12,D#5/0.12,B/0.17,G#/0.17,B6/0.5\nB5/0.25,G#/0.25,E3/0.25,E4/0.12,G#4/0.12\nDn/0.12,E6/0.08,E3/0.25,F#3/0.25,G#3/0.25\nE5/0.17,A5/0.17,E/0.5,E/0.25,A3/0.25,C#4/0.25\nE4/0.25,C#/0.25,E/0.12,A5/0.5,B/0.5,C#6/0.5\nD6/0.5,A3/0.25,C#4/0.25,E/0.25,C#/0.25,E/0.25\nE6/0.08,Gn/0.25,E4/0.25,A4/0.25,C#5/0.25,E/0.25\nA/0.25,C#/0.25,E6/0.17,E/0.5,Fn6/0.5,G6/0.5\nG3/0.25,E4/0.25,A/0.25,C#/0.25,E/0.25,A/0.25\nC#/0.25,F/0.08,A6/0.08,F3/0.25,F4/0.25,A4/0.25\nCn/0.25,F/0.25,A/0.25,C/0.25,G6/0.12,A6/0.12\nG A G F6 G3/0.25 D4/0.25 G4/0.25 B4/0.25 D/0.25\nG/0.25 B/0.25 E6/0.12 G6/0.12 F/0.71 G/0.71 F/0.71\nE3/0.25 E4/0.25 G4/0.25 B/0.25 E/0.25 G/0.25 B/0.25\nA5/0.08 E6/0.08 A3/0.25 E4/0.25 A4/0.25 C#/0.25 E/0.25 A/0.25 C#/0.25 D6/0.17 E6/0.5 F/0.25 B3/0.25 D4/0.12 F4/0.12 B4/0.12 F6/0.25 E/0.25 D6/0.25 G#3/0.25 E4/0.12 G#4/0.12 B/0.12 Cn6/0.12 D/0.25 A3/0.25 A4/0.25 C5/0.25 E5/0.25 G#3/0.25 Gn/0.25 C4/0.25 E4/0.25 A/" diff --git a/code/__defines/text.dm b/code/__defines/text.dm index 35b085e043..f1bbca73a4 100644 --- a/code/__defines/text.dm +++ b/code/__defines/text.dm @@ -15,6 +15,10 @@ /// Removes everything enclose in < and > inclusive of the bracket, and limits the length of the message. #define STRIP_HTML_FULL(text, limit) (GLOB.html_tags.Replace(copytext(text, 1, limit), "")) +/// BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification) +/// We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it. +#define LOWER_TEXT(thing) lowertext(UNLINT("[thing]")) + /// Removes characters incompatible with file names. #define SANITIZE_FILENAME(text) (GLOB.filename_forbidden_chars.Replace(text, "")) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 400959bfa4..35d0441b11 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -601,6 +601,113 @@ GLOBAL_LIST_EMPTY(text_tag_cache) else return trim(html_encode(user_input), max_length) +#define NO_CHARS_DETECTED 0 +#define SPACES_DETECTED 1 +#define SYMBOLS_DETECTED 2 +#define NUMBERS_DETECTED 3 +#define LETTERS_DETECTED 4 + +/** + * Filters out undesirable characters from names. + * + * * strict - return null immediately instead of filtering out + * * allow_numbers - allows numbers and common special characters - used for silicon/other weird things names + * * cap_after_symbols - words like Bob's will be capitalized to Bob'S by default. False is good for titles. + */ +/proc/reject_bad_name(t_in, allow_numbers = FALSE, max_length = MAX_NAME_LEN, ascii_only = TRUE, strict = FALSE, cap_after_symbols = TRUE) + if(!t_in) + return //Rejects the input if it is null + + var/number_of_alphanumeric = 0 + var/last_char_group = NO_CHARS_DETECTED + var/t_out = "" + var/t_len = length(t_in) + var/charcount = 0 + var/char = "" + + // This is a sanity short circuit, if the users name is three times the maximum allowable length of name + // We bail out on trying to process the name at all, as it could be a bug or malicious input and we don't + // Want to iterate all of it. + if(t_len > 3 * MAX_NAME_LEN) + return + for(var/i = 1, i <= t_len, i += length(char)) + char = t_in[i] + switch(text2ascii(char)) + + // A .. Z + if(65 to 90) //Uppercase Letters + number_of_alphanumeric++ + last_char_group = LETTERS_DETECTED + + // a .. z + if(97 to 122) //Lowercase Letters + if(last_char_group == NO_CHARS_DETECTED || last_char_group == SPACES_DETECTED || cap_after_symbols && last_char_group == SYMBOLS_DETECTED) //start of a word + char = uppertext(char) + number_of_alphanumeric++ + last_char_group = LETTERS_DETECTED + + // 0 .. 9 + if(48 to 57) //Numbers + if(!allow_numbers) //allow name to start with number if AI/Borg + if(strict) + return + continue + number_of_alphanumeric++ + last_char_group = NUMBERS_DETECTED + // ' - . + if(39,45,46) //Common name punctuation + if(last_char_group == NO_CHARS_DETECTED) + if(strict) + return + continue + last_char_group = SYMBOLS_DETECTED + + // ~ | @ : # $ % & * + + if(126,124,64,58,35,36,37,38,42,43) //Other symbols that we'll allow (mainly for AI) + if(last_char_group == NO_CHARS_DETECTED || !allow_numbers) //suppress at start of string + if(strict) + return + continue + last_char_group = SYMBOLS_DETECTED + + //Space + if(32) + if(last_char_group == NO_CHARS_DETECTED || last_char_group == SPACES_DETECTED) //suppress double-spaces and spaces at start of string + if(strict) + return + continue + last_char_group = SPACES_DETECTED + + if(127 to INFINITY) + if(ascii_only) + if(strict) + return + continue + last_char_group = SYMBOLS_DETECTED //for now, we'll treat all non-ascii characters like symbols even though most are letters + + else + continue + t_out += char + charcount++ + if(charcount >= max_length) + break + + if(number_of_alphanumeric < 2) + return //protects against tiny names like "A" and also names like "' ' ' ' ' ' ' '" + + if(last_char_group == SPACES_DETECTED) + t_out = copytext_char(t_out, 1, -1) //removes the last character (in this case a space) + + //if(!filter_name_ic(t_out)) FIXME + // return + + return t_out + +#undef NO_CHARS_DETECTED +#undef SPACES_DETECTED +#undef NUMBERS_DETECTED +#undef LETTERS_DETECTED + //Adds 'char' ahead of 'text' until there are 'count' characters total /proc/add_leading(text, count, char = " ") text = "[text]" diff --git a/code/controllers/subsystems/processing/instruments.dm b/code/controllers/subsystems/processing/instruments.dm index af6bacc2fc..fd486d419e 100644 --- a/code/controllers/subsystems/processing/instruments.dm +++ b/code/controllers/subsystems/processing/instruments.dm @@ -19,6 +19,10 @@ PROCESSING_SUBSYSTEM_DEF(instruments) var/static/current_instrument_channels = 0 /// Single cached list for synthesizer instrument ids, so you don't have to have a new list with every synthesizer. var/static/list/synthesizer_instrument_ids + var/static/list/note_sustain_modes = list( + SUSTAIN_LINEAR, + SUSTAIN_EXPONENTIAL, + ) /datum/controller/subsystem/processing/instruments/Initialize() initialize_instrument_data() @@ -32,10 +36,11 @@ PROCESSING_SUBSYSTEM_DEF(instruments) songs -= S /datum/controller/subsystem/processing/instruments/proc/initialize_instrument_data() - for(var/datum/instrument/I as anything in subtypesof(/datum/instrument)) - if(initial(I.instrument_type) == I) + for(var/path in subtypesof(/datum/instrument)) + var/datum/instrument/I = path + if(initial(I.abstract_type) == path) continue - I = new I + I = new path I.Initialize() if(!I.id) qdel(I) diff --git a/code/game/objects/items/devices/hacktool.dm b/code/game/objects/items/devices/hacktool.dm index f67fd9bd0b..2847023a8c 100644 --- a/code/game/objects/items/devices/hacktool.dm +++ b/code/game/objects/items/devices/hacktool.dm @@ -119,7 +119,7 @@ if(hack_result && in_hack_mode) to_chat(user, span_notice("Your hacking attempt was succesful!")) - user.playsound_local(get_turf(src), 'sound/instruments/piano/An6.ogg', 50) + user.playsound_local(get_turf(src), 'sound/runtime/instruments/piano/An6.ogg', 50) else to_chat(user, span_warning("Your hacking attempt failed!")) return 0 diff --git a/code/modules/client/preferences/types/game/sound.dm b/code/modules/client/preferences/types/game/sound.dm index a4f03bde4e..9008db96d3 100644 --- a/code/modules/client/preferences/types/game/sound.dm +++ b/code/modules/client/preferences/types/game/sound.dm @@ -255,3 +255,17 @@ /datum/preference/numeric/living/jukebox_volume/apply_to_client_updated(client/client, value) client?.media?.update_volume(value) + +/datum/preference/numeric/volume + abstract_type = /datum/preference/numeric/volume + minimum = 0 + maximum = 100 + +/datum/preference/numeric/volume/create_default_value() + return maximum + +/// Controls hearing instruments +/datum/preference/numeric/volume/sound_instruments + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "sound_instruments" + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm index cf37e25c9b..2f3929fdfa 100644 --- a/code/modules/instruments/instrument_data/_instrument_data.dm +++ b/code/modules/instruments/instrument_data/_instrument_data.dm @@ -17,14 +17,14 @@ * Since songs cache them while playing, there isn't realistic issues regarding performance from accessing. */ /datum/instrument + /// Used for categorization subtypes + abstract_type = /datum/instrument /// Name of the instrument var/name = "Generic instrument" /// Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead. var/id /// Category var/category = "Unsorted" - /// Used for categorization subtypes - var/instrument_type = /datum/instrument /// Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127 var/list/real_samples /// assoc list key = /datum/instrument_key. do not fill this yourself! @@ -70,7 +70,8 @@ /datum/instrument/Destroy() SSinstruments.instrument_data -= id - for(var/datum/song/S as anything in songs_using) + for(var/i in songs_using) + var/datum/song/S = i S.set_instrument(null) real_samples = null samples = null diff --git a/code/modules/instruments/instrument_data/brass.dm b/code/modules/instruments/instrument_data/brass.dm index 37cd981aa2..f40a2fd571 100644 --- a/code/modules/instruments/instrument_data/brass.dm +++ b/code/modules/instruments/instrument_data/brass.dm @@ -1,26 +1,26 @@ /datum/instrument/brass name = "Generic brass instrument" category = "Brass" - instrument_type = /datum/instrument/brass + abstract_type = /datum/instrument/brass /datum/instrument/brass/crisis_section name = "Crisis Brass Section" id = "crbrass" - real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg', - "48"='sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg', - "60"='sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg', - "72"='sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c5.ogg') /datum/instrument/brass/crisis_trombone name = "Crisis Trombone" id = "crtrombone" - real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_trombone/c2.ogg', - "48"='sound/instruments/synthesis_samples/brass/crisis_trombone/c3.ogg', - "60"='sound/instruments/synthesis_samples/brass/crisis_trombone/c4.ogg', - "72"='sound/instruments/synthesis_samples/brass/crisis_trombone/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/c5.ogg') /datum/instrument/brass/crisis_trumpet name = "Crisis Trumpet" id = "crtrumpet" - real_samples = list("60"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c4.ogg', - "72"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c5.ogg') + real_samples = list("60"='sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/c5.ogg') diff --git a/code/modules/instruments/instrument_data/chromatic_percussion.dm b/code/modules/instruments/instrument_data/chromatic_percussion.dm index 3a5bed2396..c4554a1d5c 100644 --- a/code/modules/instruments/instrument_data/chromatic_percussion.dm +++ b/code/modules/instruments/instrument_data/chromatic_percussion.dm @@ -1,31 +1,31 @@ /datum/instrument/chromatic name = "Generic chromatic percussion instrument" category = "Chromatic percussion" - instrument_type = /datum/instrument/chromatic + abstract_type = /datum/instrument/chromatic /datum/instrument/chromatic/vibraphone1 name = "Crisis Vibraphone" id = "crvibr" - real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg', - "48"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg', - "60"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg', - "72"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg') /datum/instrument/chromatic/musicbox1 name = "SGM Music Box" id = "sgmmbox" - real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg', - "48"='sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg', - "60"='sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg', - "72"='sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg') /datum/instrument/chromatic/fluid_celeste name = "FluidR3 Celeste" id = "r3celeste" - real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c2.ogg', - "48"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c3.ogg', - "60"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c4.ogg', - "72"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c5.ogg', - "84"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c6.ogg', - "96"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c7.ogg', - "108"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c8.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c6.ogg', + "96"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c7.ogg', + "108"='sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/c8.ogg') diff --git a/code/modules/instruments/instrument_data/fun.dm b/code/modules/instruments/instrument_data/fun.dm index 0b6fc696d8..8ab844cfad 100644 --- a/code/modules/instruments/instrument_data/fun.dm +++ b/code/modules/instruments/instrument_data/fun.dm @@ -1,7 +1,7 @@ /datum/instrument/fun name = "Generic Fun Instrument" category = "Fun" - instrument_type = /datum/instrument/fun + abstract_type = /datum/instrument/fun /datum/instrument/fun/honk name = "!!HONK!!" @@ -18,6 +18,15 @@ id = "chime" real_samples = list("79"='sound/machines/chime.ogg') +/datum/instrument/fun/meowsynth + name = "MeowSynth" + id = "meowsynth" + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/meowsynth/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/meowsynth/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/meowsynth/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/meowsynth/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/meowsynth/c6.ogg') + /datum/instrument/fun/mothscream name = "Moth Scream" id = "mothscream" diff --git a/code/modules/instruments/instrument_data/guitar.dm b/code/modules/instruments/instrument_data/guitar.dm index 07532aa8be..bc34cf61bc 100644 --- a/code/modules/instruments/instrument_data/guitar.dm +++ b/code/modules/instruments/instrument_data/guitar.dm @@ -1,36 +1,36 @@ /datum/instrument/guitar name = "Generic guitar-like instrument" category = "Guitar" - instrument_type = /datum/instrument/guitar + abstract_type = /datum/instrument/guitar /datum/instrument/guitar/steel_crisis name = "Crisis Steel String Guitar" id = "csteelgt" - real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg', - "48"='sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg', - "60"='sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg', - "72"='sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg') /datum/instrument/guitar/nylon_crisis name = "Crisis Nylon String Guitar" id = "cnylongt" - real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg', - "48"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg', - "60"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg', - "72"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg') /datum/instrument/guitar/clean_crisis name = "Crisis Clean Guitar" id = "ccleangt" - real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_clean/c2.ogg', - "48"='sound/instruments/synthesis_samples/guitar/crisis_clean/c3.ogg', - "60"='sound/instruments/synthesis_samples/guitar/crisis_clean/c4.ogg', - "72"='sound/instruments/synthesis_samples/guitar/crisis_clean/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/c5.ogg') /datum/instrument/guitar/muted_crisis name = "Crisis Muted Guitar" id = "cmutedgt" - real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_muted/c2.ogg', - "48"='sound/instruments/synthesis_samples/guitar/crisis_muted/c3.ogg', - "60"='sound/instruments/synthesis_samples/guitar/crisis_muted/c4.ogg', - "72"='sound/instruments/synthesis_samples/guitar/crisis_muted/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/c5.ogg') diff --git a/code/modules/instruments/instrument_data/hardcoded.dm b/code/modules/instruments/instrument_data/hardcoded.dm index 1138fd7d8c..28423d88b8 100644 --- a/code/modules/instruments/instrument_data/hardcoded.dm +++ b/code/modules/instruments/instrument_data/hardcoded.dm @@ -2,7 +2,7 @@ //SONGS WILL BE AUTOMATICALLY SWITCHED TO LEGACY MODE IF THEY USE THIS KIND OF INSTRUMENT! //I'd prefer these stayed. They sound different from the mechanical synthesis of synthed instruments, and I quite like them that way. It's not legacy, it's hardcoded, old style. - kevinz000 /datum/instrument/hardcoded - instrument_type = /datum/instrument/hardcoded + abstract_type = /datum/instrument/hardcoded category = "Non-Synthesized" instrument_flags = INSTRUMENT_LEGACY volume_multiplier = 1 //not as loud as synth'd @@ -23,7 +23,7 @@ name = "Electric Guitar" id = "eguitar" legacy_instrument_ext = "ogg" - legacy_instrument_path = "eguitar" + legacy_instrument_path = "electric_guitar" /datum/instrument/hardcoded/glockenspiel name = "Glockenspiel" diff --git a/code/modules/instruments/instrument_data/organ.dm b/code/modules/instruments/instrument_data/organ.dm index c8a4c069e3..6a4112437f 100644 --- a/code/modules/instruments/instrument_data/organ.dm +++ b/code/modules/instruments/instrument_data/organ.dm @@ -1,43 +1,43 @@ /datum/instrument/organ name = "Generic organ" category = "Organ" - instrument_type = /datum/instrument/organ + abstract_type = /datum/instrument/organ /datum/instrument/organ/crisis_church name = "Crisis Church Organ" id = "crichugan" - real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg', - "48"='sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg', - "60"='sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg', - "72"='sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/organ/crisis_church/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/organ/crisis_church/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/organ/crisis_church/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/organ/crisis_church/c5.ogg') /datum/instrument/organ/crisis_hammond name = "Crisis Hammond Organ" id = "crihamgan" - real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg', - "48"='sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg', - "60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg', - "72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg') /datum/instrument/organ/crisis_accordian name = "Crisis Accordian" id = "crack" - real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg', - "48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg', - "60"='sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg', - "72"='sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg') /datum/instrument/organ/crisis_harmonica name = "Crisis Harmonica" id = "crharmony" - real_samples = list("48"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg', - "60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg', - "72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg') + real_samples = list("48"='sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg') /datum/instrument/organ/crisis_tango_accordian name = "Crisis Tango Accordian" id = "crtango" - real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg', - "48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg', - "60"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg', - "72"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg') diff --git a/code/modules/instruments/instrument_data/piano.dm b/code/modules/instruments/instrument_data/piano.dm index e8aac71dae..9f2aeb063a 100644 --- a/code/modules/instruments/instrument_data/piano.dm +++ b/code/modules/instruments/instrument_data/piano.dm @@ -1,56 +1,56 @@ /datum/instrument/piano name = "Generic piano" category = "Piano" - instrument_type = /datum/instrument/piano + abstract_type = /datum/instrument/piano /datum/instrument/piano/fluid_piano name = "FluidR3 Grand Piano" id = "r3grand" - real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg', - "48"='sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg', - "60"='sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg', - "72"='sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg', - "84"='sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg', - "96"='sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg', - "108"='sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c6.ogg', + "96"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c7.ogg', + "108"='sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c8.ogg') /datum/instrument/piano/fluid_harpsichord name = "FluidR3 Harpsichord" id = "r3harpsi" - real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c2.ogg', - "48"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c3.ogg', - "60"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c4.ogg', - "72"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c5.ogg', - "84"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c6.ogg', - "96"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c7.ogg', - "108"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c8.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c6.ogg', + "96"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c7.ogg', + "108"='sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/c8.ogg') /datum/instrument/piano/crisis_harpsichord name = "Crisis Harpsichord" id = "crharpsi" - real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg', - "48"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg', - "60"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg', - "72"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg') /datum/instrument/piano/crisis_grandpiano_uni name = "Crisis Grand Piano One" id = "crgrand1" - real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg', - "48"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg', - "60"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg', - "72"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg', - "84"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg', - "96"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg', - "108"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg', + "96"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg', + "108"='sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg') /datum/instrument/piano/crisis_brightpiano_uni name = "Crisis Bright Piano One" id = "crbright1" - real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg', - "48"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg', - "60"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg', - "72"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg', - "84"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg', - "96"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg', - "108"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg') + real_samples = list("36"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg', + "48"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg', + "60"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg', + "72"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg', + "84"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg', + "96"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg', + "108"='sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg') diff --git a/code/modules/instruments/instrument_data/synth_tones.dm b/code/modules/instruments/instrument_data/synth_tones.dm index d3a78a081c..9ab25e79e7 100644 --- a/code/modules/instruments/instrument_data/synth_tones.dm +++ b/code/modules/instruments/instrument_data/synth_tones.dm @@ -1,19 +1,19 @@ /datum/instrument/tones name = "Ideal tone" category = "Tones" - instrument_type = /datum/instrument/tones + abstract_type = /datum/instrument/tones /datum/instrument/tones/square_wave name = "Ideal square wave" id = "square" - real_samples = list("81"='sound/instruments/synthesis_samples/tones/Square.ogg') + real_samples = list("81"='sound/runtime/instruments/synthesis_samples/tones/Square.ogg') /datum/instrument/tones/sine_wave name = "Ideal sine wave" id = "sine" - real_samples = list("81"='sound/instruments/synthesis_samples/tones/Sine.ogg') + real_samples = list("81"='sound/runtime/instruments/synthesis_samples/tones/Sine.ogg') /datum/instrument/tones/saw_wave name = "Ideal sawtooth wave" id = "saw" - real_samples = list("81"='sound/instruments/synthesis_samples/tones/Sawtooth.ogg') + real_samples = list("81"='sound/runtime/instruments/synthesis_samples/tones/Sawtooth.ogg') diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index cb760a656c..4954e37e65 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -9,7 +9,7 @@ slot_l_hand_str = 'icons/mob/items/lefthand_instruments.dmi', slot_r_hand_str = 'icons/mob/items/righthand_instruments.dmi', ) - + abstract_type = /obj/item/instrument /// Our song datum. var/datum/song/handheld/song /// Our allowed list of instrument ids. This is nulled on initialize. @@ -20,27 +20,30 @@ /obj/item/instrument/Initialize(mapload) . = ..() song = new(src, allowed_instrument_ids, instrument_range) - allowed_instrument_ids = null //We don't need this clogging memory after it's used. + allowed_instrument_ids = null //We don't need this clogging memory after its used. /obj/item/instrument/Destroy() QDEL_NULL(song) return ..() -/obj/item/instrument/proc/should_stop_playing(mob/user) - return user.incapacitated() || !((loc == user) || (isturf(loc) && Adjacent(user))) // sorry, no more TK playing. +/obj/item/instrument/proc/can_play(atom/music_player) + if(!ismob(music_player)) + return FALSE + var/mob/user = music_player + if(user.incapacitated()) + return FALSE + if(!Adjacent(user)) + return FALSE + return TRUE -/obj/item/instrument/attack_self(mob/user) - if(!user.IsAdvancedToolUser()) - to_chat(user, span_warning("You don't have the dexterity to do this!")) - return TRUE - interact(user) - -/obj/item/instrument/interact(mob/living/user) - if(!isliving(user) || user.incapacitated()) +/obj/item/instrument/attack_self(mob/M) + if(!M.IsAdvancedToolUser()) return - user.set_machine(src) - song.interact(user) + tgui_interact(M) + +/obj/item/instrument/tgui_interact(mob/user, datum/tgui/ui) + return song.tgui_interact(user) /obj/item/instrument/violin name = "space violin" @@ -60,67 +63,6 @@ icon_state = "xylophone" allowed_instrument_ids = "xylophone" -/obj/item/instrument/piano_synth - name = "synthesizer" - desc = "An advanced electronic synthesizer that can be used as various instruments." - icon_state = "synth" - allowed_instrument_ids = "piano" - -/obj/item/instrument/piano_synth/Initialize(mapload) - . = ..() - song.allowed_instrument_ids = SSinstruments.synthesizer_instrument_ids - -/obj/item/instrument/piano_synth/headphones - name = "headphones" - desc = "Unce unce unce unce. Boop!" - icon_state = "headphones" - slot_flags = SLOT_EARS | SLOT_HEAD - force = 0 - w_class = ITEMSIZE_SMALL - instrument_range = 1 - -/obj/item/instrument/piano_synth/headphones/Initialize(mapload) - . = ..() - RegisterSignal(src, COMSIG_SONG_START, PROC_REF(start_playing)) - RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) - -/** - * Called by a component signal when our song starts playing. - */ -/obj/item/instrument/piano_synth/headphones/proc/start_playing() - SIGNAL_HANDLER - - icon_state = "[initial(icon_state)]_on" - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - if(H.l_ear == src || H.r_ear == src) - H.update_inv_ears() - else if(H.head == src) - H.update_inv_head() - -/** - * Called by a component signal when our song stops playing. - */ -/obj/item/instrument/piano_synth/headphones/proc/stop_playing() - SIGNAL_HANDLER - - icon_state = "[initial(icon_state)]" - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - if(H.l_ear == src || H.r_ear == src) - H.update_inv_ears() - else if(H.head == src) - H.update_inv_head() - - -/obj/item/instrument/piano_synth/headphones/spacepods - name = "\improper Nanotrasen space pods" - desc = "Flex your money, AND ignore what everyone else says, all at once!" - icon_state = "spacepods" - slot_flags = SLOT_EARS - //strip_delay = 100 //air pods don't fall out - instrument_range = 0 //you're paying for quality here - /obj/item/instrument/banjo name = "banjo" desc = "A 'Mura' brand banjo. It's pretty much just a drum with a neck and strings." @@ -177,7 +119,7 @@ AddComponent(/datum/component/spooky) */ /obj/item/instrument/trumpet/spectral/attack(mob/living/carbon/C, mob/user) - playsound (src, 'sound/instruments/trombone/En4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/trombone/En4.mid', 100,1,-1) ..() /obj/item/instrument/saxophone @@ -200,7 +142,7 @@ */ /obj/item/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) - playsound (src, 'sound/instruments/saxophone/En4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/saxophone/En4.mid', 100,1,-1) ..() /obj/item/instrument/trombone @@ -223,7 +165,7 @@ */ /obj/item/instrument/trombone/spectral/attack(mob/living/carbon/C, mob/user) - playsound (src, 'sound/instruments/trombone/Cn4.mid', 100,1,-1) + playsound (src, 'sound/runtime/instruments/trombone/Cn4.mid', 100,1,-1) ..() /obj/item/instrument/recorder diff --git a/code/modules/instruments/piano_synth.dm b/code/modules/instruments/piano_synth.dm new file mode 100644 index 0000000000..98015e9365 --- /dev/null +++ b/code/modules/instruments/piano_synth.dm @@ -0,0 +1,60 @@ +/obj/item/instrument/piano_synth + name = "synthesizer" + desc = "An advanced electronic synthesizer that can be used as various instruments." + icon_state = "synth" + allowed_instrument_ids = "piano" + +/obj/item/instrument/piano_synth/Initialize(mapload) + . = ..() + song.allowed_instrument_ids = SSinstruments.synthesizer_instrument_ids + +/obj/item/instrument/piano_synth/headphones + name = "headphones" + desc = "Unce unce unce unce. Boop!" + icon_state = "headphones" + slot_flags = SLOT_EARS | SLOT_HEAD + force = 0 + w_class = ITEMSIZE_SMALL + instrument_range = 1 + +/obj/item/instrument/piano_synth/headphones/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_SONG_START, PROC_REF(start_playing)) + RegisterSignal(src, COMSIG_SONG_END, PROC_REF(stop_playing)) + +/** + * Called by a component signal when our song starts playing. + */ +/obj/item/instrument/piano_synth/headphones/proc/start_playing() + SIGNAL_HANDLER + + icon_state = "[initial(icon_state)]_on" + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.l_ear == src || H.r_ear == src) + H.update_inv_ears() + else if(H.head == src) + H.update_inv_head() + +/** + * Called by a component signal when our song stops playing. + */ +/obj/item/instrument/piano_synth/headphones/proc/stop_playing() + SIGNAL_HANDLER + + icon_state = "[initial(icon_state)]" + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.l_ear == src || H.r_ear == src) + H.update_inv_ears() + else if(H.head == src) + H.update_inv_head() + + +/obj/item/instrument/piano_synth/headphones/spacepods + name = "\improper Nanotrasen space pods" + desc = "Flex your money, AND ignore what everyone else says, all at once!" + icon_state = "spacepods" + slot_flags = SLOT_EARS + //strip_delay = 100 //air pods don't fall out + instrument_range = 0 //you're paying for quality here diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 53ce5c02de..257c162134 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -1,7 +1,3 @@ -#define MUSICIAN_HEARCHECK_MINDELAY 4 -#define MUSIC_MAXLINES 1000 -#define MUSIC_MAXLINECHARS 300 - /** * # Song datum * @@ -12,6 +8,9 @@ /// Name of the song var/name = "Untitled" + /// ID for syncing songs together + var/id = "" + /// The atom we're attached to/playing from var/atom/parent @@ -27,11 +26,6 @@ /// Are we currently playing? var/playing = FALSE - /// Are we currently editing? - var/editing = TRUE - /// Is the help screen open? - var/help = FALSE - /// Repeats left var/repeat = 0 /// Maximum times we can repeat @@ -78,8 +72,8 @@ var/list/channels_playing = list() /// List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments. var/list/channels_idle = list() - /// Person playing us - var/mob/user_playing + /// Who or what's playing us + var/atom/music_player ////////////////////////////////////////////////////// /// Last world.time we checked for who can hear us @@ -111,7 +105,6 @@ var/note_shift = 0 var/note_shift_min = -100 var/note_shift_max = 100 - var/can_noteshift = TRUE /// The kind of sustain we're using var/sustain_mode = SUSTAIN_LINEAR /// When a note is considered dead if it is below this in volume @@ -130,10 +123,10 @@ /datum/song/New(atom/parent, list/instrument_ids, new_range) SSinstruments.on_song_new(src) lines = list() - tempo = sanitize_tempo(tempo) + tempo = sanitize_tempo(tempo, TRUE) src.parent = parent if(instrument_ids) - allowed_instrument_ids = islist(instrument_ids)? instrument_ids : list(instrument_ids) + allowed_instrument_ids = islist(instrument_ids) ? instrument_ids : list(instrument_ids) if(length(allowed_instrument_ids)) set_instrument(allowed_instrument_ids[1]) hearing_mobs = list() @@ -161,6 +154,8 @@ var/list/old = hearing_mobs.Copy() hearing_mobs.len = 0 var/turf/source = get_turf(parent) + // FIXME + // for(var/mob/M in get_hearers_in_view(instrument_range, source)) var/list/in_range = get_mobs_and_objs_in_view_fast(source, instrument_range, remote_ghosts = FALSE) for(var/mob/M in in_range["mobs"]) hearing_mobs[M] = get_dist(M, source) @@ -202,64 +197,98 @@ /** * Attempts to start playing our song. */ -/datum/song/proc/start_playing(mob/user) +/datum/song/proc/start_playing(atom/user) if(playing) return if(!using_instrument?.ready()) - to_chat(user, span_warning("An error has occurred with [src]. Please reset the instrument.")) + to_chat(user, span_warning("An error has occured with [src]. Please reset the instrument.")) return compile_chords() if(!length(compiled_chords)) to_chat(user, span_warning("Song is empty.")) return playing = TRUE - updateDialog(user_playing) //we can not afford to runtime, since we are going to be doing sound channel reservations and if we runtime it means we have a channel allocation leak. //wrap the rest of the stuff to ensure stop_playing() is called. do_hearcheck() - SEND_SIGNAL(parent, COMSIG_SONG_START) + SEND_SIGNAL(parent, COMSIG_INSTRUMENT_START, src, user) + SEND_SIGNAL(user, COMSIG_ATOM_STARTING_INSTRUMENT, src) elapsed_delay = 0 delay_by = 0 current_chord = 1 - user_playing = user + music_player = user START_PROCESSING(SSinstruments, src) + if(id) + sync_play() + +/** + * Attempts to find other instruments with the same ID and syncs them to our song. + */ +/datum/song/proc/sync_play() + for(var/datum/song/other_instrument as anything in SSinstruments.songs) + if(other_instrument == src || other_instrument.id != id) + continue + if(other_instrument.playing) + continue + var/atom/other_player = other_instrument.find_sync_player() + if(isnull(other_player) || !(other_player in view(get_turf(parent)))) + continue + // copies the main song info to target songs + other_instrument.lines = lines.Copy() + other_instrument.max_repeats = max_repeats + other_instrument.tempo = tempo + other_instrument.start_playing(other_player) + +/** + * Finds a player which would reasonably be able to play this song. + */ +/datum/song/proc/find_sync_player() + return null /** * Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs. + * + * Arguments: + * * finished: boolean, whether the song ended via reaching the end. */ -/datum/song/proc/stop_playing() +/datum/song/proc/stop_playing(finished = FALSE) if(!playing) return playing = FALSE if(!debug_mode) compiled_chords = null STOP_PROCESSING(SSinstruments, src) - SEND_SIGNAL(parent, COMSIG_SONG_END) + SEND_SIGNAL(parent, COMSIG_INSTRUMENT_END, finished) terminate_all_sounds(TRUE) hearing_mobs.len = 0 - user_playing = null + music_player = null /** * Processes our song. */ /datum/song/proc/process_song(wait) - if(!length(compiled_chords) || should_stop_playing(user_playing)) - stop_playing() + if(!length(compiled_chords)) + stop_playing(TRUE) + return + if(should_stop_playing(music_player) == STOP_PLAYING) + stop_playing(FALSE) return var/list/chord = compiled_chords[current_chord] - if(++elapsed_delay >= delay_by) - play_chord(chord) - elapsed_delay = 0 - delay_by = tempodiv_to_delay(chord[length(chord)]) - current_chord++ - if(current_chord > length(compiled_chords)) - if(repeat) - repeat-- - current_chord = 1 - return - else - stop_playing() - return + elapsed_delay++ + if(elapsed_delay < delay_by) + return + play_chord(chord) + elapsed_delay = 0 + delay_by = tempodiv_to_delay(chord[length(chord)]) + current_chord++ + if(current_chord <= length(compiled_chords)) + return + if(!repeat) + stop_playing(TRUE) + return + repeat-- + current_chord = 1 + SEND_SIGNAL(parent, COMSIG_INSTRUMENT_REPEAT, TRUE) /** * Converts a tempodiv to ticks to elapse before playing the next chord, taking into account our tempo. @@ -281,19 +310,34 @@ /datum/song/proc/play_chord(list/chord) // last value is timing information for(var/i in 1 to (length(chord) - 1)) - legacy? playkey_legacy(chord[i][1], chord[i][2], chord[i][3], user_playing) : playkey_synth(chord[i], user_playing) + legacy ? playkey_legacy(chord[i][1], chord[i][2], chord[i][3], music_player) : playkey_synth(chord[i], music_player) /** * Checks if we should halt playback. */ -/datum/song/proc/should_stop_playing(mob/user) - return QDELETED(parent) || !using_instrument || !playing +/datum/song/proc/should_stop_playing(atom/player) + if(QDELETED(player) || !using_instrument || !playing) + return STOP_PLAYING + return SEND_SIGNAL(parent, COMSIG_INSTRUMENT_SHOULD_STOP_PLAYING, player) + +/// Sets and sanitizes the repeats variable. +/datum/song/proc/set_repeats(new_repeats_value) + if(playing) + return //So that people cant keep adding to repeat. If the do it intentionally, it could result in the server crashing. + repeat = round(new_repeats_value) + if(repeat < 0) + repeat = 0 + if(repeat > max_repeats) + repeat = max_repeats + /** * Sanitizes tempo to a value that makes sense and fits the current world.tick_lag. */ -/datum/song/proc/sanitize_tempo(new_tempo) +/datum/song/proc/sanitize_tempo(new_tempo, initializing = FALSE) new_tempo = abs(new_tempo) + if(!initializing) // not only is it not helpful while initializing but it will runtime really hard since nothing is set up + SEND_SIGNAL(parent, COMSIG_INSTRUMENT_TEMPO_CHANGE, src) return clamp(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) /** @@ -308,12 +352,6 @@ /datum/song/proc/set_bpm(bpm) tempo = sanitize_tempo(600 / bpm) -/** - * Updates the window for our users. Override down the line. - */ -/datum/song/proc/updateDialog(mob/user) - interact(user) - /datum/song/process(wait) if(!playing) return PROCESS_KILL @@ -337,33 +375,29 @@ * Setter for setting output volume. */ /datum/song/proc/set_volume(volume) - src.volume = clamp(volume, max(0, min_volume), min(100, max_volume)) + src.volume = clamp(round(volume, 1), max(0, min_volume), min(100, max_volume)) update_sustain() - updateDialog() /** * Setter for setting how low the volume has to get before a note is considered "dead" and dropped */ /datum/song/proc/set_dropoff_volume(volume) - sustain_dropoff_volume = clamp(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) + sustain_dropoff_volume = clamp(round(volume, 0.01), INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) update_sustain() - updateDialog() /** * Setter for setting exponential falloff factor. */ /datum/song/proc/set_exponential_drop_rate(drop) - sustain_exponential_dropoff = clamp(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) + sustain_exponential_dropoff = clamp(round(drop, 0.00001), INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) update_sustain() - updateDialog() /** * Setter for setting linear falloff duration. */ /datum/song/proc/set_linear_falloff_duration(duration) - sustain_linear_duration = clamp(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) + sustain_linear_duration = clamp(round(duration * 10, world.tick_lag), world.tick_lag, INSTRUMENT_MAX_TOTAL_SUSTAIN) update_sustain() - updateDialog() /datum/song/vv_edit_var(var_name, var_value) . = ..() @@ -381,25 +415,34 @@ // subtype for handheld instruments, like violin /datum/song/handheld -/datum/song/handheld/updateDialog(mob/user) - parent.interact(user || usr) - -/datum/song/handheld/should_stop_playing(mob/user) +/datum/song/handheld/should_stop_playing(atom/player) . = ..() - if(.) - return TRUE + if(. == STOP_PLAYING || . == IGNORE_INSTRUMENT_CHECKS) + return var/obj/item/instrument/I = parent - return I.should_stop_playing(user) + return I.can_play(player) ? NONE : STOP_PLAYING + +/datum/song/handheld/find_sync_player() + var/obj/item/instrument/instrument = parent + var/mob/living/player = get(parent, /mob/living) + if(instrument.can_play(player)) + return player + return null // subtype for stationary structures, like pianos /datum/song/stationary -/datum/song/stationary/updateDialog(mob/user) - parent.interact(user || usr) - -/datum/song/stationary/should_stop_playing(mob/user) +/datum/song/stationary/should_stop_playing(atom/player) . = ..() - if(.) + if(. == STOP_PLAYING || . == IGNORE_INSTRUMENT_CHECKS) return TRUE var/obj/structure/musician/M = parent - return M.should_stop_playing(user) + return M.can_play(player) ? NONE : STOP_PLAYING + +/datum/song/stationary/find_sync_player() + var/obj/structure/musician/piano = parent + for(var/mob/living/player in view(parent, 1)) + if(piano.can_play(player)) + return player + + return null diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index 0d593a86ed..f8321148a7 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -1,251 +1,216 @@ -/** - * Returns the HTML for the status UI for this song datum. - */ -/datum/song/proc/instrument_status_ui() - . = list() - . += "
" - . += span_bold("Current instrument:") + " " - if(!using_instrument) - . += span_danger("No instrument loaded!") + "
" - else - . += "[using_instrument.name]
" - . += "Playback Settings:
" - if(can_noteshift) - . += "Note Shift/Note Transpose: [note_shift] keys / [round(note_shift / 12, 0.01)] octaves
" - var/smt - var/modetext = "" +/datum/song/tgui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "InstrumentEditor", parent.name) + ui.open() + +/datum/song/tgui_host(mob/user) + return parent + +/datum/song/tgui_data(mob/user) + var/list/data = ..() + data["id"] = id + data["using_instrument"] = using_instrument?.name || "No instrument loaded!" + data["note_shift"] = note_shift + data["octaves"] = round(note_shift / 12, 0.01) + data["sustain_mode"] = sustain_mode switch(sustain_mode) if(SUSTAIN_LINEAR) - smt = "Linear" - modetext = "Linear Sustain Duration: [sustain_linear_duration / 10] seconds
" + data["sustain_mode_button"] = "Linear Sustain Duration (in seconds)" + data["sustain_mode_duration"] = sustain_linear_duration / 10 + data["sustain_mode_min"] = INSTRUMENT_MIN_TOTAL_SUSTAIN + data["sustain_mode_max"] = INSTRUMENT_MAX_TOTAL_SUSTAIN if(SUSTAIN_EXPONENTIAL) - smt = "Exponential" - modetext = "Exponential Falloff Factor: [sustain_exponential_dropoff]% per decisecond
" - . += "Sustain Mode: [smt]
" - . += modetext - . += using_instrument?.ready()? ("Status: " + span_green("Ready") + "
") : ("Status: " + span_red("!Instrument Definition Error!") + "
") - . += "Instrument Type: [legacy? "Legacy" : "Synthesized"]
" - . += "Volume: [volume]
" - . += "Volume Dropoff Threshold: [sustain_dropoff_volume]
" - . += "Sustain indefinitely last held note: [full_sustain_held_note? "Enabled" : "Disabled"].
" - . += "
" + data["sustain_mode_button"] = "Exponential Falloff Factor (% per decisecond)" + data["sustain_mode_duration"] = sustain_exponential_dropoff + data["sustain_mode_min"] = INSTRUMENT_EXP_FALLOFF_MIN + data["sustain_mode_max"] = INSTRUMENT_EXP_FALLOFF_MAX + data["instrument_ready"] = using_instrument?.ready() + data["volume"] = volume + data["volume_dropoff_threshold"] = sustain_dropoff_volume + data["sustain_indefinitely"] = full_sustain_held_note + data["playing"] = playing + data["repeat"] = repeat + data["bpm"] = round(60 SECONDS / tempo) + data["lines"] = list() + var/linecount + for(var/line in lines) + linecount++ + data["lines"] += list(list( + "line_count" = linecount, + "line_text" = line, + )) + return data -/datum/song/proc/interact(mob/user) - var/list/dat = list() +/datum/song/tgui_static_data(mob/user) + var/list/data = ..() + data["can_switch_instrument"] = (length(allowed_instrument_ids) > 1) + data["possible_instruments"] = list() + for(var/instrument in allowed_instrument_ids) + UNTYPED_LIST_ADD(data["possible_instruments"], list("name" = SSinstruments.instrument_data[instrument], "id" = instrument)) + data["sustain_modes"] = SSinstruments.note_sustain_modes + data["max_repeats"] = max_repeats + data["min_volume"] = min_volume + data["max_volume"] = max_volume + data["note_shift_min"] = note_shift_min + data["note_shift_max"] = note_shift_max + data["max_line_chars"] = MUSIC_MAXLINECHARS + data["max_lines"] = MUSIC_MAXLINES + return data - dat += instrument_status_ui() +/datum/song/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state) + . = ..() + var/mob/user = ui.user + if(!istype(user)) + return FALSE - if(lines.len > 0) - dat += "

Playback

" - if(!playing) - dat += "Play " + span_linkOn("Stop") + "

" - dat += "Repeat Song: " - dat += repeat > 0 ? "--" : (span_linkOff("-") + span_linkOff("-")) - dat += " [repeat] times " - dat += repeat < max_repeats ? "++" : (span_linkOff("+") + span_linkOff("+")) - dat += "
" - else - dat += span_linkOn("Play") + " Stop
" - dat += "Repeats left: " + span_bold("[repeat]") + "
" - if(!editing) - dat += "
" + span_bold("Show Editor") + "
" - else - dat += "

Editing

" - dat += span_bold("Hide Editor") - dat += " Start a New Song" - dat += " Import a Song

" - var/bpm = round(600 / tempo) - dat += "Tempo: - [bpm] BPM +

" - var/linecount = 0 - for(var/line in lines) - linecount += 1 - dat += "Line [linecount]: Edit X [line]
" - dat += "Add Line

" - if(help) - dat += span_bold("Hide Help") + "
" - dat += {" - Lines are a series of chords, separated by commas (,), each with notes separated by hyphens (-).
- Every note in a chord will play together, with chord timed by the tempo.
-
- Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
- By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
- Example: C,D,E,F,G,A,B will play a C major scale.
- After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
- Chords can be played simply by separating each note with a hyphen: A-C#,Cn-E,E-G#,Gn-B
- A pause may be denoted by an empty chord: C,E,,C,G
- To make a chord be a different time, end it with /x, where the chord length will be length
- defined by tempo / x: C,G/2,E/4
- Combined, an example is: E-E4/4,F#/2,G#/8,B/8,E3-E4/4 -
- Lines may be up to [MUSIC_MAXLINECHARS] characters.
- A song may only contain up to [MUSIC_MAXLINES] lines.
- "} - else - dat += span_bold("Show Help") + "
" + switch(action) + //SETTINGS + if("play_music") + if(!playing) + INVOKE_ASYNC(src, PROC_REF(start_playing), user) + else + stop_playing() + return TRUE + if("set_instrument_id") + var/new_id = reject_bad_name(LOWER_TEXT(params["id"]), max_length = 20, allow_numbers = TRUE, cap_after_symbols = FALSE) + if(new_id) + id = new_id + return TRUE + if("change_instrument") + var/new_instrument = params["new_instrument"] + //only one instrument, so no need to bother changing it. + if(!length(allowed_instrument_ids)) + return FALSE + if(!(new_instrument in allowed_instrument_ids)) + return FALSE + set_instrument(new_instrument) + return TRUE + if("tempo") + var/move_direction = params["tempo_change"] + var/tempo_diff + if(move_direction == "increase_speed") + tempo_diff = world.tick_lag + else + tempo_diff = -world.tick_lag + tempo = sanitize_tempo(tempo + tempo_diff) + return TRUE - var/datum/browser/popup = new(user, "instrument", parent?.name || "instrument", 700, 500) - popup.set_content(dat.Join("")) - popup.open() + //SONG MAKING + if("import_song") + var/song_text = "" + do + song_text = tgui_input_text(user, "Please paste the entire song, formatted:", name, max_length = (MUSIC_MAXLINES * MUSIC_MAXLINECHARS), multiline = TRUE) + if(!in_range(parent, user)) + return + + if(length_char(song_text) >= MUSIC_MAXLINES * MUSIC_MAXLINECHARS) + var/should_continue = tgui_alert(user, "Your message is too long! Would you like to continue editing it?", "Warning", list("Yes", "No")) + if(should_continue != "Yes") + break + while(length_char(song_text) > MUSIC_MAXLINES * MUSIC_MAXLINECHARS) + ParseSong(user, song_text) + return TRUE + if("start_new_song") + name = "" + lines = new() + tempo = sanitize_tempo(5) // default 120 BPM + return TRUE + if("add_new_line") + var/newline = tgui_input_text(user, "Enter your line", parent.name, max_length = MUSIC_MAXLINECHARS) + if(!newline || !in_range(parent, user)) + return + if(lines.len > MUSIC_MAXLINES) + return + if(length(newline) > MUSIC_MAXLINECHARS) + newline = copytext(newline, 1, MUSIC_MAXLINECHARS) + lines.Add(newline) + if("delete_line") + var/line_to_delete = params["line_deleted"] + if(line_to_delete > lines.len || line_to_delete < 1) + return FALSE + lines.Cut(line_to_delete, line_to_delete + 1) + return TRUE + if("modify_line") + var/line_to_edit = params["line_editing"] + if(line_to_edit > lines.len || line_to_edit < 1) + return FALSE + var/new_line_text = tgui_input_text(user, "Enter your line ", parent.name, lines[line_to_edit], max_length = MUSIC_MAXLINECHARS) + if(isnull(new_line_text) || !in_range(parent, user)) + return FALSE + lines[line_to_edit] = new_line_text + return TRUE + + //MODE STUFF + if("set_sustain_mode") + var/new_mode = params["new_mode"] + if(isnull(new_mode) || !(new_mode in SSinstruments.note_sustain_modes)) + return FALSE + sustain_mode = new_mode + return TRUE + if("set_note_shift") + var/amount = params["amount"] + if(!isnum(amount)) + return FALSE + note_shift = clamp(amount, note_shift_min, note_shift_max) + return TRUE + if("set_volume") + var/new_volume = params["amount"] + if(!isnum(new_volume)) + return FALSE + set_volume(new_volume) + return TRUE + if("set_dropoff_volume") + var/dropoff_threshold = params["amount"] + if(!isnum(dropoff_threshold)) + return FALSE + set_dropoff_volume(dropoff_threshold) + return TRUE + if("toggle_sustain_hold_indefinitely") + full_sustain_held_note = !full_sustain_held_note + return TRUE + if("set_repeat_amount") + if(playing) + return + var/repeat_amount = params["amount"] + if(!isnum(repeat_amount)) + return FALSE + set_repeats(repeat_amount) + return TRUE + if("edit_sustain_mode") + var/sustain_amount = params["amount"] + if(isnull(sustain_amount) || !isnum(sustain_amount)) + return + switch(sustain_mode) + if(SUSTAIN_LINEAR) + set_linear_falloff_duration(sustain_amount) + if(SUSTAIN_EXPONENTIAL) + set_exponential_drop_rate(sustain_amount) /** * Parses a song the user has input into lines and stores them. */ -/datum/song/proc/ParseSong(text) +/datum/song/proc/ParseSong(mob/user, new_song) set waitfor = FALSE //split into lines - lines = splittext(text, "\n") + lines = islist(new_song) ? new_song : splittext(new_song, "\n") if(lines.len) var/bpm_string = "BPM: " if(findtext(lines[1], bpm_string, 1, length(bpm_string) + 1)) var/divisor = text2num(copytext(lines[1], length(bpm_string) + 1)) || 120 // default - tempo = sanitize_tempo(600 / round(divisor, 1)) + tempo = sanitize_tempo(BPM_TO_TEMPO_SETTING(divisor)) lines.Cut(1, 2) else tempo = sanitize_tempo(5) // default 120 BPM if(lines.len > MUSIC_MAXLINES) - to_chat(usr, "Too many lines!") + if(user) + to_chat(user, "Too many lines!") lines.Cut(MUSIC_MAXLINES + 1) var/linenum = 1 for(var/l in lines) if(length_char(l) > MUSIC_MAXLINECHARS) - to_chat(usr, "Line [linenum] too long!") + if(user) + to_chat(user, "Line [linenum] too long!") lines.Remove(l) else linenum++ - updateDialog(usr) // make sure updates when complete - -/datum/song/Topic(href, href_list) - if(!parent.CanUseTopic(usr)) - usr << browse(null, "window=instrument") - usr.unset_machine() - return - - parent.add_fingerprint(usr) - - if(href_list["newsong"]) - lines = new() - tempo = sanitize_tempo(5) // default 120 BPM - name = "" - - else if(href_list["import"]) - var/t = "" - do - t = tgui_input_text(usr, "Please paste the entire song, formatted:", text("[]", name), t, multiline = TRUE, prevent_enter = TRUE) - if(!in_range(parent, usr)) - return - - if(length_char(t) >= MUSIC_MAXLINES * MUSIC_MAXLINECHARS) - var/cont = tgui_alert(usr, "Your message is too long! Would you like to continue editing it?", "Too long!", list("Yes", "No")) - if(cont != "Yes") - break - while(length_char(t) > MUSIC_MAXLINES * MUSIC_MAXLINECHARS) - ParseSong(t) - - else if(href_list["help"]) - help = text2num(href_list["help"]) - 1 - - else if(href_list["edit"]) - editing = text2num(href_list["edit"]) - 1 - - if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops. - if(playing) - return //So that people cant keep adding to repeat. If the do it intentionally, it could result in the server crashing. - repeat += round(text2num(href_list["repeat"])) - if(repeat < 0) - repeat = 0 - if(repeat > max_repeats) - repeat = max_repeats - - else if(href_list["tempo"]) - tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) - - else if(href_list["play"]) - INVOKE_ASYNC(src, PROC_REF(start_playing), usr) - - else if(href_list["newline"]) - var/newline = tgui_input_text(usr, "Enter your line: ", parent.name) - if(!newline || !in_range(parent, usr)) - return - if(lines.len > MUSIC_MAXLINES) - return - if(length(newline) > MUSIC_MAXLINECHARS) - newline = copytext(newline, 1, MUSIC_MAXLINECHARS) - lines.Add(newline) - - else if(href_list["deleteline"]) - var/num = round(text2num(href_list["deleteline"])) - if(num > lines.len || num < 1) - return - lines.Cut(num, num+1) - - else if(href_list["modifyline"]) - var/num = round(text2num(href_list["modifyline"]),1) - var/content = tgui_input_text(usr, "Enter your line: ", parent.name, lines[num], MUSIC_MAXLINECHARS, encode=TRUE) - if(!content || !in_range(parent, usr)) - return - if(num > lines.len || num < 1) - return - lines[num] = content - - else if(href_list["stop"]) - stop_playing() - - else if(href_list["setlinearfalloff"]) - var/amount = tgui_input_number(usr, "Set linear sustain duration in seconds", "Linear Sustain Duration", round_value=FALSE) - if(!isnull(amount)) - set_linear_falloff_duration(round(amount * 10, world.tick_lag)) - - else if(href_list["setexpfalloff"]) - var/amount = tgui_input_number(usr, "Set exponential sustain factor", "Exponential sustain factor", round_value=FALSE) - if(!isnull(amount)) - set_exponential_drop_rate(round(amount, 0.00001)) - - else if(href_list["setvolume"]) - var/amount = tgui_input_number(usr, "Set volume", "Volume") - if(!isnull(amount)) - set_volume(round(amount, 1)) - - else if(href_list["setdropoffvolume"]) - var/amount = tgui_input_number(usr, "Set dropoff threshold", "Dropoff Threshold Volume", round_value=FALSE) - if(!isnull(amount)) - set_dropoff_volume(round(amount, 0.01)) - - else if(href_list["switchinstrument"]) - if(!length(allowed_instrument_ids)) - return - else if(length(allowed_instrument_ids) == 1) - set_instrument(allowed_instrument_ids[1]) - return - var/list/categories = list() - for(var/i in allowed_instrument_ids) - var/datum/instrument/I = SSinstruments.get_instrument(i) - if(I) - LAZYSET(categories[I.category || "ERROR CATEGORY"], I.name, I.id) - var/cat = tgui_input_list(usr, "Select Category", "Instrument Category", categories) - if(!cat) - return - var/list/instruments = categories[cat] - var/choice = tgui_input_list(usr, "Select Instrument", "Instrument Selection", instruments) - if(!choice) - return - choice = instruments[choice] //get id - if(choice) - set_instrument(choice) - - else if(href_list["setnoteshift"]) - var/amount = tgui_input_number(usr, "Set note shift", "Note Shift", null, note_shift_max, note_shift_min) - if(!isnull(amount)) - note_shift = clamp(amount, note_shift_min, note_shift_max) - - else if(href_list["setsustainmode"]) - var/choice = tgui_input_list(usr, "Choose a sustain mode", "Sustain Mode", list("Linear", "Exponential")) - switch(choice) - if("Linear") - sustain_mode = SUSTAIN_LINEAR - if("Exponential") - sustain_mode = SUSTAIN_EXPONENTIAL - - else if(href_list["togglesustainhold"]) - full_sustain_held_note = !full_sustain_held_note - - updateDialog() diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index 13c3b74453..58dcf86149 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -9,7 +9,7 @@ var/list/octaves = list(3, 3, 3, 3, 3, 3, 3) var/list/accents = list("n", "n", "n", "n", "n", "n", "n") for(var/line in lines) - var/list/chords = splittext(lowertext(line), ",") + var/list/chords = splittext(LOWER_TEXT(line), ",") for(var/chord in chords) var/list/compiled_chord = list() var/tempodiv = 1 @@ -46,7 +46,7 @@ * * acc is either "b", "n", or "#" * * oct is 1-8 (or 9 for C) */ -/datum/song/proc/playkey_legacy(note, acc as text, oct, mob/user) +/datum/song/proc/playkey_legacy(note, acc as text, oct, atom/player) // handle accidental -> B<>C of E<>F if(acc == "b" && (note == 3 || note == 6)) // C or F if(note == 3) @@ -70,7 +70,7 @@ return // now generate name - var/soundfile = "sound/instruments/[cached_legacy_dir]/[ascii2text(note+64)][acc][oct].[cached_legacy_ext]" + var/soundfile = "sound/runtime/instruments/[cached_legacy_dir]/[ascii2text(note+64)][acc][oct].[cached_legacy_ext]" soundfile = file(soundfile) // make sure the note exists if(!fexists(soundfile)) @@ -80,14 +80,13 @@ if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) do_hearcheck() var/sound/music_played = sound(soundfile) - for(var/mob/M as anything in hearing_mobs) - /* Would be nice - if(user && HAS_TRAIT(user, TRAIT_MUSICIAN) && isliving(M)) - var/mob/living/L = M - L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC) - */ - if(!M) - hearing_mobs -= M + for(var/i in hearing_mobs) + var/mob/M = i + //if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M)) + // var/mob/living/L = M + // L.apply_status_effect(/datum/status_effect/good_music) + var/pref_volume = M?.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if(!pref_volume) continue - M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/preference/toggle/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) + M.playsound_local(source, null, volume * using_instrument.volume_multiplier * (pref_volume/100), S = music_played) // Could do environment and echo later but not for now diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index dcfd5edc94..2fcf079437 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -9,7 +9,7 @@ var/list/octaves = list(3, 3, 3, 3, 3, 3, 3) var/list/accents = list("n", "n", "n", "n", "n", "n", "n") for(var/line in lines) - var/list/chords = splittext(lowertext(line), ",") + var/list/chords = splittext(LOWER_TEXT(line), ",") for(var/chord in chords) var/list/compiled_chord = list() var/tempodiv = 1 @@ -42,9 +42,8 @@ * Plays a specific numerical key from our instrument to anyone who can hear us. * Does a hearing check if enough time has passed. */ -/datum/song/proc/playkey_synth(key, mob/user) - if(can_noteshift) - key = clamp(key + note_shift, key_min, key_max) +/datum/song/proc/playkey_synth(key, atom/player) + key = clamp(key + note_shift, key_min, key_max) if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) do_hearcheck() var/datum/instrument_key/K = using_instrument.samples[num2text(key)] //See how fucking easy it is to make a number text? You don't need a complicated 9 line proc! @@ -60,27 +59,15 @@ var/channel_text = num2text(channel) channels_playing[channel_text] = 100 last_channel_played = channel_text - var/turf/source = get_turf(parent) - for(var/mob/M as anything in hearing_mobs) - /* Maybe someday - if(user && HAS_TRAIT(user, TRAIT_MUSICIAN) && isliving(M)) - var/mob/living/L = M - L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC) - */ - // Jeez - M.playsound_local( - turf_source = source, - soundin = null, - vol = volume, - vary = FALSE, - frequency = K.frequency, - falloff = FALLOFF_SOUNDS, //CHOMPEdit - is_global = null, - channel = channel, - pressure_affected = null, - S = copy, - preference = /datum/preference/toggle/instrument_toggle, - volume_channel = VOLUME_CHANNEL_INSTRUMENTS) + for(var/i in hearing_mobs) + var/mob/M = i + //if(player && HAS_TRAIT(player, TRAIT_MUSICIAN) && isliving(M)) + // var/mob/living/L = M + // L.apply_status_effect(/datum/status_effect/good_music) + var/pref_volume = M?.client?.prefs.read_preference(/datum/preference/numeric/volume/sound_instruments) + if(!pref_volume) + continue + M.playsound_local(get_turf(parent), null, volume * (pref_volume/100), FALSE, K.frequency, null, channel, null, copy) // Could do environment and echo later but not for now /** @@ -141,8 +128,10 @@ if(dead) channels_playing -= channel channels_idle += channel - for(var/mob/M in hearing_mobs) + for(var/i in hearing_mobs) + var/mob/M = i M.stop_sound_channel(channelnumber) else - for(var/mob/M in hearing_mobs) + for(var/i in hearing_mobs) + var/mob/M = i M.set_sound_channel_volume(channelnumber, (current_volume * 0.01) * volume * using_instrument.volume_multiplier) diff --git a/code/modules/instruments/stationary.dm b/code/modules/instruments/stationary.dm index 06d5f85bdb..d2d83fd9a0 100644 --- a/code/modules/instruments/stationary.dm +++ b/code/modules/instruments/stationary.dm @@ -1,9 +1,12 @@ /obj/structure/musician name = "Not A Piano" desc = "Something broke, contact coderbus." + /// IF FALSE music stops when the piano is unanchored. var/can_play_unanchored = FALSE + /// Our allowed list of instrument ids. This is nulled on initialize. var/list/allowed_instrument_ids = list("r3grand","r3harpsi","crharpsi","crgrand1","crbright1", "crichugan", "crihamgan","piano") - var/datum/song/song + /// Our song datum. + var/datum/song/stationary/song /obj/structure/musician/Initialize(mapload) . = ..() @@ -14,64 +17,62 @@ QDEL_NULL(song) return ..() +/obj/structure/musician/proc/can_play(atom/music_player) + if(!anchored && !can_play_unanchored) + return FALSE + if(!ismob(music_player)) + return FALSE + var/mob/user = music_player + if(!user.IsAdvancedToolUser()) + return FALSE + if(user.incapacitated()) + return FALSE + if(!Adjacent(user)) + return FALSE + return TRUE + /obj/structure/musician/attack_hand(mob/M) if(!M.IsAdvancedToolUser()) return - interact(M) + tgui_interact(M) -// CHOMPAdd - Grand piano moving +/obj/structure/musician/tgui_interact(mob/user) + return song.tgui_interact(user) -/obj/structure/musician/attackby(obj/item/W as obj, mob/user as mob) - if(W.has_tool_quality(TOOL_WRENCH)) - playsound(src, W.usesound, 100, 1) - if(anchored) - user.visible_message(span_filter_notice("[user] begins unsecuring \the [src] from the floor."), span_filter_notice("You start unsecuring \the [src] from the floor.")) - else - user.visible_message(span_filter_notice("[user] begins securing \the [src] to the floor."), span_filter_notice("You start securing \the [src] to the floor.")) - - if(do_after(user, 20 * W.toolspeed)) - if(!src) return - to_chat(user, span_notice("You [anchored? "un" : ""]secured \the [src]!")) - anchored = !anchored - return - -// CHOMPEnd - -/obj/structure/musician/proc/should_stop_playing(mob/user) - if(!(anchored || can_play_unanchored)) - return TRUE - if(!user) - return FALSE - return !CanUseTopic(user) - -/obj/structure/musician/interact(mob/user) +/* FIXME +/obj/structure/musician/wrench_act(mob/living/user, obj/item/tool) . = ..() - song.interact(user) - -/* -/obj/structure/musician/wrench_act(mob/living/user, obj/item/I) - default_unfasten_wrench(user, I, 40) - return TRUE + default_unfasten_wrench(user, tool, time = 4 SECONDS) + return ITEM_INTERACT_SUCCESS */ /obj/structure/musician/piano - name = "space minimoog" + name = "space piano" + desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." icon = 'icons/obj/musician.dmi' icon_state = "minimoog" anchored = TRUE density = TRUE + var/broken_icon_state = "pianobroken" + +/obj/structure/musician/piano/Initialize(mapload) + . = ..() + AddElement(/datum/element/climbable) + +/** FIXME: We do not have atom_break implemented yet +/obj/structure/musician/piano/atom_break(damage_flag) + . = ..() + if(!broken) + broken = TRUE + icon_state = broken_icon_state +*/ /obj/structure/musician/piano/unanchored anchored = FALSE -/obj/structure/musician/piano/Initialize(mapload) - . = ..() - if(prob(50) && icon_state == initial(icon_state)) - name = "space minimoog" - desc = "This is a minimoog, like a space piano, but more spacey!" - icon_state = "minimoog" - else - name = "space piano" - desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." - icon_state = "piano" +/obj/structure/musician/piano/minimoog + name = "space minimoog" + desc = "This is a minimoog, like a space piano, but more spacey!" + icon_state = "minimoog" + broken_icon_state = "minimoogbroken" diff --git a/code/modules/instruments/items_ch.dm b/modular_chomp/code/modules/instruments/items.dm similarity index 100% rename from code/modules/instruments/items_ch.dm rename to modular_chomp/code/modules/instruments/items.dm diff --git a/modular_chomp/code/modules/instruments/stationary.dm b/modular_chomp/code/modules/instruments/stationary.dm new file mode 100644 index 0000000000..4bae187260 --- /dev/null +++ b/modular_chomp/code/modules/instruments/stationary.dm @@ -0,0 +1,13 @@ +/obj/structure/musician/attackby(obj/item/W, mob/user) + if(W.has_tool_quality(TOOL_WRENCH)) + playsound(src, W.usesound, 100, 1) + if(anchored) + user.visible_message(span_filter_notice("[user] begins unsecuring \the [src] from the floor."), span_filter_notice("You start unsecuring \the [src] from the floor.")) + else + user.visible_message(span_filter_notice("[user] begins securing \the [src] to the floor."), span_filter_notice("You start securing \the [src] to the floor.")) + + if(do_after(user, 20 * W.toolspeed)) + if(!src) return + to_chat(user, span_notice("You [anchored? "un" : ""]secured \the [src]!")) + anchored = !anchored + return diff --git a/sound/runtime/README.md b/sound/runtime/README.md new file mode 100644 index 0000000000..07bacb9ad7 --- /dev/null +++ b/sound/runtime/README.md @@ -0,0 +1,5 @@ +# Runtime Loaded Sounds + +These sounds are not compiled into the .rsc or are otherwise loaded at runtime. + +Please keep all (non-config) sounds that do this in this folder as it is needed by the [deploy.sh](../../tools/deploy.sh) script to minimize build output. diff --git a/sound/instruments/accordion/Ab2.mid b/sound/runtime/instruments/accordion/Ab2.mid similarity index 100% rename from sound/instruments/accordion/Ab2.mid rename to sound/runtime/instruments/accordion/Ab2.mid diff --git a/sound/instruments/accordion/Ab3.mid b/sound/runtime/instruments/accordion/Ab3.mid similarity index 100% rename from sound/instruments/accordion/Ab3.mid rename to sound/runtime/instruments/accordion/Ab3.mid diff --git a/sound/instruments/accordion/Ab4.mid b/sound/runtime/instruments/accordion/Ab4.mid similarity index 100% rename from sound/instruments/accordion/Ab4.mid rename to sound/runtime/instruments/accordion/Ab4.mid diff --git a/sound/instruments/accordion/Ab5.mid b/sound/runtime/instruments/accordion/Ab5.mid similarity index 100% rename from sound/instruments/accordion/Ab5.mid rename to sound/runtime/instruments/accordion/Ab5.mid diff --git a/sound/instruments/accordion/Ab6.mid b/sound/runtime/instruments/accordion/Ab6.mid similarity index 100% rename from sound/instruments/accordion/Ab6.mid rename to sound/runtime/instruments/accordion/Ab6.mid diff --git a/sound/instruments/accordion/An2.mid b/sound/runtime/instruments/accordion/An2.mid similarity index 100% rename from sound/instruments/accordion/An2.mid rename to sound/runtime/instruments/accordion/An2.mid diff --git a/sound/instruments/accordion/An3.mid b/sound/runtime/instruments/accordion/An3.mid similarity index 100% rename from sound/instruments/accordion/An3.mid rename to sound/runtime/instruments/accordion/An3.mid diff --git a/sound/instruments/accordion/An4.mid b/sound/runtime/instruments/accordion/An4.mid similarity index 100% rename from sound/instruments/accordion/An4.mid rename to sound/runtime/instruments/accordion/An4.mid diff --git a/sound/instruments/accordion/An5.mid b/sound/runtime/instruments/accordion/An5.mid similarity index 100% rename from sound/instruments/accordion/An5.mid rename to sound/runtime/instruments/accordion/An5.mid diff --git a/sound/instruments/accordion/An6.mid b/sound/runtime/instruments/accordion/An6.mid similarity index 100% rename from sound/instruments/accordion/An6.mid rename to sound/runtime/instruments/accordion/An6.mid diff --git a/sound/instruments/accordion/Bb2.mid b/sound/runtime/instruments/accordion/Bb2.mid similarity index 100% rename from sound/instruments/accordion/Bb2.mid rename to sound/runtime/instruments/accordion/Bb2.mid diff --git a/sound/instruments/accordion/Bb3.mid b/sound/runtime/instruments/accordion/Bb3.mid similarity index 100% rename from sound/instruments/accordion/Bb3.mid rename to sound/runtime/instruments/accordion/Bb3.mid diff --git a/sound/instruments/accordion/Bb4.mid b/sound/runtime/instruments/accordion/Bb4.mid similarity index 100% rename from sound/instruments/accordion/Bb4.mid rename to sound/runtime/instruments/accordion/Bb4.mid diff --git a/sound/instruments/accordion/Bb5.mid b/sound/runtime/instruments/accordion/Bb5.mid similarity index 100% rename from sound/instruments/accordion/Bb5.mid rename to sound/runtime/instruments/accordion/Bb5.mid diff --git a/sound/instruments/accordion/Bb6.mid b/sound/runtime/instruments/accordion/Bb6.mid similarity index 100% rename from sound/instruments/accordion/Bb6.mid rename to sound/runtime/instruments/accordion/Bb6.mid diff --git a/sound/instruments/accordion/Bn2.mid b/sound/runtime/instruments/accordion/Bn2.mid similarity index 100% rename from sound/instruments/accordion/Bn2.mid rename to sound/runtime/instruments/accordion/Bn2.mid diff --git a/sound/instruments/accordion/Bn3.mid b/sound/runtime/instruments/accordion/Bn3.mid similarity index 100% rename from sound/instruments/accordion/Bn3.mid rename to sound/runtime/instruments/accordion/Bn3.mid diff --git a/sound/instruments/accordion/Bn4.mid b/sound/runtime/instruments/accordion/Bn4.mid similarity index 100% rename from sound/instruments/accordion/Bn4.mid rename to sound/runtime/instruments/accordion/Bn4.mid diff --git a/sound/instruments/accordion/Bn5.mid b/sound/runtime/instruments/accordion/Bn5.mid similarity index 100% rename from sound/instruments/accordion/Bn5.mid rename to sound/runtime/instruments/accordion/Bn5.mid diff --git a/sound/instruments/accordion/Bn6.mid b/sound/runtime/instruments/accordion/Bn6.mid similarity index 100% rename from sound/instruments/accordion/Bn6.mid rename to sound/runtime/instruments/accordion/Bn6.mid diff --git a/sound/instruments/accordion/Cn2.mid b/sound/runtime/instruments/accordion/Cn2.mid similarity index 100% rename from sound/instruments/accordion/Cn2.mid rename to sound/runtime/instruments/accordion/Cn2.mid diff --git a/sound/instruments/accordion/Cn3.mid b/sound/runtime/instruments/accordion/Cn3.mid similarity index 100% rename from sound/instruments/accordion/Cn3.mid rename to sound/runtime/instruments/accordion/Cn3.mid diff --git a/sound/instruments/accordion/Cn4.mid b/sound/runtime/instruments/accordion/Cn4.mid similarity index 100% rename from sound/instruments/accordion/Cn4.mid rename to sound/runtime/instruments/accordion/Cn4.mid diff --git a/sound/instruments/accordion/Cn5.mid b/sound/runtime/instruments/accordion/Cn5.mid similarity index 100% rename from sound/instruments/accordion/Cn5.mid rename to sound/runtime/instruments/accordion/Cn5.mid diff --git a/sound/instruments/accordion/Cn6.mid b/sound/runtime/instruments/accordion/Cn6.mid similarity index 100% rename from sound/instruments/accordion/Cn6.mid rename to sound/runtime/instruments/accordion/Cn6.mid diff --git a/sound/instruments/accordion/Db2.mid b/sound/runtime/instruments/accordion/Db2.mid similarity index 100% rename from sound/instruments/accordion/Db2.mid rename to sound/runtime/instruments/accordion/Db2.mid diff --git a/sound/instruments/accordion/Db3.mid b/sound/runtime/instruments/accordion/Db3.mid similarity index 100% rename from sound/instruments/accordion/Db3.mid rename to sound/runtime/instruments/accordion/Db3.mid diff --git a/sound/instruments/accordion/Db4.mid b/sound/runtime/instruments/accordion/Db4.mid similarity index 100% rename from sound/instruments/accordion/Db4.mid rename to sound/runtime/instruments/accordion/Db4.mid diff --git a/sound/instruments/accordion/Db5.mid b/sound/runtime/instruments/accordion/Db5.mid similarity index 100% rename from sound/instruments/accordion/Db5.mid rename to sound/runtime/instruments/accordion/Db5.mid diff --git a/sound/instruments/accordion/Db6.mid b/sound/runtime/instruments/accordion/Db6.mid similarity index 100% rename from sound/instruments/accordion/Db6.mid rename to sound/runtime/instruments/accordion/Db6.mid diff --git a/sound/instruments/accordion/Dn2.mid b/sound/runtime/instruments/accordion/Dn2.mid similarity index 100% rename from sound/instruments/accordion/Dn2.mid rename to sound/runtime/instruments/accordion/Dn2.mid diff --git a/sound/instruments/accordion/Dn3.mid b/sound/runtime/instruments/accordion/Dn3.mid similarity index 100% rename from sound/instruments/accordion/Dn3.mid rename to sound/runtime/instruments/accordion/Dn3.mid diff --git a/sound/instruments/accordion/Dn4.mid b/sound/runtime/instruments/accordion/Dn4.mid similarity index 100% rename from sound/instruments/accordion/Dn4.mid rename to sound/runtime/instruments/accordion/Dn4.mid diff --git a/sound/instruments/accordion/Dn5.mid b/sound/runtime/instruments/accordion/Dn5.mid similarity index 100% rename from sound/instruments/accordion/Dn5.mid rename to sound/runtime/instruments/accordion/Dn5.mid diff --git a/sound/instruments/accordion/Dn6.mid b/sound/runtime/instruments/accordion/Dn6.mid similarity index 100% rename from sound/instruments/accordion/Dn6.mid rename to sound/runtime/instruments/accordion/Dn6.mid diff --git a/sound/instruments/accordion/Eb2.mid b/sound/runtime/instruments/accordion/Eb2.mid similarity index 100% rename from sound/instruments/accordion/Eb2.mid rename to sound/runtime/instruments/accordion/Eb2.mid diff --git a/sound/instruments/accordion/Eb3.mid b/sound/runtime/instruments/accordion/Eb3.mid similarity index 100% rename from sound/instruments/accordion/Eb3.mid rename to sound/runtime/instruments/accordion/Eb3.mid diff --git a/sound/instruments/accordion/Eb4.mid b/sound/runtime/instruments/accordion/Eb4.mid similarity index 100% rename from sound/instruments/accordion/Eb4.mid rename to sound/runtime/instruments/accordion/Eb4.mid diff --git a/sound/instruments/accordion/Eb5.mid b/sound/runtime/instruments/accordion/Eb5.mid similarity index 100% rename from sound/instruments/accordion/Eb5.mid rename to sound/runtime/instruments/accordion/Eb5.mid diff --git a/sound/instruments/accordion/Eb6.mid b/sound/runtime/instruments/accordion/Eb6.mid similarity index 100% rename from sound/instruments/accordion/Eb6.mid rename to sound/runtime/instruments/accordion/Eb6.mid diff --git a/sound/instruments/accordion/En2.mid b/sound/runtime/instruments/accordion/En2.mid similarity index 100% rename from sound/instruments/accordion/En2.mid rename to sound/runtime/instruments/accordion/En2.mid diff --git a/sound/instruments/accordion/En3.mid b/sound/runtime/instruments/accordion/En3.mid similarity index 100% rename from sound/instruments/accordion/En3.mid rename to sound/runtime/instruments/accordion/En3.mid diff --git a/sound/instruments/accordion/En4.mid b/sound/runtime/instruments/accordion/En4.mid similarity index 100% rename from sound/instruments/accordion/En4.mid rename to sound/runtime/instruments/accordion/En4.mid diff --git a/sound/instruments/accordion/En5.mid b/sound/runtime/instruments/accordion/En5.mid similarity index 100% rename from sound/instruments/accordion/En5.mid rename to sound/runtime/instruments/accordion/En5.mid diff --git a/sound/instruments/accordion/En6.mid b/sound/runtime/instruments/accordion/En6.mid similarity index 100% rename from sound/instruments/accordion/En6.mid rename to sound/runtime/instruments/accordion/En6.mid diff --git a/sound/instruments/accordion/Fn2.mid b/sound/runtime/instruments/accordion/Fn2.mid similarity index 100% rename from sound/instruments/accordion/Fn2.mid rename to sound/runtime/instruments/accordion/Fn2.mid diff --git a/sound/instruments/accordion/Fn3.mid b/sound/runtime/instruments/accordion/Fn3.mid similarity index 100% rename from sound/instruments/accordion/Fn3.mid rename to sound/runtime/instruments/accordion/Fn3.mid diff --git a/sound/instruments/accordion/Fn4.mid b/sound/runtime/instruments/accordion/Fn4.mid similarity index 100% rename from sound/instruments/accordion/Fn4.mid rename to sound/runtime/instruments/accordion/Fn4.mid diff --git a/sound/instruments/accordion/Fn5.mid b/sound/runtime/instruments/accordion/Fn5.mid similarity index 100% rename from sound/instruments/accordion/Fn5.mid rename to sound/runtime/instruments/accordion/Fn5.mid diff --git a/sound/instruments/accordion/Fn6.mid b/sound/runtime/instruments/accordion/Fn6.mid similarity index 100% rename from sound/instruments/accordion/Fn6.mid rename to sound/runtime/instruments/accordion/Fn6.mid diff --git a/sound/instruments/accordion/Gb2.mid b/sound/runtime/instruments/accordion/Gb2.mid similarity index 100% rename from sound/instruments/accordion/Gb2.mid rename to sound/runtime/instruments/accordion/Gb2.mid diff --git a/sound/instruments/accordion/Gb3.mid b/sound/runtime/instruments/accordion/Gb3.mid similarity index 100% rename from sound/instruments/accordion/Gb3.mid rename to sound/runtime/instruments/accordion/Gb3.mid diff --git a/sound/instruments/accordion/Gb4.mid b/sound/runtime/instruments/accordion/Gb4.mid similarity index 100% rename from sound/instruments/accordion/Gb4.mid rename to sound/runtime/instruments/accordion/Gb4.mid diff --git a/sound/instruments/accordion/Gb5.mid b/sound/runtime/instruments/accordion/Gb5.mid similarity index 100% rename from sound/instruments/accordion/Gb5.mid rename to sound/runtime/instruments/accordion/Gb5.mid diff --git a/sound/instruments/accordion/Gb6.mid b/sound/runtime/instruments/accordion/Gb6.mid similarity index 100% rename from sound/instruments/accordion/Gb6.mid rename to sound/runtime/instruments/accordion/Gb6.mid diff --git a/sound/instruments/accordion/Gn2.mid b/sound/runtime/instruments/accordion/Gn2.mid similarity index 100% rename from sound/instruments/accordion/Gn2.mid rename to sound/runtime/instruments/accordion/Gn2.mid diff --git a/sound/instruments/accordion/Gn3.mid b/sound/runtime/instruments/accordion/Gn3.mid similarity index 100% rename from sound/instruments/accordion/Gn3.mid rename to sound/runtime/instruments/accordion/Gn3.mid diff --git a/sound/instruments/accordion/Gn4.mid b/sound/runtime/instruments/accordion/Gn4.mid similarity index 100% rename from sound/instruments/accordion/Gn4.mid rename to sound/runtime/instruments/accordion/Gn4.mid diff --git a/sound/instruments/accordion/Gn5.mid b/sound/runtime/instruments/accordion/Gn5.mid similarity index 100% rename from sound/instruments/accordion/Gn5.mid rename to sound/runtime/instruments/accordion/Gn5.mid diff --git a/sound/instruments/accordion/Gn6.mid b/sound/runtime/instruments/accordion/Gn6.mid similarity index 100% rename from sound/instruments/accordion/Gn6.mid rename to sound/runtime/instruments/accordion/Gn6.mid diff --git a/sound/instruments/banjo/Ab3.ogg b/sound/runtime/instruments/banjo/Ab3.ogg similarity index 100% rename from sound/instruments/banjo/Ab3.ogg rename to sound/runtime/instruments/banjo/Ab3.ogg diff --git a/sound/instruments/banjo/Ab4.ogg b/sound/runtime/instruments/banjo/Ab4.ogg similarity index 100% rename from sound/instruments/banjo/Ab4.ogg rename to sound/runtime/instruments/banjo/Ab4.ogg diff --git a/sound/instruments/banjo/Ab5.ogg b/sound/runtime/instruments/banjo/Ab5.ogg similarity index 100% rename from sound/instruments/banjo/Ab5.ogg rename to sound/runtime/instruments/banjo/Ab5.ogg diff --git a/sound/instruments/banjo/An3.ogg b/sound/runtime/instruments/banjo/An3.ogg similarity index 100% rename from sound/instruments/banjo/An3.ogg rename to sound/runtime/instruments/banjo/An3.ogg diff --git a/sound/instruments/banjo/An4.ogg b/sound/runtime/instruments/banjo/An4.ogg similarity index 100% rename from sound/instruments/banjo/An4.ogg rename to sound/runtime/instruments/banjo/An4.ogg diff --git a/sound/instruments/banjo/An5.ogg b/sound/runtime/instruments/banjo/An5.ogg similarity index 100% rename from sound/instruments/banjo/An5.ogg rename to sound/runtime/instruments/banjo/An5.ogg diff --git a/sound/instruments/banjo/Bb3.ogg b/sound/runtime/instruments/banjo/Bb3.ogg similarity index 100% rename from sound/instruments/banjo/Bb3.ogg rename to sound/runtime/instruments/banjo/Bb3.ogg diff --git a/sound/instruments/banjo/Bb4.ogg b/sound/runtime/instruments/banjo/Bb4.ogg similarity index 100% rename from sound/instruments/banjo/Bb4.ogg rename to sound/runtime/instruments/banjo/Bb4.ogg diff --git a/sound/instruments/banjo/Bb5.ogg b/sound/runtime/instruments/banjo/Bb5.ogg similarity index 100% rename from sound/instruments/banjo/Bb5.ogg rename to sound/runtime/instruments/banjo/Bb5.ogg diff --git a/sound/instruments/banjo/Bn2.ogg b/sound/runtime/instruments/banjo/Bn2.ogg similarity index 100% rename from sound/instruments/banjo/Bn2.ogg rename to sound/runtime/instruments/banjo/Bn2.ogg diff --git a/sound/instruments/banjo/Bn3.ogg b/sound/runtime/instruments/banjo/Bn3.ogg similarity index 100% rename from sound/instruments/banjo/Bn3.ogg rename to sound/runtime/instruments/banjo/Bn3.ogg diff --git a/sound/instruments/banjo/Bn4.ogg b/sound/runtime/instruments/banjo/Bn4.ogg similarity index 100% rename from sound/instruments/banjo/Bn4.ogg rename to sound/runtime/instruments/banjo/Bn4.ogg diff --git a/sound/instruments/banjo/Bn5.ogg b/sound/runtime/instruments/banjo/Bn5.ogg similarity index 100% rename from sound/instruments/banjo/Bn5.ogg rename to sound/runtime/instruments/banjo/Bn5.ogg diff --git a/sound/instruments/banjo/Cn3.ogg b/sound/runtime/instruments/banjo/Cn3.ogg similarity index 100% rename from sound/instruments/banjo/Cn3.ogg rename to sound/runtime/instruments/banjo/Cn3.ogg diff --git a/sound/instruments/banjo/Cn4.ogg b/sound/runtime/instruments/banjo/Cn4.ogg similarity index 100% rename from sound/instruments/banjo/Cn4.ogg rename to sound/runtime/instruments/banjo/Cn4.ogg diff --git a/sound/instruments/banjo/Cn5.ogg b/sound/runtime/instruments/banjo/Cn5.ogg similarity index 100% rename from sound/instruments/banjo/Cn5.ogg rename to sound/runtime/instruments/banjo/Cn5.ogg diff --git a/sound/instruments/banjo/Cn6.ogg b/sound/runtime/instruments/banjo/Cn6.ogg similarity index 100% rename from sound/instruments/banjo/Cn6.ogg rename to sound/runtime/instruments/banjo/Cn6.ogg diff --git a/sound/instruments/banjo/Db3.ogg b/sound/runtime/instruments/banjo/Db3.ogg similarity index 100% rename from sound/instruments/banjo/Db3.ogg rename to sound/runtime/instruments/banjo/Db3.ogg diff --git a/sound/instruments/banjo/Db4.ogg b/sound/runtime/instruments/banjo/Db4.ogg similarity index 100% rename from sound/instruments/banjo/Db4.ogg rename to sound/runtime/instruments/banjo/Db4.ogg diff --git a/sound/instruments/banjo/Db5.ogg b/sound/runtime/instruments/banjo/Db5.ogg similarity index 100% rename from sound/instruments/banjo/Db5.ogg rename to sound/runtime/instruments/banjo/Db5.ogg diff --git a/sound/instruments/banjo/Db6.ogg b/sound/runtime/instruments/banjo/Db6.ogg similarity index 100% rename from sound/instruments/banjo/Db6.ogg rename to sound/runtime/instruments/banjo/Db6.ogg diff --git a/sound/instruments/banjo/Dn3.ogg b/sound/runtime/instruments/banjo/Dn3.ogg similarity index 100% rename from sound/instruments/banjo/Dn3.ogg rename to sound/runtime/instruments/banjo/Dn3.ogg diff --git a/sound/instruments/banjo/Dn4.ogg b/sound/runtime/instruments/banjo/Dn4.ogg similarity index 100% rename from sound/instruments/banjo/Dn4.ogg rename to sound/runtime/instruments/banjo/Dn4.ogg diff --git a/sound/instruments/banjo/Dn5.ogg b/sound/runtime/instruments/banjo/Dn5.ogg similarity index 100% rename from sound/instruments/banjo/Dn5.ogg rename to sound/runtime/instruments/banjo/Dn5.ogg diff --git a/sound/instruments/banjo/Dn6.ogg b/sound/runtime/instruments/banjo/Dn6.ogg similarity index 100% rename from sound/instruments/banjo/Dn6.ogg rename to sound/runtime/instruments/banjo/Dn6.ogg diff --git a/sound/instruments/banjo/Eb3.ogg b/sound/runtime/instruments/banjo/Eb3.ogg similarity index 100% rename from sound/instruments/banjo/Eb3.ogg rename to sound/runtime/instruments/banjo/Eb3.ogg diff --git a/sound/instruments/banjo/Eb4.ogg b/sound/runtime/instruments/banjo/Eb4.ogg similarity index 100% rename from sound/instruments/banjo/Eb4.ogg rename to sound/runtime/instruments/banjo/Eb4.ogg diff --git a/sound/instruments/banjo/Eb5.ogg b/sound/runtime/instruments/banjo/Eb5.ogg similarity index 100% rename from sound/instruments/banjo/Eb5.ogg rename to sound/runtime/instruments/banjo/Eb5.ogg diff --git a/sound/instruments/banjo/En3.ogg b/sound/runtime/instruments/banjo/En3.ogg similarity index 100% rename from sound/instruments/banjo/En3.ogg rename to sound/runtime/instruments/banjo/En3.ogg diff --git a/sound/instruments/banjo/En4.ogg b/sound/runtime/instruments/banjo/En4.ogg similarity index 100% rename from sound/instruments/banjo/En4.ogg rename to sound/runtime/instruments/banjo/En4.ogg diff --git a/sound/instruments/banjo/En5.ogg b/sound/runtime/instruments/banjo/En5.ogg similarity index 100% rename from sound/instruments/banjo/En5.ogg rename to sound/runtime/instruments/banjo/En5.ogg diff --git a/sound/instruments/banjo/Fn3.ogg b/sound/runtime/instruments/banjo/Fn3.ogg similarity index 100% rename from sound/instruments/banjo/Fn3.ogg rename to sound/runtime/instruments/banjo/Fn3.ogg diff --git a/sound/instruments/banjo/Fn4.ogg b/sound/runtime/instruments/banjo/Fn4.ogg similarity index 100% rename from sound/instruments/banjo/Fn4.ogg rename to sound/runtime/instruments/banjo/Fn4.ogg diff --git a/sound/instruments/banjo/Fn5.ogg b/sound/runtime/instruments/banjo/Fn5.ogg similarity index 100% rename from sound/instruments/banjo/Fn5.ogg rename to sound/runtime/instruments/banjo/Fn5.ogg diff --git a/sound/instruments/banjo/Gb3.ogg b/sound/runtime/instruments/banjo/Gb3.ogg similarity index 100% rename from sound/instruments/banjo/Gb3.ogg rename to sound/runtime/instruments/banjo/Gb3.ogg diff --git a/sound/instruments/banjo/Gb4.ogg b/sound/runtime/instruments/banjo/Gb4.ogg similarity index 100% rename from sound/instruments/banjo/Gb4.ogg rename to sound/runtime/instruments/banjo/Gb4.ogg diff --git a/sound/instruments/banjo/Gb5.ogg b/sound/runtime/instruments/banjo/Gb5.ogg similarity index 100% rename from sound/instruments/banjo/Gb5.ogg rename to sound/runtime/instruments/banjo/Gb5.ogg diff --git a/sound/instruments/banjo/Gn3.ogg b/sound/runtime/instruments/banjo/Gn3.ogg similarity index 100% rename from sound/instruments/banjo/Gn3.ogg rename to sound/runtime/instruments/banjo/Gn3.ogg diff --git a/sound/instruments/banjo/Gn4.ogg b/sound/runtime/instruments/banjo/Gn4.ogg similarity index 100% rename from sound/instruments/banjo/Gn4.ogg rename to sound/runtime/instruments/banjo/Gn4.ogg diff --git a/sound/instruments/banjo/Gn5.ogg b/sound/runtime/instruments/banjo/Gn5.ogg similarity index 100% rename from sound/instruments/banjo/Gn5.ogg rename to sound/runtime/instruments/banjo/Gn5.ogg diff --git a/sound/instruments/bikehorn/Ab2.ogg b/sound/runtime/instruments/bikehorn/Ab2.ogg similarity index 100% rename from sound/instruments/bikehorn/Ab2.ogg rename to sound/runtime/instruments/bikehorn/Ab2.ogg diff --git a/sound/instruments/bikehorn/Ab3.ogg b/sound/runtime/instruments/bikehorn/Ab3.ogg similarity index 100% rename from sound/instruments/bikehorn/Ab3.ogg rename to sound/runtime/instruments/bikehorn/Ab3.ogg diff --git a/sound/instruments/bikehorn/Ab4.ogg b/sound/runtime/instruments/bikehorn/Ab4.ogg similarity index 100% rename from sound/instruments/bikehorn/Ab4.ogg rename to sound/runtime/instruments/bikehorn/Ab4.ogg diff --git a/sound/instruments/bikehorn/An2.ogg b/sound/runtime/instruments/bikehorn/An2.ogg similarity index 100% rename from sound/instruments/bikehorn/An2.ogg rename to sound/runtime/instruments/bikehorn/An2.ogg diff --git a/sound/instruments/bikehorn/An3.ogg b/sound/runtime/instruments/bikehorn/An3.ogg similarity index 100% rename from sound/instruments/bikehorn/An3.ogg rename to sound/runtime/instruments/bikehorn/An3.ogg diff --git a/sound/instruments/bikehorn/An4.ogg b/sound/runtime/instruments/bikehorn/An4.ogg similarity index 100% rename from sound/instruments/bikehorn/An4.ogg rename to sound/runtime/instruments/bikehorn/An4.ogg diff --git a/sound/instruments/bikehorn/Bb2.ogg b/sound/runtime/instruments/bikehorn/Bb2.ogg similarity index 100% rename from sound/instruments/bikehorn/Bb2.ogg rename to sound/runtime/instruments/bikehorn/Bb2.ogg diff --git a/sound/instruments/bikehorn/Bb3.ogg b/sound/runtime/instruments/bikehorn/Bb3.ogg similarity index 100% rename from sound/instruments/bikehorn/Bb3.ogg rename to sound/runtime/instruments/bikehorn/Bb3.ogg diff --git a/sound/instruments/bikehorn/Bb4.ogg b/sound/runtime/instruments/bikehorn/Bb4.ogg similarity index 100% rename from sound/instruments/bikehorn/Bb4.ogg rename to sound/runtime/instruments/bikehorn/Bb4.ogg diff --git a/sound/instruments/bikehorn/Bn2.ogg b/sound/runtime/instruments/bikehorn/Bn2.ogg similarity index 100% rename from sound/instruments/bikehorn/Bn2.ogg rename to sound/runtime/instruments/bikehorn/Bn2.ogg diff --git a/sound/instruments/bikehorn/Bn3.ogg b/sound/runtime/instruments/bikehorn/Bn3.ogg similarity index 100% rename from sound/instruments/bikehorn/Bn3.ogg rename to sound/runtime/instruments/bikehorn/Bn3.ogg diff --git a/sound/instruments/bikehorn/Bn4.ogg b/sound/runtime/instruments/bikehorn/Bn4.ogg similarity index 100% rename from sound/instruments/bikehorn/Bn4.ogg rename to sound/runtime/instruments/bikehorn/Bn4.ogg diff --git a/sound/instruments/bikehorn/Cn3.ogg b/sound/runtime/instruments/bikehorn/Cn3.ogg similarity index 100% rename from sound/instruments/bikehorn/Cn3.ogg rename to sound/runtime/instruments/bikehorn/Cn3.ogg diff --git a/sound/instruments/bikehorn/Cn4.ogg b/sound/runtime/instruments/bikehorn/Cn4.ogg similarity index 100% rename from sound/instruments/bikehorn/Cn4.ogg rename to sound/runtime/instruments/bikehorn/Cn4.ogg diff --git a/sound/instruments/bikehorn/Cn5.ogg b/sound/runtime/instruments/bikehorn/Cn5.ogg similarity index 100% rename from sound/instruments/bikehorn/Cn5.ogg rename to sound/runtime/instruments/bikehorn/Cn5.ogg diff --git a/sound/instruments/bikehorn/Db3.ogg b/sound/runtime/instruments/bikehorn/Db3.ogg similarity index 100% rename from sound/instruments/bikehorn/Db3.ogg rename to sound/runtime/instruments/bikehorn/Db3.ogg diff --git a/sound/instruments/bikehorn/Db4.ogg b/sound/runtime/instruments/bikehorn/Db4.ogg similarity index 100% rename from sound/instruments/bikehorn/Db4.ogg rename to sound/runtime/instruments/bikehorn/Db4.ogg diff --git a/sound/instruments/bikehorn/Db5.ogg b/sound/runtime/instruments/bikehorn/Db5.ogg similarity index 100% rename from sound/instruments/bikehorn/Db5.ogg rename to sound/runtime/instruments/bikehorn/Db5.ogg diff --git a/sound/instruments/bikehorn/Dn3.ogg b/sound/runtime/instruments/bikehorn/Dn3.ogg similarity index 100% rename from sound/instruments/bikehorn/Dn3.ogg rename to sound/runtime/instruments/bikehorn/Dn3.ogg diff --git a/sound/instruments/bikehorn/Dn4.ogg b/sound/runtime/instruments/bikehorn/Dn4.ogg similarity index 100% rename from sound/instruments/bikehorn/Dn4.ogg rename to sound/runtime/instruments/bikehorn/Dn4.ogg diff --git a/sound/instruments/bikehorn/Dn5.ogg b/sound/runtime/instruments/bikehorn/Dn5.ogg similarity index 100% rename from sound/instruments/bikehorn/Dn5.ogg rename to sound/runtime/instruments/bikehorn/Dn5.ogg diff --git a/sound/instruments/bikehorn/Eb3.ogg b/sound/runtime/instruments/bikehorn/Eb3.ogg similarity index 100% rename from sound/instruments/bikehorn/Eb3.ogg rename to sound/runtime/instruments/bikehorn/Eb3.ogg diff --git a/sound/instruments/bikehorn/Eb4.ogg b/sound/runtime/instruments/bikehorn/Eb4.ogg similarity index 100% rename from sound/instruments/bikehorn/Eb4.ogg rename to sound/runtime/instruments/bikehorn/Eb4.ogg diff --git a/sound/instruments/bikehorn/Eb5.ogg b/sound/runtime/instruments/bikehorn/Eb5.ogg similarity index 100% rename from sound/instruments/bikehorn/Eb5.ogg rename to sound/runtime/instruments/bikehorn/Eb5.ogg diff --git a/sound/instruments/bikehorn/En2.ogg b/sound/runtime/instruments/bikehorn/En2.ogg similarity index 100% rename from sound/instruments/bikehorn/En2.ogg rename to sound/runtime/instruments/bikehorn/En2.ogg diff --git a/sound/instruments/bikehorn/En3.ogg b/sound/runtime/instruments/bikehorn/En3.ogg similarity index 100% rename from sound/instruments/bikehorn/En3.ogg rename to sound/runtime/instruments/bikehorn/En3.ogg diff --git a/sound/instruments/bikehorn/En4.ogg b/sound/runtime/instruments/bikehorn/En4.ogg similarity index 100% rename from sound/instruments/bikehorn/En4.ogg rename to sound/runtime/instruments/bikehorn/En4.ogg diff --git a/sound/instruments/bikehorn/Fn2.ogg b/sound/runtime/instruments/bikehorn/Fn2.ogg similarity index 100% rename from sound/instruments/bikehorn/Fn2.ogg rename to sound/runtime/instruments/bikehorn/Fn2.ogg diff --git a/sound/instruments/bikehorn/Fn3.ogg b/sound/runtime/instruments/bikehorn/Fn3.ogg similarity index 100% rename from sound/instruments/bikehorn/Fn3.ogg rename to sound/runtime/instruments/bikehorn/Fn3.ogg diff --git a/sound/instruments/bikehorn/Fn4.ogg b/sound/runtime/instruments/bikehorn/Fn4.ogg similarity index 100% rename from sound/instruments/bikehorn/Fn4.ogg rename to sound/runtime/instruments/bikehorn/Fn4.ogg diff --git a/sound/instruments/bikehorn/Gb2.ogg b/sound/runtime/instruments/bikehorn/Gb2.ogg similarity index 100% rename from sound/instruments/bikehorn/Gb2.ogg rename to sound/runtime/instruments/bikehorn/Gb2.ogg diff --git a/sound/instruments/bikehorn/Gb3.ogg b/sound/runtime/instruments/bikehorn/Gb3.ogg similarity index 100% rename from sound/instruments/bikehorn/Gb3.ogg rename to sound/runtime/instruments/bikehorn/Gb3.ogg diff --git a/sound/instruments/bikehorn/Gb4.ogg b/sound/runtime/instruments/bikehorn/Gb4.ogg similarity index 100% rename from sound/instruments/bikehorn/Gb4.ogg rename to sound/runtime/instruments/bikehorn/Gb4.ogg diff --git a/sound/instruments/bikehorn/Gn2.ogg b/sound/runtime/instruments/bikehorn/Gn2.ogg similarity index 100% rename from sound/instruments/bikehorn/Gn2.ogg rename to sound/runtime/instruments/bikehorn/Gn2.ogg diff --git a/sound/instruments/bikehorn/Gn3.ogg b/sound/runtime/instruments/bikehorn/Gn3.ogg similarity index 100% rename from sound/instruments/bikehorn/Gn3.ogg rename to sound/runtime/instruments/bikehorn/Gn3.ogg diff --git a/sound/instruments/bikehorn/Gn4.ogg b/sound/runtime/instruments/bikehorn/Gn4.ogg similarity index 100% rename from sound/instruments/bikehorn/Gn4.ogg rename to sound/runtime/instruments/bikehorn/Gn4.ogg diff --git a/sound/instruments/eguitar/Ab4.ogg b/sound/runtime/instruments/eguitar/Ab4.ogg similarity index 100% rename from sound/instruments/eguitar/Ab4.ogg rename to sound/runtime/instruments/eguitar/Ab4.ogg diff --git a/sound/instruments/eguitar/Ab5.ogg b/sound/runtime/instruments/eguitar/Ab5.ogg similarity index 100% rename from sound/instruments/eguitar/Ab5.ogg rename to sound/runtime/instruments/eguitar/Ab5.ogg diff --git a/sound/instruments/eguitar/Ab6.ogg b/sound/runtime/instruments/eguitar/Ab6.ogg similarity index 100% rename from sound/instruments/eguitar/Ab6.ogg rename to sound/runtime/instruments/eguitar/Ab6.ogg diff --git a/sound/instruments/eguitar/An4.ogg b/sound/runtime/instruments/eguitar/An4.ogg similarity index 100% rename from sound/instruments/eguitar/An4.ogg rename to sound/runtime/instruments/eguitar/An4.ogg diff --git a/sound/instruments/eguitar/An5.ogg b/sound/runtime/instruments/eguitar/An5.ogg similarity index 100% rename from sound/instruments/eguitar/An5.ogg rename to sound/runtime/instruments/eguitar/An5.ogg diff --git a/sound/instruments/eguitar/An6.ogg b/sound/runtime/instruments/eguitar/An6.ogg similarity index 100% rename from sound/instruments/eguitar/An6.ogg rename to sound/runtime/instruments/eguitar/An6.ogg diff --git a/sound/instruments/eguitar/Bb4.ogg b/sound/runtime/instruments/eguitar/Bb4.ogg similarity index 100% rename from sound/instruments/eguitar/Bb4.ogg rename to sound/runtime/instruments/eguitar/Bb4.ogg diff --git a/sound/instruments/eguitar/Bb5.ogg b/sound/runtime/instruments/eguitar/Bb5.ogg similarity index 100% rename from sound/instruments/eguitar/Bb5.ogg rename to sound/runtime/instruments/eguitar/Bb5.ogg diff --git a/sound/instruments/eguitar/Bb6.ogg b/sound/runtime/instruments/eguitar/Bb6.ogg similarity index 100% rename from sound/instruments/eguitar/Bb6.ogg rename to sound/runtime/instruments/eguitar/Bb6.ogg diff --git a/sound/instruments/eguitar/Bn4.ogg b/sound/runtime/instruments/eguitar/Bn4.ogg similarity index 100% rename from sound/instruments/eguitar/Bn4.ogg rename to sound/runtime/instruments/eguitar/Bn4.ogg diff --git a/sound/instruments/eguitar/Bn5.ogg b/sound/runtime/instruments/eguitar/Bn5.ogg similarity index 100% rename from sound/instruments/eguitar/Bn5.ogg rename to sound/runtime/instruments/eguitar/Bn5.ogg diff --git a/sound/instruments/eguitar/Bn6.ogg b/sound/runtime/instruments/eguitar/Bn6.ogg similarity index 100% rename from sound/instruments/eguitar/Bn6.ogg rename to sound/runtime/instruments/eguitar/Bn6.ogg diff --git a/sound/instruments/eguitar/Cn4.ogg b/sound/runtime/instruments/eguitar/Cn4.ogg similarity index 100% rename from sound/instruments/eguitar/Cn4.ogg rename to sound/runtime/instruments/eguitar/Cn4.ogg diff --git a/sound/instruments/eguitar/Cn5.ogg b/sound/runtime/instruments/eguitar/Cn5.ogg similarity index 100% rename from sound/instruments/eguitar/Cn5.ogg rename to sound/runtime/instruments/eguitar/Cn5.ogg diff --git a/sound/instruments/eguitar/Cn6.ogg b/sound/runtime/instruments/eguitar/Cn6.ogg similarity index 100% rename from sound/instruments/eguitar/Cn6.ogg rename to sound/runtime/instruments/eguitar/Cn6.ogg diff --git a/sound/instruments/eguitar/Cn7.ogg b/sound/runtime/instruments/eguitar/Cn7.ogg similarity index 100% rename from sound/instruments/eguitar/Cn7.ogg rename to sound/runtime/instruments/eguitar/Cn7.ogg diff --git a/sound/instruments/eguitar/Db4.ogg b/sound/runtime/instruments/eguitar/Db4.ogg similarity index 100% rename from sound/instruments/eguitar/Db4.ogg rename to sound/runtime/instruments/eguitar/Db4.ogg diff --git a/sound/instruments/eguitar/Db5.ogg b/sound/runtime/instruments/eguitar/Db5.ogg similarity index 100% rename from sound/instruments/eguitar/Db5.ogg rename to sound/runtime/instruments/eguitar/Db5.ogg diff --git a/sound/instruments/eguitar/Db6.ogg b/sound/runtime/instruments/eguitar/Db6.ogg similarity index 100% rename from sound/instruments/eguitar/Db6.ogg rename to sound/runtime/instruments/eguitar/Db6.ogg diff --git a/sound/instruments/eguitar/Dn4.ogg b/sound/runtime/instruments/eguitar/Dn4.ogg similarity index 100% rename from sound/instruments/eguitar/Dn4.ogg rename to sound/runtime/instruments/eguitar/Dn4.ogg diff --git a/sound/instruments/eguitar/Dn5.ogg b/sound/runtime/instruments/eguitar/Dn5.ogg similarity index 100% rename from sound/instruments/eguitar/Dn5.ogg rename to sound/runtime/instruments/eguitar/Dn5.ogg diff --git a/sound/instruments/eguitar/Dn6.ogg b/sound/runtime/instruments/eguitar/Dn6.ogg similarity index 100% rename from sound/instruments/eguitar/Dn6.ogg rename to sound/runtime/instruments/eguitar/Dn6.ogg diff --git a/sound/instruments/eguitar/Eb4.ogg b/sound/runtime/instruments/eguitar/Eb4.ogg similarity index 100% rename from sound/instruments/eguitar/Eb4.ogg rename to sound/runtime/instruments/eguitar/Eb4.ogg diff --git a/sound/instruments/eguitar/Eb5.ogg b/sound/runtime/instruments/eguitar/Eb5.ogg similarity index 100% rename from sound/instruments/eguitar/Eb5.ogg rename to sound/runtime/instruments/eguitar/Eb5.ogg diff --git a/sound/instruments/eguitar/Eb6.ogg b/sound/runtime/instruments/eguitar/Eb6.ogg similarity index 100% rename from sound/instruments/eguitar/Eb6.ogg rename to sound/runtime/instruments/eguitar/Eb6.ogg diff --git a/sound/instruments/eguitar/En4.ogg b/sound/runtime/instruments/eguitar/En4.ogg similarity index 100% rename from sound/instruments/eguitar/En4.ogg rename to sound/runtime/instruments/eguitar/En4.ogg diff --git a/sound/instruments/eguitar/En5.ogg b/sound/runtime/instruments/eguitar/En5.ogg similarity index 100% rename from sound/instruments/eguitar/En5.ogg rename to sound/runtime/instruments/eguitar/En5.ogg diff --git a/sound/instruments/eguitar/En6.ogg b/sound/runtime/instruments/eguitar/En6.ogg similarity index 100% rename from sound/instruments/eguitar/En6.ogg rename to sound/runtime/instruments/eguitar/En6.ogg diff --git a/sound/instruments/eguitar/Fn4.ogg b/sound/runtime/instruments/eguitar/Fn4.ogg similarity index 100% rename from sound/instruments/eguitar/Fn4.ogg rename to sound/runtime/instruments/eguitar/Fn4.ogg diff --git a/sound/instruments/eguitar/Fn5.ogg b/sound/runtime/instruments/eguitar/Fn5.ogg similarity index 100% rename from sound/instruments/eguitar/Fn5.ogg rename to sound/runtime/instruments/eguitar/Fn5.ogg diff --git a/sound/instruments/eguitar/Fn6.ogg b/sound/runtime/instruments/eguitar/Fn6.ogg similarity index 100% rename from sound/instruments/eguitar/Fn6.ogg rename to sound/runtime/instruments/eguitar/Fn6.ogg diff --git a/sound/instruments/eguitar/Gb4.ogg b/sound/runtime/instruments/eguitar/Gb4.ogg similarity index 100% rename from sound/instruments/eguitar/Gb4.ogg rename to sound/runtime/instruments/eguitar/Gb4.ogg diff --git a/sound/instruments/eguitar/Gb5.ogg b/sound/runtime/instruments/eguitar/Gb5.ogg similarity index 100% rename from sound/instruments/eguitar/Gb5.ogg rename to sound/runtime/instruments/eguitar/Gb5.ogg diff --git a/sound/instruments/eguitar/Gb6.ogg b/sound/runtime/instruments/eguitar/Gb6.ogg similarity index 100% rename from sound/instruments/eguitar/Gb6.ogg rename to sound/runtime/instruments/eguitar/Gb6.ogg diff --git a/sound/instruments/eguitar/Gn4.ogg b/sound/runtime/instruments/eguitar/Gn4.ogg similarity index 100% rename from sound/instruments/eguitar/Gn4.ogg rename to sound/runtime/instruments/eguitar/Gn4.ogg diff --git a/sound/instruments/eguitar/Gn5.ogg b/sound/runtime/instruments/eguitar/Gn5.ogg similarity index 100% rename from sound/instruments/eguitar/Gn5.ogg rename to sound/runtime/instruments/eguitar/Gn5.ogg diff --git a/sound/instruments/eguitar/Gn6.ogg b/sound/runtime/instruments/eguitar/Gn6.ogg similarity index 100% rename from sound/instruments/eguitar/Gn6.ogg rename to sound/runtime/instruments/eguitar/Gn6.ogg diff --git a/sound/instruments/glockenspiel/Ab2.mid b/sound/runtime/instruments/glockenspiel/Ab2.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab2.mid rename to sound/runtime/instruments/glockenspiel/Ab2.mid diff --git a/sound/instruments/glockenspiel/Ab3.mid b/sound/runtime/instruments/glockenspiel/Ab3.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab3.mid rename to sound/runtime/instruments/glockenspiel/Ab3.mid diff --git a/sound/instruments/glockenspiel/Ab4.mid b/sound/runtime/instruments/glockenspiel/Ab4.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab4.mid rename to sound/runtime/instruments/glockenspiel/Ab4.mid diff --git a/sound/instruments/glockenspiel/Ab5.mid b/sound/runtime/instruments/glockenspiel/Ab5.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab5.mid rename to sound/runtime/instruments/glockenspiel/Ab5.mid diff --git a/sound/instruments/glockenspiel/Ab6.mid b/sound/runtime/instruments/glockenspiel/Ab6.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab6.mid rename to sound/runtime/instruments/glockenspiel/Ab6.mid diff --git a/sound/instruments/glockenspiel/Ab7.mid b/sound/runtime/instruments/glockenspiel/Ab7.mid similarity index 100% rename from sound/instruments/glockenspiel/Ab7.mid rename to sound/runtime/instruments/glockenspiel/Ab7.mid diff --git a/sound/instruments/glockenspiel/An2.mid b/sound/runtime/instruments/glockenspiel/An2.mid similarity index 100% rename from sound/instruments/glockenspiel/An2.mid rename to sound/runtime/instruments/glockenspiel/An2.mid diff --git a/sound/instruments/glockenspiel/An3.mid b/sound/runtime/instruments/glockenspiel/An3.mid similarity index 100% rename from sound/instruments/glockenspiel/An3.mid rename to sound/runtime/instruments/glockenspiel/An3.mid diff --git a/sound/instruments/glockenspiel/An4.mid b/sound/runtime/instruments/glockenspiel/An4.mid similarity index 100% rename from sound/instruments/glockenspiel/An4.mid rename to sound/runtime/instruments/glockenspiel/An4.mid diff --git a/sound/instruments/glockenspiel/An5.mid b/sound/runtime/instruments/glockenspiel/An5.mid similarity index 100% rename from sound/instruments/glockenspiel/An5.mid rename to sound/runtime/instruments/glockenspiel/An5.mid diff --git a/sound/instruments/glockenspiel/An6.mid b/sound/runtime/instruments/glockenspiel/An6.mid similarity index 100% rename from sound/instruments/glockenspiel/An6.mid rename to sound/runtime/instruments/glockenspiel/An6.mid diff --git a/sound/instruments/glockenspiel/An7.mid b/sound/runtime/instruments/glockenspiel/An7.mid similarity index 100% rename from sound/instruments/glockenspiel/An7.mid rename to sound/runtime/instruments/glockenspiel/An7.mid diff --git a/sound/instruments/glockenspiel/Bb2.mid b/sound/runtime/instruments/glockenspiel/Bb2.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb2.mid rename to sound/runtime/instruments/glockenspiel/Bb2.mid diff --git a/sound/instruments/glockenspiel/Bb3.mid b/sound/runtime/instruments/glockenspiel/Bb3.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb3.mid rename to sound/runtime/instruments/glockenspiel/Bb3.mid diff --git a/sound/instruments/glockenspiel/Bb4.mid b/sound/runtime/instruments/glockenspiel/Bb4.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb4.mid rename to sound/runtime/instruments/glockenspiel/Bb4.mid diff --git a/sound/instruments/glockenspiel/Bb5.mid b/sound/runtime/instruments/glockenspiel/Bb5.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb5.mid rename to sound/runtime/instruments/glockenspiel/Bb5.mid diff --git a/sound/instruments/glockenspiel/Bb6.mid b/sound/runtime/instruments/glockenspiel/Bb6.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb6.mid rename to sound/runtime/instruments/glockenspiel/Bb6.mid diff --git a/sound/instruments/glockenspiel/Bb7.mid b/sound/runtime/instruments/glockenspiel/Bb7.mid similarity index 100% rename from sound/instruments/glockenspiel/Bb7.mid rename to sound/runtime/instruments/glockenspiel/Bb7.mid diff --git a/sound/instruments/glockenspiel/Bn2.mid b/sound/runtime/instruments/glockenspiel/Bn2.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn2.mid rename to sound/runtime/instruments/glockenspiel/Bn2.mid diff --git a/sound/instruments/glockenspiel/Bn3.mid b/sound/runtime/instruments/glockenspiel/Bn3.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn3.mid rename to sound/runtime/instruments/glockenspiel/Bn3.mid diff --git a/sound/instruments/glockenspiel/Bn4.mid b/sound/runtime/instruments/glockenspiel/Bn4.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn4.mid rename to sound/runtime/instruments/glockenspiel/Bn4.mid diff --git a/sound/instruments/glockenspiel/Bn5.mid b/sound/runtime/instruments/glockenspiel/Bn5.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn5.mid rename to sound/runtime/instruments/glockenspiel/Bn5.mid diff --git a/sound/instruments/glockenspiel/Bn6.mid b/sound/runtime/instruments/glockenspiel/Bn6.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn6.mid rename to sound/runtime/instruments/glockenspiel/Bn6.mid diff --git a/sound/instruments/glockenspiel/Bn7.mid b/sound/runtime/instruments/glockenspiel/Bn7.mid similarity index 100% rename from sound/instruments/glockenspiel/Bn7.mid rename to sound/runtime/instruments/glockenspiel/Bn7.mid diff --git a/sound/instruments/glockenspiel/Cn2.mid b/sound/runtime/instruments/glockenspiel/Cn2.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn2.mid rename to sound/runtime/instruments/glockenspiel/Cn2.mid diff --git a/sound/instruments/glockenspiel/Cn3.mid b/sound/runtime/instruments/glockenspiel/Cn3.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn3.mid rename to sound/runtime/instruments/glockenspiel/Cn3.mid diff --git a/sound/instruments/glockenspiel/Cn4.mid b/sound/runtime/instruments/glockenspiel/Cn4.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn4.mid rename to sound/runtime/instruments/glockenspiel/Cn4.mid diff --git a/sound/instruments/glockenspiel/Cn5.mid b/sound/runtime/instruments/glockenspiel/Cn5.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn5.mid rename to sound/runtime/instruments/glockenspiel/Cn5.mid diff --git a/sound/instruments/glockenspiel/Cn6.mid b/sound/runtime/instruments/glockenspiel/Cn6.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn6.mid rename to sound/runtime/instruments/glockenspiel/Cn6.mid diff --git a/sound/instruments/glockenspiel/Cn7.mid b/sound/runtime/instruments/glockenspiel/Cn7.mid similarity index 100% rename from sound/instruments/glockenspiel/Cn7.mid rename to sound/runtime/instruments/glockenspiel/Cn7.mid diff --git a/sound/instruments/glockenspiel/Db2.mid b/sound/runtime/instruments/glockenspiel/Db2.mid similarity index 100% rename from sound/instruments/glockenspiel/Db2.mid rename to sound/runtime/instruments/glockenspiel/Db2.mid diff --git a/sound/instruments/glockenspiel/Db3.mid b/sound/runtime/instruments/glockenspiel/Db3.mid similarity index 100% rename from sound/instruments/glockenspiel/Db3.mid rename to sound/runtime/instruments/glockenspiel/Db3.mid diff --git a/sound/instruments/glockenspiel/Db4.mid b/sound/runtime/instruments/glockenspiel/Db4.mid similarity index 100% rename from sound/instruments/glockenspiel/Db4.mid rename to sound/runtime/instruments/glockenspiel/Db4.mid diff --git a/sound/instruments/glockenspiel/Db5.mid b/sound/runtime/instruments/glockenspiel/Db5.mid similarity index 100% rename from sound/instruments/glockenspiel/Db5.mid rename to sound/runtime/instruments/glockenspiel/Db5.mid diff --git a/sound/instruments/glockenspiel/Db6.mid b/sound/runtime/instruments/glockenspiel/Db6.mid similarity index 100% rename from sound/instruments/glockenspiel/Db6.mid rename to sound/runtime/instruments/glockenspiel/Db6.mid diff --git a/sound/instruments/glockenspiel/Db7.mid b/sound/runtime/instruments/glockenspiel/Db7.mid similarity index 100% rename from sound/instruments/glockenspiel/Db7.mid rename to sound/runtime/instruments/glockenspiel/Db7.mid diff --git a/sound/instruments/glockenspiel/Dn2.mid b/sound/runtime/instruments/glockenspiel/Dn2.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn2.mid rename to sound/runtime/instruments/glockenspiel/Dn2.mid diff --git a/sound/instruments/glockenspiel/Dn3.mid b/sound/runtime/instruments/glockenspiel/Dn3.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn3.mid rename to sound/runtime/instruments/glockenspiel/Dn3.mid diff --git a/sound/instruments/glockenspiel/Dn4.mid b/sound/runtime/instruments/glockenspiel/Dn4.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn4.mid rename to sound/runtime/instruments/glockenspiel/Dn4.mid diff --git a/sound/instruments/glockenspiel/Dn5.mid b/sound/runtime/instruments/glockenspiel/Dn5.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn5.mid rename to sound/runtime/instruments/glockenspiel/Dn5.mid diff --git a/sound/instruments/glockenspiel/Dn6.mid b/sound/runtime/instruments/glockenspiel/Dn6.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn6.mid rename to sound/runtime/instruments/glockenspiel/Dn6.mid diff --git a/sound/instruments/glockenspiel/Dn7.mid b/sound/runtime/instruments/glockenspiel/Dn7.mid similarity index 100% rename from sound/instruments/glockenspiel/Dn7.mid rename to sound/runtime/instruments/glockenspiel/Dn7.mid diff --git a/sound/instruments/glockenspiel/Eb2.mid b/sound/runtime/instruments/glockenspiel/Eb2.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb2.mid rename to sound/runtime/instruments/glockenspiel/Eb2.mid diff --git a/sound/instruments/glockenspiel/Eb3.mid b/sound/runtime/instruments/glockenspiel/Eb3.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb3.mid rename to sound/runtime/instruments/glockenspiel/Eb3.mid diff --git a/sound/instruments/glockenspiel/Eb4.mid b/sound/runtime/instruments/glockenspiel/Eb4.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb4.mid rename to sound/runtime/instruments/glockenspiel/Eb4.mid diff --git a/sound/instruments/glockenspiel/Eb5.mid b/sound/runtime/instruments/glockenspiel/Eb5.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb5.mid rename to sound/runtime/instruments/glockenspiel/Eb5.mid diff --git a/sound/instruments/glockenspiel/Eb6.mid b/sound/runtime/instruments/glockenspiel/Eb6.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb6.mid rename to sound/runtime/instruments/glockenspiel/Eb6.mid diff --git a/sound/instruments/glockenspiel/Eb7.mid b/sound/runtime/instruments/glockenspiel/Eb7.mid similarity index 100% rename from sound/instruments/glockenspiel/Eb7.mid rename to sound/runtime/instruments/glockenspiel/Eb7.mid diff --git a/sound/instruments/glockenspiel/En2.mid b/sound/runtime/instruments/glockenspiel/En2.mid similarity index 100% rename from sound/instruments/glockenspiel/En2.mid rename to sound/runtime/instruments/glockenspiel/En2.mid diff --git a/sound/instruments/glockenspiel/En3.mid b/sound/runtime/instruments/glockenspiel/En3.mid similarity index 100% rename from sound/instruments/glockenspiel/En3.mid rename to sound/runtime/instruments/glockenspiel/En3.mid diff --git a/sound/instruments/glockenspiel/En4.mid b/sound/runtime/instruments/glockenspiel/En4.mid similarity index 100% rename from sound/instruments/glockenspiel/En4.mid rename to sound/runtime/instruments/glockenspiel/En4.mid diff --git a/sound/instruments/glockenspiel/En5.mid b/sound/runtime/instruments/glockenspiel/En5.mid similarity index 100% rename from sound/instruments/glockenspiel/En5.mid rename to sound/runtime/instruments/glockenspiel/En5.mid diff --git a/sound/instruments/glockenspiel/En6.mid b/sound/runtime/instruments/glockenspiel/En6.mid similarity index 100% rename from sound/instruments/glockenspiel/En6.mid rename to sound/runtime/instruments/glockenspiel/En6.mid diff --git a/sound/instruments/glockenspiel/En7.mid b/sound/runtime/instruments/glockenspiel/En7.mid similarity index 100% rename from sound/instruments/glockenspiel/En7.mid rename to sound/runtime/instruments/glockenspiel/En7.mid diff --git a/sound/instruments/glockenspiel/Fn2.mid b/sound/runtime/instruments/glockenspiel/Fn2.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn2.mid rename to sound/runtime/instruments/glockenspiel/Fn2.mid diff --git a/sound/instruments/glockenspiel/Fn3.mid b/sound/runtime/instruments/glockenspiel/Fn3.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn3.mid rename to sound/runtime/instruments/glockenspiel/Fn3.mid diff --git a/sound/instruments/glockenspiel/Fn4.mid b/sound/runtime/instruments/glockenspiel/Fn4.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn4.mid rename to sound/runtime/instruments/glockenspiel/Fn4.mid diff --git a/sound/instruments/glockenspiel/Fn5.mid b/sound/runtime/instruments/glockenspiel/Fn5.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn5.mid rename to sound/runtime/instruments/glockenspiel/Fn5.mid diff --git a/sound/instruments/glockenspiel/Fn6.mid b/sound/runtime/instruments/glockenspiel/Fn6.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn6.mid rename to sound/runtime/instruments/glockenspiel/Fn6.mid diff --git a/sound/instruments/glockenspiel/Fn7.mid b/sound/runtime/instruments/glockenspiel/Fn7.mid similarity index 100% rename from sound/instruments/glockenspiel/Fn7.mid rename to sound/runtime/instruments/glockenspiel/Fn7.mid diff --git a/sound/instruments/glockenspiel/Gb2.mid b/sound/runtime/instruments/glockenspiel/Gb2.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb2.mid rename to sound/runtime/instruments/glockenspiel/Gb2.mid diff --git a/sound/instruments/glockenspiel/Gb3.mid b/sound/runtime/instruments/glockenspiel/Gb3.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb3.mid rename to sound/runtime/instruments/glockenspiel/Gb3.mid diff --git a/sound/instruments/glockenspiel/Gb4.mid b/sound/runtime/instruments/glockenspiel/Gb4.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb4.mid rename to sound/runtime/instruments/glockenspiel/Gb4.mid diff --git a/sound/instruments/glockenspiel/Gb5.mid b/sound/runtime/instruments/glockenspiel/Gb5.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb5.mid rename to sound/runtime/instruments/glockenspiel/Gb5.mid diff --git a/sound/instruments/glockenspiel/Gb6.mid b/sound/runtime/instruments/glockenspiel/Gb6.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb6.mid rename to sound/runtime/instruments/glockenspiel/Gb6.mid diff --git a/sound/instruments/glockenspiel/Gb7.mid b/sound/runtime/instruments/glockenspiel/Gb7.mid similarity index 100% rename from sound/instruments/glockenspiel/Gb7.mid rename to sound/runtime/instruments/glockenspiel/Gb7.mid diff --git a/sound/instruments/glockenspiel/Gn2.mid b/sound/runtime/instruments/glockenspiel/Gn2.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn2.mid rename to sound/runtime/instruments/glockenspiel/Gn2.mid diff --git a/sound/instruments/glockenspiel/Gn3.mid b/sound/runtime/instruments/glockenspiel/Gn3.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn3.mid rename to sound/runtime/instruments/glockenspiel/Gn3.mid diff --git a/sound/instruments/glockenspiel/Gn4.mid b/sound/runtime/instruments/glockenspiel/Gn4.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn4.mid rename to sound/runtime/instruments/glockenspiel/Gn4.mid diff --git a/sound/instruments/glockenspiel/Gn5.mid b/sound/runtime/instruments/glockenspiel/Gn5.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn5.mid rename to sound/runtime/instruments/glockenspiel/Gn5.mid diff --git a/sound/instruments/glockenspiel/Gn6.mid b/sound/runtime/instruments/glockenspiel/Gn6.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn6.mid rename to sound/runtime/instruments/glockenspiel/Gn6.mid diff --git a/sound/instruments/glockenspiel/Gn7.mid b/sound/runtime/instruments/glockenspiel/Gn7.mid similarity index 100% rename from sound/instruments/glockenspiel/Gn7.mid rename to sound/runtime/instruments/glockenspiel/Gn7.mid diff --git a/sound/instruments/guitar/Ab3.ogg b/sound/runtime/instruments/guitar/Ab3.ogg similarity index 100% rename from sound/instruments/guitar/Ab3.ogg rename to sound/runtime/instruments/guitar/Ab3.ogg diff --git a/sound/instruments/guitar/Ab4.ogg b/sound/runtime/instruments/guitar/Ab4.ogg similarity index 100% rename from sound/instruments/guitar/Ab4.ogg rename to sound/runtime/instruments/guitar/Ab4.ogg diff --git a/sound/instruments/guitar/Ab5.ogg b/sound/runtime/instruments/guitar/Ab5.ogg similarity index 100% rename from sound/instruments/guitar/Ab5.ogg rename to sound/runtime/instruments/guitar/Ab5.ogg diff --git a/sound/instruments/guitar/Ab6.ogg b/sound/runtime/instruments/guitar/Ab6.ogg similarity index 100% rename from sound/instruments/guitar/Ab6.ogg rename to sound/runtime/instruments/guitar/Ab6.ogg diff --git a/sound/instruments/guitar/An3.ogg b/sound/runtime/instruments/guitar/An3.ogg similarity index 100% rename from sound/instruments/guitar/An3.ogg rename to sound/runtime/instruments/guitar/An3.ogg diff --git a/sound/instruments/guitar/An4.ogg b/sound/runtime/instruments/guitar/An4.ogg similarity index 100% rename from sound/instruments/guitar/An4.ogg rename to sound/runtime/instruments/guitar/An4.ogg diff --git a/sound/instruments/guitar/An5.ogg b/sound/runtime/instruments/guitar/An5.ogg similarity index 100% rename from sound/instruments/guitar/An5.ogg rename to sound/runtime/instruments/guitar/An5.ogg diff --git a/sound/instruments/guitar/An6.ogg b/sound/runtime/instruments/guitar/An6.ogg similarity index 100% rename from sound/instruments/guitar/An6.ogg rename to sound/runtime/instruments/guitar/An6.ogg diff --git a/sound/instruments/guitar/Bb3.ogg b/sound/runtime/instruments/guitar/Bb3.ogg similarity index 100% rename from sound/instruments/guitar/Bb3.ogg rename to sound/runtime/instruments/guitar/Bb3.ogg diff --git a/sound/instruments/guitar/Bb4.ogg b/sound/runtime/instruments/guitar/Bb4.ogg similarity index 100% rename from sound/instruments/guitar/Bb4.ogg rename to sound/runtime/instruments/guitar/Bb4.ogg diff --git a/sound/instruments/guitar/Bb5.ogg b/sound/runtime/instruments/guitar/Bb5.ogg similarity index 100% rename from sound/instruments/guitar/Bb5.ogg rename to sound/runtime/instruments/guitar/Bb5.ogg diff --git a/sound/instruments/guitar/Bb6.ogg b/sound/runtime/instruments/guitar/Bb6.ogg similarity index 100% rename from sound/instruments/guitar/Bb6.ogg rename to sound/runtime/instruments/guitar/Bb6.ogg diff --git a/sound/instruments/guitar/Bn3.ogg b/sound/runtime/instruments/guitar/Bn3.ogg similarity index 100% rename from sound/instruments/guitar/Bn3.ogg rename to sound/runtime/instruments/guitar/Bn3.ogg diff --git a/sound/instruments/guitar/Bn4.ogg b/sound/runtime/instruments/guitar/Bn4.ogg similarity index 100% rename from sound/instruments/guitar/Bn4.ogg rename to sound/runtime/instruments/guitar/Bn4.ogg diff --git a/sound/instruments/guitar/Bn5.ogg b/sound/runtime/instruments/guitar/Bn5.ogg similarity index 100% rename from sound/instruments/guitar/Bn5.ogg rename to sound/runtime/instruments/guitar/Bn5.ogg diff --git a/sound/instruments/guitar/Bn6.ogg b/sound/runtime/instruments/guitar/Bn6.ogg similarity index 100% rename from sound/instruments/guitar/Bn6.ogg rename to sound/runtime/instruments/guitar/Bn6.ogg diff --git a/sound/instruments/guitar/Cb4.ogg b/sound/runtime/instruments/guitar/Cb4.ogg similarity index 100% rename from sound/instruments/guitar/Cb4.ogg rename to sound/runtime/instruments/guitar/Cb4.ogg diff --git a/sound/instruments/guitar/Cb5.ogg b/sound/runtime/instruments/guitar/Cb5.ogg similarity index 100% rename from sound/instruments/guitar/Cb5.ogg rename to sound/runtime/instruments/guitar/Cb5.ogg diff --git a/sound/instruments/guitar/Cb6.ogg b/sound/runtime/instruments/guitar/Cb6.ogg similarity index 100% rename from sound/instruments/guitar/Cb6.ogg rename to sound/runtime/instruments/guitar/Cb6.ogg diff --git a/sound/instruments/guitar/Cb7.ogg b/sound/runtime/instruments/guitar/Cb7.ogg similarity index 100% rename from sound/instruments/guitar/Cb7.ogg rename to sound/runtime/instruments/guitar/Cb7.ogg diff --git a/sound/instruments/guitar/Cn4.ogg b/sound/runtime/instruments/guitar/Cn4.ogg similarity index 100% rename from sound/instruments/guitar/Cn4.ogg rename to sound/runtime/instruments/guitar/Cn4.ogg diff --git a/sound/instruments/guitar/Cn5.ogg b/sound/runtime/instruments/guitar/Cn5.ogg similarity index 100% rename from sound/instruments/guitar/Cn5.ogg rename to sound/runtime/instruments/guitar/Cn5.ogg diff --git a/sound/instruments/guitar/Cn6.ogg b/sound/runtime/instruments/guitar/Cn6.ogg similarity index 100% rename from sound/instruments/guitar/Cn6.ogg rename to sound/runtime/instruments/guitar/Cn6.ogg diff --git a/sound/instruments/guitar/Db4.ogg b/sound/runtime/instruments/guitar/Db4.ogg similarity index 100% rename from sound/instruments/guitar/Db4.ogg rename to sound/runtime/instruments/guitar/Db4.ogg diff --git a/sound/instruments/guitar/Db5.ogg b/sound/runtime/instruments/guitar/Db5.ogg similarity index 100% rename from sound/instruments/guitar/Db5.ogg rename to sound/runtime/instruments/guitar/Db5.ogg diff --git a/sound/instruments/guitar/Db6.ogg b/sound/runtime/instruments/guitar/Db6.ogg similarity index 100% rename from sound/instruments/guitar/Db6.ogg rename to sound/runtime/instruments/guitar/Db6.ogg diff --git a/sound/instruments/guitar/Dn4.ogg b/sound/runtime/instruments/guitar/Dn4.ogg similarity index 100% rename from sound/instruments/guitar/Dn4.ogg rename to sound/runtime/instruments/guitar/Dn4.ogg diff --git a/sound/instruments/guitar/Dn5.ogg b/sound/runtime/instruments/guitar/Dn5.ogg similarity index 100% rename from sound/instruments/guitar/Dn5.ogg rename to sound/runtime/instruments/guitar/Dn5.ogg diff --git a/sound/instruments/guitar/Dn6.ogg b/sound/runtime/instruments/guitar/Dn6.ogg similarity index 100% rename from sound/instruments/guitar/Dn6.ogg rename to sound/runtime/instruments/guitar/Dn6.ogg diff --git a/sound/instruments/guitar/Eb4.ogg b/sound/runtime/instruments/guitar/Eb4.ogg similarity index 100% rename from sound/instruments/guitar/Eb4.ogg rename to sound/runtime/instruments/guitar/Eb4.ogg diff --git a/sound/instruments/guitar/Eb5.ogg b/sound/runtime/instruments/guitar/Eb5.ogg similarity index 100% rename from sound/instruments/guitar/Eb5.ogg rename to sound/runtime/instruments/guitar/Eb5.ogg diff --git a/sound/instruments/guitar/Eb6.ogg b/sound/runtime/instruments/guitar/Eb6.ogg similarity index 100% rename from sound/instruments/guitar/Eb6.ogg rename to sound/runtime/instruments/guitar/Eb6.ogg diff --git a/sound/instruments/guitar/En3.ogg b/sound/runtime/instruments/guitar/En3.ogg similarity index 100% rename from sound/instruments/guitar/En3.ogg rename to sound/runtime/instruments/guitar/En3.ogg diff --git a/sound/instruments/guitar/En4.ogg b/sound/runtime/instruments/guitar/En4.ogg similarity index 100% rename from sound/instruments/guitar/En4.ogg rename to sound/runtime/instruments/guitar/En4.ogg diff --git a/sound/instruments/guitar/En5.ogg b/sound/runtime/instruments/guitar/En5.ogg similarity index 100% rename from sound/instruments/guitar/En5.ogg rename to sound/runtime/instruments/guitar/En5.ogg diff --git a/sound/instruments/guitar/En6.ogg b/sound/runtime/instruments/guitar/En6.ogg similarity index 100% rename from sound/instruments/guitar/En6.ogg rename to sound/runtime/instruments/guitar/En6.ogg diff --git a/sound/instruments/guitar/Fb3.ogg b/sound/runtime/instruments/guitar/Fb3.ogg similarity index 100% rename from sound/instruments/guitar/Fb3.ogg rename to sound/runtime/instruments/guitar/Fb3.ogg diff --git a/sound/instruments/guitar/Fb4.ogg b/sound/runtime/instruments/guitar/Fb4.ogg similarity index 100% rename from sound/instruments/guitar/Fb4.ogg rename to sound/runtime/instruments/guitar/Fb4.ogg diff --git a/sound/instruments/guitar/Fb5.ogg b/sound/runtime/instruments/guitar/Fb5.ogg similarity index 100% rename from sound/instruments/guitar/Fb5.ogg rename to sound/runtime/instruments/guitar/Fb5.ogg diff --git a/sound/instruments/guitar/Fb6.ogg b/sound/runtime/instruments/guitar/Fb6.ogg similarity index 100% rename from sound/instruments/guitar/Fb6.ogg rename to sound/runtime/instruments/guitar/Fb6.ogg diff --git a/sound/instruments/guitar/Fn3.ogg b/sound/runtime/instruments/guitar/Fn3.ogg similarity index 100% rename from sound/instruments/guitar/Fn3.ogg rename to sound/runtime/instruments/guitar/Fn3.ogg diff --git a/sound/instruments/guitar/Fn4.ogg b/sound/runtime/instruments/guitar/Fn4.ogg similarity index 100% rename from sound/instruments/guitar/Fn4.ogg rename to sound/runtime/instruments/guitar/Fn4.ogg diff --git a/sound/instruments/guitar/Fn5.ogg b/sound/runtime/instruments/guitar/Fn5.ogg similarity index 100% rename from sound/instruments/guitar/Fn5.ogg rename to sound/runtime/instruments/guitar/Fn5.ogg diff --git a/sound/instruments/guitar/Fn6.ogg b/sound/runtime/instruments/guitar/Fn6.ogg similarity index 100% rename from sound/instruments/guitar/Fn6.ogg rename to sound/runtime/instruments/guitar/Fn6.ogg diff --git a/sound/instruments/guitar/Gb3.ogg b/sound/runtime/instruments/guitar/Gb3.ogg similarity index 100% rename from sound/instruments/guitar/Gb3.ogg rename to sound/runtime/instruments/guitar/Gb3.ogg diff --git a/sound/instruments/guitar/Gb4.ogg b/sound/runtime/instruments/guitar/Gb4.ogg similarity index 100% rename from sound/instruments/guitar/Gb4.ogg rename to sound/runtime/instruments/guitar/Gb4.ogg diff --git a/sound/instruments/guitar/Gb5.ogg b/sound/runtime/instruments/guitar/Gb5.ogg similarity index 100% rename from sound/instruments/guitar/Gb5.ogg rename to sound/runtime/instruments/guitar/Gb5.ogg diff --git a/sound/instruments/guitar/Gb6.ogg b/sound/runtime/instruments/guitar/Gb6.ogg similarity index 100% rename from sound/instruments/guitar/Gb6.ogg rename to sound/runtime/instruments/guitar/Gb6.ogg diff --git a/sound/instruments/guitar/Gn3.ogg b/sound/runtime/instruments/guitar/Gn3.ogg similarity index 100% rename from sound/instruments/guitar/Gn3.ogg rename to sound/runtime/instruments/guitar/Gn3.ogg diff --git a/sound/instruments/guitar/Gn4.ogg b/sound/runtime/instruments/guitar/Gn4.ogg similarity index 100% rename from sound/instruments/guitar/Gn4.ogg rename to sound/runtime/instruments/guitar/Gn4.ogg diff --git a/sound/instruments/guitar/Gn5.ogg b/sound/runtime/instruments/guitar/Gn5.ogg similarity index 100% rename from sound/instruments/guitar/Gn5.ogg rename to sound/runtime/instruments/guitar/Gn5.ogg diff --git a/sound/instruments/guitar/Gn6.ogg b/sound/runtime/instruments/guitar/Gn6.ogg similarity index 100% rename from sound/instruments/guitar/Gn6.ogg rename to sound/runtime/instruments/guitar/Gn6.ogg diff --git a/sound/instruments/harmonica/Ab2.mid b/sound/runtime/instruments/harmonica/Ab2.mid similarity index 100% rename from sound/instruments/harmonica/Ab2.mid rename to sound/runtime/instruments/harmonica/Ab2.mid diff --git a/sound/instruments/harmonica/Ab3.mid b/sound/runtime/instruments/harmonica/Ab3.mid similarity index 100% rename from sound/instruments/harmonica/Ab3.mid rename to sound/runtime/instruments/harmonica/Ab3.mid diff --git a/sound/instruments/harmonica/Ab4.mid b/sound/runtime/instruments/harmonica/Ab4.mid similarity index 100% rename from sound/instruments/harmonica/Ab4.mid rename to sound/runtime/instruments/harmonica/Ab4.mid diff --git a/sound/instruments/harmonica/Ab5.mid b/sound/runtime/instruments/harmonica/Ab5.mid similarity index 100% rename from sound/instruments/harmonica/Ab5.mid rename to sound/runtime/instruments/harmonica/Ab5.mid diff --git a/sound/instruments/harmonica/Ab6.mid b/sound/runtime/instruments/harmonica/Ab6.mid similarity index 100% rename from sound/instruments/harmonica/Ab6.mid rename to sound/runtime/instruments/harmonica/Ab6.mid diff --git a/sound/instruments/harmonica/An2.mid b/sound/runtime/instruments/harmonica/An2.mid similarity index 100% rename from sound/instruments/harmonica/An2.mid rename to sound/runtime/instruments/harmonica/An2.mid diff --git a/sound/instruments/harmonica/An3.mid b/sound/runtime/instruments/harmonica/An3.mid similarity index 100% rename from sound/instruments/harmonica/An3.mid rename to sound/runtime/instruments/harmonica/An3.mid diff --git a/sound/instruments/harmonica/An4.mid b/sound/runtime/instruments/harmonica/An4.mid similarity index 100% rename from sound/instruments/harmonica/An4.mid rename to sound/runtime/instruments/harmonica/An4.mid diff --git a/sound/instruments/harmonica/An5.mid b/sound/runtime/instruments/harmonica/An5.mid similarity index 100% rename from sound/instruments/harmonica/An5.mid rename to sound/runtime/instruments/harmonica/An5.mid diff --git a/sound/instruments/harmonica/An6.mid b/sound/runtime/instruments/harmonica/An6.mid similarity index 100% rename from sound/instruments/harmonica/An6.mid rename to sound/runtime/instruments/harmonica/An6.mid diff --git a/sound/instruments/harmonica/Bb2.mid b/sound/runtime/instruments/harmonica/Bb2.mid similarity index 100% rename from sound/instruments/harmonica/Bb2.mid rename to sound/runtime/instruments/harmonica/Bb2.mid diff --git a/sound/instruments/harmonica/Bb3.mid b/sound/runtime/instruments/harmonica/Bb3.mid similarity index 100% rename from sound/instruments/harmonica/Bb3.mid rename to sound/runtime/instruments/harmonica/Bb3.mid diff --git a/sound/instruments/harmonica/Bb4.mid b/sound/runtime/instruments/harmonica/Bb4.mid similarity index 100% rename from sound/instruments/harmonica/Bb4.mid rename to sound/runtime/instruments/harmonica/Bb4.mid diff --git a/sound/instruments/harmonica/Bb5.mid b/sound/runtime/instruments/harmonica/Bb5.mid similarity index 100% rename from sound/instruments/harmonica/Bb5.mid rename to sound/runtime/instruments/harmonica/Bb5.mid diff --git a/sound/instruments/harmonica/Bb6.mid b/sound/runtime/instruments/harmonica/Bb6.mid similarity index 100% rename from sound/instruments/harmonica/Bb6.mid rename to sound/runtime/instruments/harmonica/Bb6.mid diff --git a/sound/instruments/harmonica/Bn2.mid b/sound/runtime/instruments/harmonica/Bn2.mid similarity index 100% rename from sound/instruments/harmonica/Bn2.mid rename to sound/runtime/instruments/harmonica/Bn2.mid diff --git a/sound/instruments/harmonica/Bn3.mid b/sound/runtime/instruments/harmonica/Bn3.mid similarity index 100% rename from sound/instruments/harmonica/Bn3.mid rename to sound/runtime/instruments/harmonica/Bn3.mid diff --git a/sound/instruments/harmonica/Bn4.mid b/sound/runtime/instruments/harmonica/Bn4.mid similarity index 100% rename from sound/instruments/harmonica/Bn4.mid rename to sound/runtime/instruments/harmonica/Bn4.mid diff --git a/sound/instruments/harmonica/Bn5.mid b/sound/runtime/instruments/harmonica/Bn5.mid similarity index 100% rename from sound/instruments/harmonica/Bn5.mid rename to sound/runtime/instruments/harmonica/Bn5.mid diff --git a/sound/instruments/harmonica/Bn6.mid b/sound/runtime/instruments/harmonica/Bn6.mid similarity index 100% rename from sound/instruments/harmonica/Bn6.mid rename to sound/runtime/instruments/harmonica/Bn6.mid diff --git a/sound/instruments/harmonica/Cn2.mid b/sound/runtime/instruments/harmonica/Cn2.mid similarity index 100% rename from sound/instruments/harmonica/Cn2.mid rename to sound/runtime/instruments/harmonica/Cn2.mid diff --git a/sound/instruments/harmonica/Cn3.mid b/sound/runtime/instruments/harmonica/Cn3.mid similarity index 100% rename from sound/instruments/harmonica/Cn3.mid rename to sound/runtime/instruments/harmonica/Cn3.mid diff --git a/sound/instruments/harmonica/Cn4.mid b/sound/runtime/instruments/harmonica/Cn4.mid similarity index 100% rename from sound/instruments/harmonica/Cn4.mid rename to sound/runtime/instruments/harmonica/Cn4.mid diff --git a/sound/instruments/harmonica/Cn5.mid b/sound/runtime/instruments/harmonica/Cn5.mid similarity index 100% rename from sound/instruments/harmonica/Cn5.mid rename to sound/runtime/instruments/harmonica/Cn5.mid diff --git a/sound/instruments/harmonica/Cn6.mid b/sound/runtime/instruments/harmonica/Cn6.mid similarity index 100% rename from sound/instruments/harmonica/Cn6.mid rename to sound/runtime/instruments/harmonica/Cn6.mid diff --git a/sound/instruments/harmonica/Cn7.mid b/sound/runtime/instruments/harmonica/Cn7.mid similarity index 100% rename from sound/instruments/harmonica/Cn7.mid rename to sound/runtime/instruments/harmonica/Cn7.mid diff --git a/sound/instruments/harmonica/Db2.mid b/sound/runtime/instruments/harmonica/Db2.mid similarity index 100% rename from sound/instruments/harmonica/Db2.mid rename to sound/runtime/instruments/harmonica/Db2.mid diff --git a/sound/instruments/harmonica/Db3.mid b/sound/runtime/instruments/harmonica/Db3.mid similarity index 100% rename from sound/instruments/harmonica/Db3.mid rename to sound/runtime/instruments/harmonica/Db3.mid diff --git a/sound/instruments/harmonica/Db4.mid b/sound/runtime/instruments/harmonica/Db4.mid similarity index 100% rename from sound/instruments/harmonica/Db4.mid rename to sound/runtime/instruments/harmonica/Db4.mid diff --git a/sound/instruments/harmonica/Db5.mid b/sound/runtime/instruments/harmonica/Db5.mid similarity index 100% rename from sound/instruments/harmonica/Db5.mid rename to sound/runtime/instruments/harmonica/Db5.mid diff --git a/sound/instruments/harmonica/Db6.mid b/sound/runtime/instruments/harmonica/Db6.mid similarity index 100% rename from sound/instruments/harmonica/Db6.mid rename to sound/runtime/instruments/harmonica/Db6.mid diff --git a/sound/instruments/harmonica/Dn2.mid b/sound/runtime/instruments/harmonica/Dn2.mid similarity index 100% rename from sound/instruments/harmonica/Dn2.mid rename to sound/runtime/instruments/harmonica/Dn2.mid diff --git a/sound/instruments/harmonica/Dn3.mid b/sound/runtime/instruments/harmonica/Dn3.mid similarity index 100% rename from sound/instruments/harmonica/Dn3.mid rename to sound/runtime/instruments/harmonica/Dn3.mid diff --git a/sound/instruments/harmonica/Dn4.mid b/sound/runtime/instruments/harmonica/Dn4.mid similarity index 100% rename from sound/instruments/harmonica/Dn4.mid rename to sound/runtime/instruments/harmonica/Dn4.mid diff --git a/sound/instruments/harmonica/Dn5.mid b/sound/runtime/instruments/harmonica/Dn5.mid similarity index 100% rename from sound/instruments/harmonica/Dn5.mid rename to sound/runtime/instruments/harmonica/Dn5.mid diff --git a/sound/instruments/harmonica/Dn6.mid b/sound/runtime/instruments/harmonica/Dn6.mid similarity index 100% rename from sound/instruments/harmonica/Dn6.mid rename to sound/runtime/instruments/harmonica/Dn6.mid diff --git a/sound/instruments/harmonica/Eb2.mid b/sound/runtime/instruments/harmonica/Eb2.mid similarity index 100% rename from sound/instruments/harmonica/Eb2.mid rename to sound/runtime/instruments/harmonica/Eb2.mid diff --git a/sound/instruments/harmonica/Eb3.mid b/sound/runtime/instruments/harmonica/Eb3.mid similarity index 100% rename from sound/instruments/harmonica/Eb3.mid rename to sound/runtime/instruments/harmonica/Eb3.mid diff --git a/sound/instruments/harmonica/Eb4.mid b/sound/runtime/instruments/harmonica/Eb4.mid similarity index 100% rename from sound/instruments/harmonica/Eb4.mid rename to sound/runtime/instruments/harmonica/Eb4.mid diff --git a/sound/instruments/harmonica/Eb5.mid b/sound/runtime/instruments/harmonica/Eb5.mid similarity index 100% rename from sound/instruments/harmonica/Eb5.mid rename to sound/runtime/instruments/harmonica/Eb5.mid diff --git a/sound/instruments/harmonica/Eb6.mid b/sound/runtime/instruments/harmonica/Eb6.mid similarity index 100% rename from sound/instruments/harmonica/Eb6.mid rename to sound/runtime/instruments/harmonica/Eb6.mid diff --git a/sound/instruments/harmonica/En2.mid b/sound/runtime/instruments/harmonica/En2.mid similarity index 100% rename from sound/instruments/harmonica/En2.mid rename to sound/runtime/instruments/harmonica/En2.mid diff --git a/sound/instruments/harmonica/En3.mid b/sound/runtime/instruments/harmonica/En3.mid similarity index 100% rename from sound/instruments/harmonica/En3.mid rename to sound/runtime/instruments/harmonica/En3.mid diff --git a/sound/instruments/harmonica/En4.mid b/sound/runtime/instruments/harmonica/En4.mid similarity index 100% rename from sound/instruments/harmonica/En4.mid rename to sound/runtime/instruments/harmonica/En4.mid diff --git a/sound/instruments/harmonica/En5.mid b/sound/runtime/instruments/harmonica/En5.mid similarity index 100% rename from sound/instruments/harmonica/En5.mid rename to sound/runtime/instruments/harmonica/En5.mid diff --git a/sound/instruments/harmonica/En6.mid b/sound/runtime/instruments/harmonica/En6.mid similarity index 100% rename from sound/instruments/harmonica/En6.mid rename to sound/runtime/instruments/harmonica/En6.mid diff --git a/sound/instruments/harmonica/Fn2.mid b/sound/runtime/instruments/harmonica/Fn2.mid similarity index 100% rename from sound/instruments/harmonica/Fn2.mid rename to sound/runtime/instruments/harmonica/Fn2.mid diff --git a/sound/instruments/harmonica/Fn3.mid b/sound/runtime/instruments/harmonica/Fn3.mid similarity index 100% rename from sound/instruments/harmonica/Fn3.mid rename to sound/runtime/instruments/harmonica/Fn3.mid diff --git a/sound/instruments/harmonica/Fn4.mid b/sound/runtime/instruments/harmonica/Fn4.mid similarity index 100% rename from sound/instruments/harmonica/Fn4.mid rename to sound/runtime/instruments/harmonica/Fn4.mid diff --git a/sound/instruments/harmonica/Fn5.mid b/sound/runtime/instruments/harmonica/Fn5.mid similarity index 100% rename from sound/instruments/harmonica/Fn5.mid rename to sound/runtime/instruments/harmonica/Fn5.mid diff --git a/sound/instruments/harmonica/Fn6.mid b/sound/runtime/instruments/harmonica/Fn6.mid similarity index 100% rename from sound/instruments/harmonica/Fn6.mid rename to sound/runtime/instruments/harmonica/Fn6.mid diff --git a/sound/instruments/harmonica/Gb2.mid b/sound/runtime/instruments/harmonica/Gb2.mid similarity index 100% rename from sound/instruments/harmonica/Gb2.mid rename to sound/runtime/instruments/harmonica/Gb2.mid diff --git a/sound/instruments/harmonica/Gb3.mid b/sound/runtime/instruments/harmonica/Gb3.mid similarity index 100% rename from sound/instruments/harmonica/Gb3.mid rename to sound/runtime/instruments/harmonica/Gb3.mid diff --git a/sound/instruments/harmonica/Gb4.mid b/sound/runtime/instruments/harmonica/Gb4.mid similarity index 100% rename from sound/instruments/harmonica/Gb4.mid rename to sound/runtime/instruments/harmonica/Gb4.mid diff --git a/sound/instruments/harmonica/Gb5.mid b/sound/runtime/instruments/harmonica/Gb5.mid similarity index 100% rename from sound/instruments/harmonica/Gb5.mid rename to sound/runtime/instruments/harmonica/Gb5.mid diff --git a/sound/instruments/harmonica/Gb6.mid b/sound/runtime/instruments/harmonica/Gb6.mid similarity index 100% rename from sound/instruments/harmonica/Gb6.mid rename to sound/runtime/instruments/harmonica/Gb6.mid diff --git a/sound/instruments/harmonica/Gn2.mid b/sound/runtime/instruments/harmonica/Gn2.mid similarity index 100% rename from sound/instruments/harmonica/Gn2.mid rename to sound/runtime/instruments/harmonica/Gn2.mid diff --git a/sound/instruments/harmonica/Gn3.mid b/sound/runtime/instruments/harmonica/Gn3.mid similarity index 100% rename from sound/instruments/harmonica/Gn3.mid rename to sound/runtime/instruments/harmonica/Gn3.mid diff --git a/sound/instruments/harmonica/Gn4.mid b/sound/runtime/instruments/harmonica/Gn4.mid similarity index 100% rename from sound/instruments/harmonica/Gn4.mid rename to sound/runtime/instruments/harmonica/Gn4.mid diff --git a/sound/instruments/harmonica/Gn5.mid b/sound/runtime/instruments/harmonica/Gn5.mid similarity index 100% rename from sound/instruments/harmonica/Gn5.mid rename to sound/runtime/instruments/harmonica/Gn5.mid diff --git a/sound/instruments/harmonica/Gn6.mid b/sound/runtime/instruments/harmonica/Gn6.mid similarity index 100% rename from sound/instruments/harmonica/Gn6.mid rename to sound/runtime/instruments/harmonica/Gn6.mid diff --git a/sound/instruments/piano/Ab2.ogg b/sound/runtime/instruments/piano/Ab2.ogg similarity index 100% rename from sound/instruments/piano/Ab2.ogg rename to sound/runtime/instruments/piano/Ab2.ogg diff --git a/sound/instruments/piano/Ab3.ogg b/sound/runtime/instruments/piano/Ab3.ogg similarity index 100% rename from sound/instruments/piano/Ab3.ogg rename to sound/runtime/instruments/piano/Ab3.ogg diff --git a/sound/instruments/piano/Ab4.ogg b/sound/runtime/instruments/piano/Ab4.ogg similarity index 100% rename from sound/instruments/piano/Ab4.ogg rename to sound/runtime/instruments/piano/Ab4.ogg diff --git a/sound/instruments/piano/Ab5.ogg b/sound/runtime/instruments/piano/Ab5.ogg similarity index 100% rename from sound/instruments/piano/Ab5.ogg rename to sound/runtime/instruments/piano/Ab5.ogg diff --git a/sound/instruments/piano/Ab6.ogg b/sound/runtime/instruments/piano/Ab6.ogg similarity index 100% rename from sound/instruments/piano/Ab6.ogg rename to sound/runtime/instruments/piano/Ab6.ogg diff --git a/sound/instruments/piano/Ab7.ogg b/sound/runtime/instruments/piano/Ab7.ogg similarity index 100% rename from sound/instruments/piano/Ab7.ogg rename to sound/runtime/instruments/piano/Ab7.ogg diff --git a/sound/instruments/piano/Ab8.ogg b/sound/runtime/instruments/piano/Ab8.ogg similarity index 100% rename from sound/instruments/piano/Ab8.ogg rename to sound/runtime/instruments/piano/Ab8.ogg diff --git a/sound/instruments/piano/An1.ogg b/sound/runtime/instruments/piano/An1.ogg similarity index 100% rename from sound/instruments/piano/An1.ogg rename to sound/runtime/instruments/piano/An1.ogg diff --git a/sound/instruments/piano/An2.ogg b/sound/runtime/instruments/piano/An2.ogg similarity index 100% rename from sound/instruments/piano/An2.ogg rename to sound/runtime/instruments/piano/An2.ogg diff --git a/sound/instruments/piano/An3.ogg b/sound/runtime/instruments/piano/An3.ogg similarity index 100% rename from sound/instruments/piano/An3.ogg rename to sound/runtime/instruments/piano/An3.ogg diff --git a/sound/instruments/piano/An4.ogg b/sound/runtime/instruments/piano/An4.ogg similarity index 100% rename from sound/instruments/piano/An4.ogg rename to sound/runtime/instruments/piano/An4.ogg diff --git a/sound/instruments/piano/An5.ogg b/sound/runtime/instruments/piano/An5.ogg similarity index 100% rename from sound/instruments/piano/An5.ogg rename to sound/runtime/instruments/piano/An5.ogg diff --git a/sound/instruments/piano/An6.ogg b/sound/runtime/instruments/piano/An6.ogg similarity index 100% rename from sound/instruments/piano/An6.ogg rename to sound/runtime/instruments/piano/An6.ogg diff --git a/sound/instruments/piano/An7.ogg b/sound/runtime/instruments/piano/An7.ogg similarity index 100% rename from sound/instruments/piano/An7.ogg rename to sound/runtime/instruments/piano/An7.ogg diff --git a/sound/instruments/piano/An8.ogg b/sound/runtime/instruments/piano/An8.ogg similarity index 100% rename from sound/instruments/piano/An8.ogg rename to sound/runtime/instruments/piano/An8.ogg diff --git a/sound/instruments/piano/Bb1.ogg b/sound/runtime/instruments/piano/Bb1.ogg similarity index 100% rename from sound/instruments/piano/Bb1.ogg rename to sound/runtime/instruments/piano/Bb1.ogg diff --git a/sound/instruments/piano/Bb2.ogg b/sound/runtime/instruments/piano/Bb2.ogg similarity index 100% rename from sound/instruments/piano/Bb2.ogg rename to sound/runtime/instruments/piano/Bb2.ogg diff --git a/sound/instruments/piano/Bb3.ogg b/sound/runtime/instruments/piano/Bb3.ogg similarity index 100% rename from sound/instruments/piano/Bb3.ogg rename to sound/runtime/instruments/piano/Bb3.ogg diff --git a/sound/instruments/piano/Bb4.ogg b/sound/runtime/instruments/piano/Bb4.ogg similarity index 100% rename from sound/instruments/piano/Bb4.ogg rename to sound/runtime/instruments/piano/Bb4.ogg diff --git a/sound/instruments/piano/Bb5.ogg b/sound/runtime/instruments/piano/Bb5.ogg similarity index 100% rename from sound/instruments/piano/Bb5.ogg rename to sound/runtime/instruments/piano/Bb5.ogg diff --git a/sound/instruments/piano/Bb6.ogg b/sound/runtime/instruments/piano/Bb6.ogg similarity index 100% rename from sound/instruments/piano/Bb6.ogg rename to sound/runtime/instruments/piano/Bb6.ogg diff --git a/sound/instruments/piano/Bb7.ogg b/sound/runtime/instruments/piano/Bb7.ogg similarity index 100% rename from sound/instruments/piano/Bb7.ogg rename to sound/runtime/instruments/piano/Bb7.ogg diff --git a/sound/instruments/piano/Bb8.ogg b/sound/runtime/instruments/piano/Bb8.ogg similarity index 100% rename from sound/instruments/piano/Bb8.ogg rename to sound/runtime/instruments/piano/Bb8.ogg diff --git a/sound/instruments/piano/Bn1.ogg b/sound/runtime/instruments/piano/Bn1.ogg similarity index 100% rename from sound/instruments/piano/Bn1.ogg rename to sound/runtime/instruments/piano/Bn1.ogg diff --git a/sound/instruments/piano/Bn2.ogg b/sound/runtime/instruments/piano/Bn2.ogg similarity index 100% rename from sound/instruments/piano/Bn2.ogg rename to sound/runtime/instruments/piano/Bn2.ogg diff --git a/sound/instruments/piano/Bn3.ogg b/sound/runtime/instruments/piano/Bn3.ogg similarity index 100% rename from sound/instruments/piano/Bn3.ogg rename to sound/runtime/instruments/piano/Bn3.ogg diff --git a/sound/instruments/piano/Bn4.ogg b/sound/runtime/instruments/piano/Bn4.ogg similarity index 100% rename from sound/instruments/piano/Bn4.ogg rename to sound/runtime/instruments/piano/Bn4.ogg diff --git a/sound/instruments/piano/Bn5.ogg b/sound/runtime/instruments/piano/Bn5.ogg similarity index 100% rename from sound/instruments/piano/Bn5.ogg rename to sound/runtime/instruments/piano/Bn5.ogg diff --git a/sound/instruments/piano/Bn6.ogg b/sound/runtime/instruments/piano/Bn6.ogg similarity index 100% rename from sound/instruments/piano/Bn6.ogg rename to sound/runtime/instruments/piano/Bn6.ogg diff --git a/sound/instruments/piano/Bn7.ogg b/sound/runtime/instruments/piano/Bn7.ogg similarity index 100% rename from sound/instruments/piano/Bn7.ogg rename to sound/runtime/instruments/piano/Bn7.ogg diff --git a/sound/instruments/piano/Bn8.ogg b/sound/runtime/instruments/piano/Bn8.ogg similarity index 100% rename from sound/instruments/piano/Bn8.ogg rename to sound/runtime/instruments/piano/Bn8.ogg diff --git a/sound/instruments/piano/Cn2.ogg b/sound/runtime/instruments/piano/Cn2.ogg similarity index 100% rename from sound/instruments/piano/Cn2.ogg rename to sound/runtime/instruments/piano/Cn2.ogg diff --git a/sound/instruments/piano/Cn3.ogg b/sound/runtime/instruments/piano/Cn3.ogg similarity index 100% rename from sound/instruments/piano/Cn3.ogg rename to sound/runtime/instruments/piano/Cn3.ogg diff --git a/sound/instruments/piano/Cn4.ogg b/sound/runtime/instruments/piano/Cn4.ogg similarity index 100% rename from sound/instruments/piano/Cn4.ogg rename to sound/runtime/instruments/piano/Cn4.ogg diff --git a/sound/instruments/piano/Cn5.ogg b/sound/runtime/instruments/piano/Cn5.ogg similarity index 100% rename from sound/instruments/piano/Cn5.ogg rename to sound/runtime/instruments/piano/Cn5.ogg diff --git a/sound/instruments/piano/Cn6.ogg b/sound/runtime/instruments/piano/Cn6.ogg similarity index 100% rename from sound/instruments/piano/Cn6.ogg rename to sound/runtime/instruments/piano/Cn6.ogg diff --git a/sound/instruments/piano/Cn7.ogg b/sound/runtime/instruments/piano/Cn7.ogg similarity index 100% rename from sound/instruments/piano/Cn7.ogg rename to sound/runtime/instruments/piano/Cn7.ogg diff --git a/sound/instruments/piano/Cn8.ogg b/sound/runtime/instruments/piano/Cn8.ogg similarity index 100% rename from sound/instruments/piano/Cn8.ogg rename to sound/runtime/instruments/piano/Cn8.ogg diff --git a/sound/instruments/piano/Cn9.ogg b/sound/runtime/instruments/piano/Cn9.ogg similarity index 100% rename from sound/instruments/piano/Cn9.ogg rename to sound/runtime/instruments/piano/Cn9.ogg diff --git a/sound/instruments/piano/Db2.ogg b/sound/runtime/instruments/piano/Db2.ogg similarity index 100% rename from sound/instruments/piano/Db2.ogg rename to sound/runtime/instruments/piano/Db2.ogg diff --git a/sound/instruments/piano/Db3.ogg b/sound/runtime/instruments/piano/Db3.ogg similarity index 100% rename from sound/instruments/piano/Db3.ogg rename to sound/runtime/instruments/piano/Db3.ogg diff --git a/sound/instruments/piano/Db4.ogg b/sound/runtime/instruments/piano/Db4.ogg similarity index 100% rename from sound/instruments/piano/Db4.ogg rename to sound/runtime/instruments/piano/Db4.ogg diff --git a/sound/instruments/piano/Db5.ogg b/sound/runtime/instruments/piano/Db5.ogg similarity index 100% rename from sound/instruments/piano/Db5.ogg rename to sound/runtime/instruments/piano/Db5.ogg diff --git a/sound/instruments/piano/Db6.ogg b/sound/runtime/instruments/piano/Db6.ogg similarity index 100% rename from sound/instruments/piano/Db6.ogg rename to sound/runtime/instruments/piano/Db6.ogg diff --git a/sound/instruments/piano/Db7.ogg b/sound/runtime/instruments/piano/Db7.ogg similarity index 100% rename from sound/instruments/piano/Db7.ogg rename to sound/runtime/instruments/piano/Db7.ogg diff --git a/sound/instruments/piano/Db8.ogg b/sound/runtime/instruments/piano/Db8.ogg similarity index 100% rename from sound/instruments/piano/Db8.ogg rename to sound/runtime/instruments/piano/Db8.ogg diff --git a/sound/instruments/piano/Dn2.ogg b/sound/runtime/instruments/piano/Dn2.ogg similarity index 100% rename from sound/instruments/piano/Dn2.ogg rename to sound/runtime/instruments/piano/Dn2.ogg diff --git a/sound/instruments/piano/Dn3.ogg b/sound/runtime/instruments/piano/Dn3.ogg similarity index 100% rename from sound/instruments/piano/Dn3.ogg rename to sound/runtime/instruments/piano/Dn3.ogg diff --git a/sound/instruments/piano/Dn4.ogg b/sound/runtime/instruments/piano/Dn4.ogg similarity index 100% rename from sound/instruments/piano/Dn4.ogg rename to sound/runtime/instruments/piano/Dn4.ogg diff --git a/sound/instruments/piano/Dn5.ogg b/sound/runtime/instruments/piano/Dn5.ogg similarity index 100% rename from sound/instruments/piano/Dn5.ogg rename to sound/runtime/instruments/piano/Dn5.ogg diff --git a/sound/instruments/piano/Dn6.ogg b/sound/runtime/instruments/piano/Dn6.ogg similarity index 100% rename from sound/instruments/piano/Dn6.ogg rename to sound/runtime/instruments/piano/Dn6.ogg diff --git a/sound/instruments/piano/Dn7.ogg b/sound/runtime/instruments/piano/Dn7.ogg similarity index 100% rename from sound/instruments/piano/Dn7.ogg rename to sound/runtime/instruments/piano/Dn7.ogg diff --git a/sound/instruments/piano/Dn8.ogg b/sound/runtime/instruments/piano/Dn8.ogg similarity index 100% rename from sound/instruments/piano/Dn8.ogg rename to sound/runtime/instruments/piano/Dn8.ogg diff --git a/sound/instruments/piano/Eb2.ogg b/sound/runtime/instruments/piano/Eb2.ogg similarity index 100% rename from sound/instruments/piano/Eb2.ogg rename to sound/runtime/instruments/piano/Eb2.ogg diff --git a/sound/instruments/piano/Eb3.ogg b/sound/runtime/instruments/piano/Eb3.ogg similarity index 100% rename from sound/instruments/piano/Eb3.ogg rename to sound/runtime/instruments/piano/Eb3.ogg diff --git a/sound/instruments/piano/Eb4.ogg b/sound/runtime/instruments/piano/Eb4.ogg similarity index 100% rename from sound/instruments/piano/Eb4.ogg rename to sound/runtime/instruments/piano/Eb4.ogg diff --git a/sound/instruments/piano/Eb5.ogg b/sound/runtime/instruments/piano/Eb5.ogg similarity index 100% rename from sound/instruments/piano/Eb5.ogg rename to sound/runtime/instruments/piano/Eb5.ogg diff --git a/sound/instruments/piano/Eb6.ogg b/sound/runtime/instruments/piano/Eb6.ogg similarity index 100% rename from sound/instruments/piano/Eb6.ogg rename to sound/runtime/instruments/piano/Eb6.ogg diff --git a/sound/instruments/piano/Eb7.ogg b/sound/runtime/instruments/piano/Eb7.ogg similarity index 100% rename from sound/instruments/piano/Eb7.ogg rename to sound/runtime/instruments/piano/Eb7.ogg diff --git a/sound/instruments/piano/Eb8.ogg b/sound/runtime/instruments/piano/Eb8.ogg similarity index 100% rename from sound/instruments/piano/Eb8.ogg rename to sound/runtime/instruments/piano/Eb8.ogg diff --git a/sound/instruments/piano/En2.ogg b/sound/runtime/instruments/piano/En2.ogg similarity index 100% rename from sound/instruments/piano/En2.ogg rename to sound/runtime/instruments/piano/En2.ogg diff --git a/sound/instruments/piano/En3.ogg b/sound/runtime/instruments/piano/En3.ogg similarity index 100% rename from sound/instruments/piano/En3.ogg rename to sound/runtime/instruments/piano/En3.ogg diff --git a/sound/instruments/piano/En4.ogg b/sound/runtime/instruments/piano/En4.ogg similarity index 100% rename from sound/instruments/piano/En4.ogg rename to sound/runtime/instruments/piano/En4.ogg diff --git a/sound/instruments/piano/En5.ogg b/sound/runtime/instruments/piano/En5.ogg similarity index 100% rename from sound/instruments/piano/En5.ogg rename to sound/runtime/instruments/piano/En5.ogg diff --git a/sound/instruments/piano/En6.ogg b/sound/runtime/instruments/piano/En6.ogg similarity index 100% rename from sound/instruments/piano/En6.ogg rename to sound/runtime/instruments/piano/En6.ogg diff --git a/sound/instruments/piano/En7.ogg b/sound/runtime/instruments/piano/En7.ogg similarity index 100% rename from sound/instruments/piano/En7.ogg rename to sound/runtime/instruments/piano/En7.ogg diff --git a/sound/instruments/piano/En8.ogg b/sound/runtime/instruments/piano/En8.ogg similarity index 100% rename from sound/instruments/piano/En8.ogg rename to sound/runtime/instruments/piano/En8.ogg diff --git a/sound/instruments/piano/Fn2.ogg b/sound/runtime/instruments/piano/Fn2.ogg similarity index 100% rename from sound/instruments/piano/Fn2.ogg rename to sound/runtime/instruments/piano/Fn2.ogg diff --git a/sound/instruments/piano/Fn3.ogg b/sound/runtime/instruments/piano/Fn3.ogg similarity index 100% rename from sound/instruments/piano/Fn3.ogg rename to sound/runtime/instruments/piano/Fn3.ogg diff --git a/sound/instruments/piano/Fn4.ogg b/sound/runtime/instruments/piano/Fn4.ogg similarity index 100% rename from sound/instruments/piano/Fn4.ogg rename to sound/runtime/instruments/piano/Fn4.ogg diff --git a/sound/instruments/piano/Fn5.ogg b/sound/runtime/instruments/piano/Fn5.ogg similarity index 100% rename from sound/instruments/piano/Fn5.ogg rename to sound/runtime/instruments/piano/Fn5.ogg diff --git a/sound/instruments/piano/Fn6.ogg b/sound/runtime/instruments/piano/Fn6.ogg similarity index 100% rename from sound/instruments/piano/Fn6.ogg rename to sound/runtime/instruments/piano/Fn6.ogg diff --git a/sound/instruments/piano/Fn7.ogg b/sound/runtime/instruments/piano/Fn7.ogg similarity index 100% rename from sound/instruments/piano/Fn7.ogg rename to sound/runtime/instruments/piano/Fn7.ogg diff --git a/sound/instruments/piano/Fn8.ogg b/sound/runtime/instruments/piano/Fn8.ogg similarity index 100% rename from sound/instruments/piano/Fn8.ogg rename to sound/runtime/instruments/piano/Fn8.ogg diff --git a/sound/instruments/piano/Gb2.ogg b/sound/runtime/instruments/piano/Gb2.ogg similarity index 100% rename from sound/instruments/piano/Gb2.ogg rename to sound/runtime/instruments/piano/Gb2.ogg diff --git a/sound/instruments/piano/Gb3.ogg b/sound/runtime/instruments/piano/Gb3.ogg similarity index 100% rename from sound/instruments/piano/Gb3.ogg rename to sound/runtime/instruments/piano/Gb3.ogg diff --git a/sound/instruments/piano/Gb4.ogg b/sound/runtime/instruments/piano/Gb4.ogg similarity index 100% rename from sound/instruments/piano/Gb4.ogg rename to sound/runtime/instruments/piano/Gb4.ogg diff --git a/sound/instruments/piano/Gb5.ogg b/sound/runtime/instruments/piano/Gb5.ogg similarity index 100% rename from sound/instruments/piano/Gb5.ogg rename to sound/runtime/instruments/piano/Gb5.ogg diff --git a/sound/instruments/piano/Gb6.ogg b/sound/runtime/instruments/piano/Gb6.ogg similarity index 100% rename from sound/instruments/piano/Gb6.ogg rename to sound/runtime/instruments/piano/Gb6.ogg diff --git a/sound/instruments/piano/Gb7.ogg b/sound/runtime/instruments/piano/Gb7.ogg similarity index 100% rename from sound/instruments/piano/Gb7.ogg rename to sound/runtime/instruments/piano/Gb7.ogg diff --git a/sound/instruments/piano/Gb8.ogg b/sound/runtime/instruments/piano/Gb8.ogg similarity index 100% rename from sound/instruments/piano/Gb8.ogg rename to sound/runtime/instruments/piano/Gb8.ogg diff --git a/sound/instruments/piano/Gn2.ogg b/sound/runtime/instruments/piano/Gn2.ogg similarity index 100% rename from sound/instruments/piano/Gn2.ogg rename to sound/runtime/instruments/piano/Gn2.ogg diff --git a/sound/instruments/piano/Gn3.ogg b/sound/runtime/instruments/piano/Gn3.ogg similarity index 100% rename from sound/instruments/piano/Gn3.ogg rename to sound/runtime/instruments/piano/Gn3.ogg diff --git a/sound/instruments/piano/Gn4.ogg b/sound/runtime/instruments/piano/Gn4.ogg similarity index 100% rename from sound/instruments/piano/Gn4.ogg rename to sound/runtime/instruments/piano/Gn4.ogg diff --git a/sound/instruments/piano/Gn5.ogg b/sound/runtime/instruments/piano/Gn5.ogg similarity index 100% rename from sound/instruments/piano/Gn5.ogg rename to sound/runtime/instruments/piano/Gn5.ogg diff --git a/sound/instruments/piano/Gn6.ogg b/sound/runtime/instruments/piano/Gn6.ogg similarity index 100% rename from sound/instruments/piano/Gn6.ogg rename to sound/runtime/instruments/piano/Gn6.ogg diff --git a/sound/instruments/piano/Gn7.ogg b/sound/runtime/instruments/piano/Gn7.ogg similarity index 100% rename from sound/instruments/piano/Gn7.ogg rename to sound/runtime/instruments/piano/Gn7.ogg diff --git a/sound/instruments/piano/Gn8.ogg b/sound/runtime/instruments/piano/Gn8.ogg similarity index 100% rename from sound/instruments/piano/Gn8.ogg rename to sound/runtime/instruments/piano/Gn8.ogg diff --git a/sound/instruments/recorder/Ab2.mid b/sound/runtime/instruments/recorder/Ab2.mid similarity index 100% rename from sound/instruments/recorder/Ab2.mid rename to sound/runtime/instruments/recorder/Ab2.mid diff --git a/sound/instruments/recorder/Ab3.mid b/sound/runtime/instruments/recorder/Ab3.mid similarity index 100% rename from sound/instruments/recorder/Ab3.mid rename to sound/runtime/instruments/recorder/Ab3.mid diff --git a/sound/instruments/recorder/Ab4.mid b/sound/runtime/instruments/recorder/Ab4.mid similarity index 100% rename from sound/instruments/recorder/Ab4.mid rename to sound/runtime/instruments/recorder/Ab4.mid diff --git a/sound/instruments/recorder/Ab5.mid b/sound/runtime/instruments/recorder/Ab5.mid similarity index 100% rename from sound/instruments/recorder/Ab5.mid rename to sound/runtime/instruments/recorder/Ab5.mid diff --git a/sound/instruments/recorder/Ab6.mid b/sound/runtime/instruments/recorder/Ab6.mid similarity index 100% rename from sound/instruments/recorder/Ab6.mid rename to sound/runtime/instruments/recorder/Ab6.mid diff --git a/sound/instruments/recorder/An2.mid b/sound/runtime/instruments/recorder/An2.mid similarity index 100% rename from sound/instruments/recorder/An2.mid rename to sound/runtime/instruments/recorder/An2.mid diff --git a/sound/instruments/recorder/An3.mid b/sound/runtime/instruments/recorder/An3.mid similarity index 100% rename from sound/instruments/recorder/An3.mid rename to sound/runtime/instruments/recorder/An3.mid diff --git a/sound/instruments/recorder/An4.mid b/sound/runtime/instruments/recorder/An4.mid similarity index 100% rename from sound/instruments/recorder/An4.mid rename to sound/runtime/instruments/recorder/An4.mid diff --git a/sound/instruments/recorder/An5.mid b/sound/runtime/instruments/recorder/An5.mid similarity index 100% rename from sound/instruments/recorder/An5.mid rename to sound/runtime/instruments/recorder/An5.mid diff --git a/sound/instruments/recorder/An6.mid b/sound/runtime/instruments/recorder/An6.mid similarity index 100% rename from sound/instruments/recorder/An6.mid rename to sound/runtime/instruments/recorder/An6.mid diff --git a/sound/instruments/recorder/Bb2.mid b/sound/runtime/instruments/recorder/Bb2.mid similarity index 100% rename from sound/instruments/recorder/Bb2.mid rename to sound/runtime/instruments/recorder/Bb2.mid diff --git a/sound/instruments/recorder/Bb3.mid b/sound/runtime/instruments/recorder/Bb3.mid similarity index 100% rename from sound/instruments/recorder/Bb3.mid rename to sound/runtime/instruments/recorder/Bb3.mid diff --git a/sound/instruments/recorder/Bb4.mid b/sound/runtime/instruments/recorder/Bb4.mid similarity index 100% rename from sound/instruments/recorder/Bb4.mid rename to sound/runtime/instruments/recorder/Bb4.mid diff --git a/sound/instruments/recorder/Bb5.mid b/sound/runtime/instruments/recorder/Bb5.mid similarity index 100% rename from sound/instruments/recorder/Bb5.mid rename to sound/runtime/instruments/recorder/Bb5.mid diff --git a/sound/instruments/recorder/Bb6.mid b/sound/runtime/instruments/recorder/Bb6.mid similarity index 100% rename from sound/instruments/recorder/Bb6.mid rename to sound/runtime/instruments/recorder/Bb6.mid diff --git a/sound/instruments/recorder/Bn2.mid b/sound/runtime/instruments/recorder/Bn2.mid similarity index 100% rename from sound/instruments/recorder/Bn2.mid rename to sound/runtime/instruments/recorder/Bn2.mid diff --git a/sound/instruments/recorder/Bn3.mid b/sound/runtime/instruments/recorder/Bn3.mid similarity index 100% rename from sound/instruments/recorder/Bn3.mid rename to sound/runtime/instruments/recorder/Bn3.mid diff --git a/sound/instruments/recorder/Bn4.mid b/sound/runtime/instruments/recorder/Bn4.mid similarity index 100% rename from sound/instruments/recorder/Bn4.mid rename to sound/runtime/instruments/recorder/Bn4.mid diff --git a/sound/instruments/recorder/Bn5.mid b/sound/runtime/instruments/recorder/Bn5.mid similarity index 100% rename from sound/instruments/recorder/Bn5.mid rename to sound/runtime/instruments/recorder/Bn5.mid diff --git a/sound/instruments/recorder/Bn6.mid b/sound/runtime/instruments/recorder/Bn6.mid similarity index 100% rename from sound/instruments/recorder/Bn6.mid rename to sound/runtime/instruments/recorder/Bn6.mid diff --git a/sound/instruments/recorder/Cn2.mid b/sound/runtime/instruments/recorder/Cn2.mid similarity index 100% rename from sound/instruments/recorder/Cn2.mid rename to sound/runtime/instruments/recorder/Cn2.mid diff --git a/sound/instruments/recorder/Cn3.mid b/sound/runtime/instruments/recorder/Cn3.mid similarity index 100% rename from sound/instruments/recorder/Cn3.mid rename to sound/runtime/instruments/recorder/Cn3.mid diff --git a/sound/instruments/recorder/Cn4.mid b/sound/runtime/instruments/recorder/Cn4.mid similarity index 100% rename from sound/instruments/recorder/Cn4.mid rename to sound/runtime/instruments/recorder/Cn4.mid diff --git a/sound/instruments/recorder/Cn5.mid b/sound/runtime/instruments/recorder/Cn5.mid similarity index 100% rename from sound/instruments/recorder/Cn5.mid rename to sound/runtime/instruments/recorder/Cn5.mid diff --git a/sound/instruments/recorder/Cn6.mid b/sound/runtime/instruments/recorder/Cn6.mid similarity index 100% rename from sound/instruments/recorder/Cn6.mid rename to sound/runtime/instruments/recorder/Cn6.mid diff --git a/sound/instruments/recorder/Cn7.mid b/sound/runtime/instruments/recorder/Cn7.mid similarity index 100% rename from sound/instruments/recorder/Cn7.mid rename to sound/runtime/instruments/recorder/Cn7.mid diff --git a/sound/instruments/recorder/Db2.mid b/sound/runtime/instruments/recorder/Db2.mid similarity index 100% rename from sound/instruments/recorder/Db2.mid rename to sound/runtime/instruments/recorder/Db2.mid diff --git a/sound/instruments/recorder/Db3.mid b/sound/runtime/instruments/recorder/Db3.mid similarity index 100% rename from sound/instruments/recorder/Db3.mid rename to sound/runtime/instruments/recorder/Db3.mid diff --git a/sound/instruments/recorder/Db4.mid b/sound/runtime/instruments/recorder/Db4.mid similarity index 100% rename from sound/instruments/recorder/Db4.mid rename to sound/runtime/instruments/recorder/Db4.mid diff --git a/sound/instruments/recorder/Db5.mid b/sound/runtime/instruments/recorder/Db5.mid similarity index 100% rename from sound/instruments/recorder/Db5.mid rename to sound/runtime/instruments/recorder/Db5.mid diff --git a/sound/instruments/recorder/Db6.mid b/sound/runtime/instruments/recorder/Db6.mid similarity index 100% rename from sound/instruments/recorder/Db6.mid rename to sound/runtime/instruments/recorder/Db6.mid diff --git a/sound/instruments/recorder/Db7.mid b/sound/runtime/instruments/recorder/Db7.mid similarity index 100% rename from sound/instruments/recorder/Db7.mid rename to sound/runtime/instruments/recorder/Db7.mid diff --git a/sound/instruments/recorder/Dn2.mid b/sound/runtime/instruments/recorder/Dn2.mid similarity index 100% rename from sound/instruments/recorder/Dn2.mid rename to sound/runtime/instruments/recorder/Dn2.mid diff --git a/sound/instruments/recorder/Dn3.mid b/sound/runtime/instruments/recorder/Dn3.mid similarity index 100% rename from sound/instruments/recorder/Dn3.mid rename to sound/runtime/instruments/recorder/Dn3.mid diff --git a/sound/instruments/recorder/Dn4.mid b/sound/runtime/instruments/recorder/Dn4.mid similarity index 100% rename from sound/instruments/recorder/Dn4.mid rename to sound/runtime/instruments/recorder/Dn4.mid diff --git a/sound/instruments/recorder/Dn5.mid b/sound/runtime/instruments/recorder/Dn5.mid similarity index 100% rename from sound/instruments/recorder/Dn5.mid rename to sound/runtime/instruments/recorder/Dn5.mid diff --git a/sound/instruments/recorder/Dn6.mid b/sound/runtime/instruments/recorder/Dn6.mid similarity index 100% rename from sound/instruments/recorder/Dn6.mid rename to sound/runtime/instruments/recorder/Dn6.mid diff --git a/sound/instruments/recorder/Eb2.mid b/sound/runtime/instruments/recorder/Eb2.mid similarity index 100% rename from sound/instruments/recorder/Eb2.mid rename to sound/runtime/instruments/recorder/Eb2.mid diff --git a/sound/instruments/recorder/Eb3.mid b/sound/runtime/instruments/recorder/Eb3.mid similarity index 100% rename from sound/instruments/recorder/Eb3.mid rename to sound/runtime/instruments/recorder/Eb3.mid diff --git a/sound/instruments/recorder/Eb4.mid b/sound/runtime/instruments/recorder/Eb4.mid similarity index 100% rename from sound/instruments/recorder/Eb4.mid rename to sound/runtime/instruments/recorder/Eb4.mid diff --git a/sound/instruments/recorder/Eb5.mid b/sound/runtime/instruments/recorder/Eb5.mid similarity index 100% rename from sound/instruments/recorder/Eb5.mid rename to sound/runtime/instruments/recorder/Eb5.mid diff --git a/sound/instruments/recorder/Eb6.mid b/sound/runtime/instruments/recorder/Eb6.mid similarity index 100% rename from sound/instruments/recorder/Eb6.mid rename to sound/runtime/instruments/recorder/Eb6.mid diff --git a/sound/instruments/recorder/En2.mid b/sound/runtime/instruments/recorder/En2.mid similarity index 100% rename from sound/instruments/recorder/En2.mid rename to sound/runtime/instruments/recorder/En2.mid diff --git a/sound/instruments/recorder/En3.mid b/sound/runtime/instruments/recorder/En3.mid similarity index 100% rename from sound/instruments/recorder/En3.mid rename to sound/runtime/instruments/recorder/En3.mid diff --git a/sound/instruments/recorder/En4.mid b/sound/runtime/instruments/recorder/En4.mid similarity index 100% rename from sound/instruments/recorder/En4.mid rename to sound/runtime/instruments/recorder/En4.mid diff --git a/sound/instruments/recorder/En5.mid b/sound/runtime/instruments/recorder/En5.mid similarity index 100% rename from sound/instruments/recorder/En5.mid rename to sound/runtime/instruments/recorder/En5.mid diff --git a/sound/instruments/recorder/En6.mid b/sound/runtime/instruments/recorder/En6.mid similarity index 100% rename from sound/instruments/recorder/En6.mid rename to sound/runtime/instruments/recorder/En6.mid diff --git a/sound/instruments/recorder/Fn2.mid b/sound/runtime/instruments/recorder/Fn2.mid similarity index 100% rename from sound/instruments/recorder/Fn2.mid rename to sound/runtime/instruments/recorder/Fn2.mid diff --git a/sound/instruments/recorder/Fn3.mid b/sound/runtime/instruments/recorder/Fn3.mid similarity index 100% rename from sound/instruments/recorder/Fn3.mid rename to sound/runtime/instruments/recorder/Fn3.mid diff --git a/sound/instruments/recorder/Fn4.mid b/sound/runtime/instruments/recorder/Fn4.mid similarity index 100% rename from sound/instruments/recorder/Fn4.mid rename to sound/runtime/instruments/recorder/Fn4.mid diff --git a/sound/instruments/recorder/Fn5.mid b/sound/runtime/instruments/recorder/Fn5.mid similarity index 100% rename from sound/instruments/recorder/Fn5.mid rename to sound/runtime/instruments/recorder/Fn5.mid diff --git a/sound/instruments/recorder/Fn6.mid b/sound/runtime/instruments/recorder/Fn6.mid similarity index 100% rename from sound/instruments/recorder/Fn6.mid rename to sound/runtime/instruments/recorder/Fn6.mid diff --git a/sound/instruments/recorder/Gb2.mid b/sound/runtime/instruments/recorder/Gb2.mid similarity index 100% rename from sound/instruments/recorder/Gb2.mid rename to sound/runtime/instruments/recorder/Gb2.mid diff --git a/sound/instruments/recorder/Gb3.mid b/sound/runtime/instruments/recorder/Gb3.mid similarity index 100% rename from sound/instruments/recorder/Gb3.mid rename to sound/runtime/instruments/recorder/Gb3.mid diff --git a/sound/instruments/recorder/Gb4.mid b/sound/runtime/instruments/recorder/Gb4.mid similarity index 100% rename from sound/instruments/recorder/Gb4.mid rename to sound/runtime/instruments/recorder/Gb4.mid diff --git a/sound/instruments/recorder/Gb5.mid b/sound/runtime/instruments/recorder/Gb5.mid similarity index 100% rename from sound/instruments/recorder/Gb5.mid rename to sound/runtime/instruments/recorder/Gb5.mid diff --git a/sound/instruments/recorder/Gb6.mid b/sound/runtime/instruments/recorder/Gb6.mid similarity index 100% rename from sound/instruments/recorder/Gb6.mid rename to sound/runtime/instruments/recorder/Gb6.mid diff --git a/sound/instruments/recorder/Gn2.mid b/sound/runtime/instruments/recorder/Gn2.mid similarity index 100% rename from sound/instruments/recorder/Gn2.mid rename to sound/runtime/instruments/recorder/Gn2.mid diff --git a/sound/instruments/recorder/Gn3.mid b/sound/runtime/instruments/recorder/Gn3.mid similarity index 100% rename from sound/instruments/recorder/Gn3.mid rename to sound/runtime/instruments/recorder/Gn3.mid diff --git a/sound/instruments/recorder/Gn4.mid b/sound/runtime/instruments/recorder/Gn4.mid similarity index 100% rename from sound/instruments/recorder/Gn4.mid rename to sound/runtime/instruments/recorder/Gn4.mid diff --git a/sound/instruments/recorder/Gn5.mid b/sound/runtime/instruments/recorder/Gn5.mid similarity index 100% rename from sound/instruments/recorder/Gn5.mid rename to sound/runtime/instruments/recorder/Gn5.mid diff --git a/sound/instruments/recorder/Gn6.mid b/sound/runtime/instruments/recorder/Gn6.mid similarity index 100% rename from sound/instruments/recorder/Gn6.mid rename to sound/runtime/instruments/recorder/Gn6.mid diff --git a/sound/instruments/saxophone/Ab2.mid b/sound/runtime/instruments/saxophone/Ab2.mid similarity index 100% rename from sound/instruments/saxophone/Ab2.mid rename to sound/runtime/instruments/saxophone/Ab2.mid diff --git a/sound/instruments/saxophone/Ab3.mid b/sound/runtime/instruments/saxophone/Ab3.mid similarity index 100% rename from sound/instruments/saxophone/Ab3.mid rename to sound/runtime/instruments/saxophone/Ab3.mid diff --git a/sound/instruments/saxophone/Ab4.mid b/sound/runtime/instruments/saxophone/Ab4.mid similarity index 100% rename from sound/instruments/saxophone/Ab4.mid rename to sound/runtime/instruments/saxophone/Ab4.mid diff --git a/sound/instruments/saxophone/Ab5.mid b/sound/runtime/instruments/saxophone/Ab5.mid similarity index 100% rename from sound/instruments/saxophone/Ab5.mid rename to sound/runtime/instruments/saxophone/Ab5.mid diff --git a/sound/instruments/saxophone/Ab6.mid b/sound/runtime/instruments/saxophone/Ab6.mid similarity index 100% rename from sound/instruments/saxophone/Ab6.mid rename to sound/runtime/instruments/saxophone/Ab6.mid diff --git a/sound/instruments/saxophone/An2.mid b/sound/runtime/instruments/saxophone/An2.mid similarity index 100% rename from sound/instruments/saxophone/An2.mid rename to sound/runtime/instruments/saxophone/An2.mid diff --git a/sound/instruments/saxophone/An3.mid b/sound/runtime/instruments/saxophone/An3.mid similarity index 100% rename from sound/instruments/saxophone/An3.mid rename to sound/runtime/instruments/saxophone/An3.mid diff --git a/sound/instruments/saxophone/An4.mid b/sound/runtime/instruments/saxophone/An4.mid similarity index 100% rename from sound/instruments/saxophone/An4.mid rename to sound/runtime/instruments/saxophone/An4.mid diff --git a/sound/instruments/saxophone/An5.mid b/sound/runtime/instruments/saxophone/An5.mid similarity index 100% rename from sound/instruments/saxophone/An5.mid rename to sound/runtime/instruments/saxophone/An5.mid diff --git a/sound/instruments/saxophone/An6.mid b/sound/runtime/instruments/saxophone/An6.mid similarity index 100% rename from sound/instruments/saxophone/An6.mid rename to sound/runtime/instruments/saxophone/An6.mid diff --git a/sound/instruments/saxophone/Bb2.mid b/sound/runtime/instruments/saxophone/Bb2.mid similarity index 100% rename from sound/instruments/saxophone/Bb2.mid rename to sound/runtime/instruments/saxophone/Bb2.mid diff --git a/sound/instruments/saxophone/Bb3.mid b/sound/runtime/instruments/saxophone/Bb3.mid similarity index 100% rename from sound/instruments/saxophone/Bb3.mid rename to sound/runtime/instruments/saxophone/Bb3.mid diff --git a/sound/instruments/saxophone/Bb4.mid b/sound/runtime/instruments/saxophone/Bb4.mid similarity index 100% rename from sound/instruments/saxophone/Bb4.mid rename to sound/runtime/instruments/saxophone/Bb4.mid diff --git a/sound/instruments/saxophone/Bb5.mid b/sound/runtime/instruments/saxophone/Bb5.mid similarity index 100% rename from sound/instruments/saxophone/Bb5.mid rename to sound/runtime/instruments/saxophone/Bb5.mid diff --git a/sound/instruments/saxophone/Bb6.mid b/sound/runtime/instruments/saxophone/Bb6.mid similarity index 100% rename from sound/instruments/saxophone/Bb6.mid rename to sound/runtime/instruments/saxophone/Bb6.mid diff --git a/sound/instruments/saxophone/Bn2.mid b/sound/runtime/instruments/saxophone/Bn2.mid similarity index 100% rename from sound/instruments/saxophone/Bn2.mid rename to sound/runtime/instruments/saxophone/Bn2.mid diff --git a/sound/instruments/saxophone/Bn3.mid b/sound/runtime/instruments/saxophone/Bn3.mid similarity index 100% rename from sound/instruments/saxophone/Bn3.mid rename to sound/runtime/instruments/saxophone/Bn3.mid diff --git a/sound/instruments/saxophone/Bn4.mid b/sound/runtime/instruments/saxophone/Bn4.mid similarity index 100% rename from sound/instruments/saxophone/Bn4.mid rename to sound/runtime/instruments/saxophone/Bn4.mid diff --git a/sound/instruments/saxophone/Bn5.mid b/sound/runtime/instruments/saxophone/Bn5.mid similarity index 100% rename from sound/instruments/saxophone/Bn5.mid rename to sound/runtime/instruments/saxophone/Bn5.mid diff --git a/sound/instruments/saxophone/Bn6.mid b/sound/runtime/instruments/saxophone/Bn6.mid similarity index 100% rename from sound/instruments/saxophone/Bn6.mid rename to sound/runtime/instruments/saxophone/Bn6.mid diff --git a/sound/instruments/saxophone/Cn2.mid b/sound/runtime/instruments/saxophone/Cn2.mid similarity index 100% rename from sound/instruments/saxophone/Cn2.mid rename to sound/runtime/instruments/saxophone/Cn2.mid diff --git a/sound/instruments/saxophone/Cn3.mid b/sound/runtime/instruments/saxophone/Cn3.mid similarity index 100% rename from sound/instruments/saxophone/Cn3.mid rename to sound/runtime/instruments/saxophone/Cn3.mid diff --git a/sound/instruments/saxophone/Cn4.mid b/sound/runtime/instruments/saxophone/Cn4.mid similarity index 100% rename from sound/instruments/saxophone/Cn4.mid rename to sound/runtime/instruments/saxophone/Cn4.mid diff --git a/sound/instruments/saxophone/Cn5.mid b/sound/runtime/instruments/saxophone/Cn5.mid similarity index 100% rename from sound/instruments/saxophone/Cn5.mid rename to sound/runtime/instruments/saxophone/Cn5.mid diff --git a/sound/instruments/saxophone/Cn6.mid b/sound/runtime/instruments/saxophone/Cn6.mid similarity index 100% rename from sound/instruments/saxophone/Cn6.mid rename to sound/runtime/instruments/saxophone/Cn6.mid diff --git a/sound/instruments/saxophone/Db2.mid b/sound/runtime/instruments/saxophone/Db2.mid similarity index 100% rename from sound/instruments/saxophone/Db2.mid rename to sound/runtime/instruments/saxophone/Db2.mid diff --git a/sound/instruments/saxophone/Db3.mid b/sound/runtime/instruments/saxophone/Db3.mid similarity index 100% rename from sound/instruments/saxophone/Db3.mid rename to sound/runtime/instruments/saxophone/Db3.mid diff --git a/sound/instruments/saxophone/Db4.mid b/sound/runtime/instruments/saxophone/Db4.mid similarity index 100% rename from sound/instruments/saxophone/Db4.mid rename to sound/runtime/instruments/saxophone/Db4.mid diff --git a/sound/instruments/saxophone/Db5.mid b/sound/runtime/instruments/saxophone/Db5.mid similarity index 100% rename from sound/instruments/saxophone/Db5.mid rename to sound/runtime/instruments/saxophone/Db5.mid diff --git a/sound/instruments/saxophone/Db6.mid b/sound/runtime/instruments/saxophone/Db6.mid similarity index 100% rename from sound/instruments/saxophone/Db6.mid rename to sound/runtime/instruments/saxophone/Db6.mid diff --git a/sound/instruments/saxophone/Dn2.mid b/sound/runtime/instruments/saxophone/Dn2.mid similarity index 100% rename from sound/instruments/saxophone/Dn2.mid rename to sound/runtime/instruments/saxophone/Dn2.mid diff --git a/sound/instruments/saxophone/Dn3.mid b/sound/runtime/instruments/saxophone/Dn3.mid similarity index 100% rename from sound/instruments/saxophone/Dn3.mid rename to sound/runtime/instruments/saxophone/Dn3.mid diff --git a/sound/instruments/saxophone/Dn4.mid b/sound/runtime/instruments/saxophone/Dn4.mid similarity index 100% rename from sound/instruments/saxophone/Dn4.mid rename to sound/runtime/instruments/saxophone/Dn4.mid diff --git a/sound/instruments/saxophone/Dn5.mid b/sound/runtime/instruments/saxophone/Dn5.mid similarity index 100% rename from sound/instruments/saxophone/Dn5.mid rename to sound/runtime/instruments/saxophone/Dn5.mid diff --git a/sound/instruments/saxophone/Dn6.mid b/sound/runtime/instruments/saxophone/Dn6.mid similarity index 100% rename from sound/instruments/saxophone/Dn6.mid rename to sound/runtime/instruments/saxophone/Dn6.mid diff --git a/sound/instruments/saxophone/Eb2.mid b/sound/runtime/instruments/saxophone/Eb2.mid similarity index 100% rename from sound/instruments/saxophone/Eb2.mid rename to sound/runtime/instruments/saxophone/Eb2.mid diff --git a/sound/instruments/saxophone/Eb3.mid b/sound/runtime/instruments/saxophone/Eb3.mid similarity index 100% rename from sound/instruments/saxophone/Eb3.mid rename to sound/runtime/instruments/saxophone/Eb3.mid diff --git a/sound/instruments/saxophone/Eb4.mid b/sound/runtime/instruments/saxophone/Eb4.mid similarity index 100% rename from sound/instruments/saxophone/Eb4.mid rename to sound/runtime/instruments/saxophone/Eb4.mid diff --git a/sound/instruments/saxophone/Eb5.mid b/sound/runtime/instruments/saxophone/Eb5.mid similarity index 100% rename from sound/instruments/saxophone/Eb5.mid rename to sound/runtime/instruments/saxophone/Eb5.mid diff --git a/sound/instruments/saxophone/Eb6.mid b/sound/runtime/instruments/saxophone/Eb6.mid similarity index 100% rename from sound/instruments/saxophone/Eb6.mid rename to sound/runtime/instruments/saxophone/Eb6.mid diff --git a/sound/instruments/saxophone/En2.mid b/sound/runtime/instruments/saxophone/En2.mid similarity index 100% rename from sound/instruments/saxophone/En2.mid rename to sound/runtime/instruments/saxophone/En2.mid diff --git a/sound/instruments/saxophone/En3.mid b/sound/runtime/instruments/saxophone/En3.mid similarity index 100% rename from sound/instruments/saxophone/En3.mid rename to sound/runtime/instruments/saxophone/En3.mid diff --git a/sound/instruments/saxophone/En4.mid b/sound/runtime/instruments/saxophone/En4.mid similarity index 100% rename from sound/instruments/saxophone/En4.mid rename to sound/runtime/instruments/saxophone/En4.mid diff --git a/sound/instruments/saxophone/En5.mid b/sound/runtime/instruments/saxophone/En5.mid similarity index 100% rename from sound/instruments/saxophone/En5.mid rename to sound/runtime/instruments/saxophone/En5.mid diff --git a/sound/instruments/saxophone/En6.mid b/sound/runtime/instruments/saxophone/En6.mid similarity index 100% rename from sound/instruments/saxophone/En6.mid rename to sound/runtime/instruments/saxophone/En6.mid diff --git a/sound/instruments/saxophone/Fn2.mid b/sound/runtime/instruments/saxophone/Fn2.mid similarity index 100% rename from sound/instruments/saxophone/Fn2.mid rename to sound/runtime/instruments/saxophone/Fn2.mid diff --git a/sound/instruments/saxophone/Fn3.mid b/sound/runtime/instruments/saxophone/Fn3.mid similarity index 100% rename from sound/instruments/saxophone/Fn3.mid rename to sound/runtime/instruments/saxophone/Fn3.mid diff --git a/sound/instruments/saxophone/Fn4.mid b/sound/runtime/instruments/saxophone/Fn4.mid similarity index 100% rename from sound/instruments/saxophone/Fn4.mid rename to sound/runtime/instruments/saxophone/Fn4.mid diff --git a/sound/instruments/saxophone/Fn5.mid b/sound/runtime/instruments/saxophone/Fn5.mid similarity index 100% rename from sound/instruments/saxophone/Fn5.mid rename to sound/runtime/instruments/saxophone/Fn5.mid diff --git a/sound/instruments/saxophone/Fn6.mid b/sound/runtime/instruments/saxophone/Fn6.mid similarity index 100% rename from sound/instruments/saxophone/Fn6.mid rename to sound/runtime/instruments/saxophone/Fn6.mid diff --git a/sound/instruments/saxophone/Gb2.mid b/sound/runtime/instruments/saxophone/Gb2.mid similarity index 100% rename from sound/instruments/saxophone/Gb2.mid rename to sound/runtime/instruments/saxophone/Gb2.mid diff --git a/sound/instruments/saxophone/Gb3.mid b/sound/runtime/instruments/saxophone/Gb3.mid similarity index 100% rename from sound/instruments/saxophone/Gb3.mid rename to sound/runtime/instruments/saxophone/Gb3.mid diff --git a/sound/instruments/saxophone/Gb4.mid b/sound/runtime/instruments/saxophone/Gb4.mid similarity index 100% rename from sound/instruments/saxophone/Gb4.mid rename to sound/runtime/instruments/saxophone/Gb4.mid diff --git a/sound/instruments/saxophone/Gb5.mid b/sound/runtime/instruments/saxophone/Gb5.mid similarity index 100% rename from sound/instruments/saxophone/Gb5.mid rename to sound/runtime/instruments/saxophone/Gb5.mid diff --git a/sound/instruments/saxophone/Gb6.mid b/sound/runtime/instruments/saxophone/Gb6.mid similarity index 100% rename from sound/instruments/saxophone/Gb6.mid rename to sound/runtime/instruments/saxophone/Gb6.mid diff --git a/sound/instruments/saxophone/Gn2.mid b/sound/runtime/instruments/saxophone/Gn2.mid similarity index 100% rename from sound/instruments/saxophone/Gn2.mid rename to sound/runtime/instruments/saxophone/Gn2.mid diff --git a/sound/instruments/saxophone/Gn4.mid b/sound/runtime/instruments/saxophone/Gn4.mid similarity index 100% rename from sound/instruments/saxophone/Gn4.mid rename to sound/runtime/instruments/saxophone/Gn4.mid diff --git a/sound/instruments/saxophone/Gn5.mid b/sound/runtime/instruments/saxophone/Gn5.mid similarity index 100% rename from sound/instruments/saxophone/Gn5.mid rename to sound/runtime/instruments/saxophone/Gn5.mid diff --git a/sound/instruments/saxophone/Gn6.mid b/sound/runtime/instruments/saxophone/Gn6.mid similarity index 100% rename from sound/instruments/saxophone/Gn6.mid rename to sound/runtime/instruments/saxophone/Gn6.mid diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c2.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c3.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c4.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_brass/c5.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg diff --git a/sound/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg b/sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg rename to sound/runtime/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg b/sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg rename to sound/runtime/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg b/sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg rename to sound/runtime/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg diff --git a/sound/runtime/instruments/synthesis_samples/meowsynth/LICENSE.txt b/sound/runtime/instruments/synthesis_samples/meowsynth/LICENSE.txt new file mode 100644 index 0000000000..f00f3ce86c --- /dev/null +++ b/sound/runtime/instruments/synthesis_samples/meowsynth/LICENSE.txt @@ -0,0 +1,14 @@ +The audio samples in this folder were created using the MeowSynth VST plugin. +MeowSynth was created by a user named zipp and was released on knobster.org under the following terms: + +All KNOBSTER synthesizers are absolutely free, even for commercial use. Nevertheless, the author will gladly accept material gratitude, especially if it is done from the heart. You can send it to any of the wallets listed below: + + Yandex money: + 41001357297942 + + webmoney: + Z407831455581 + R770671369144 + U877500879439 + +Remember: by helping the author financially, you stimulate the improvement of existing and the creation of new free synthesizers. Thank you. diff --git a/sound/runtime/instruments/synthesis_samples/meowsynth/c2.ogg b/sound/runtime/instruments/synthesis_samples/meowsynth/c2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1b2da03cf04f7658bf750d03d3f5271e89733605 GIT binary patch literal 12609 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 W=5YmxkizQ)0M`2Qfb~c)&i@CG7M*ke literal 0 HcmV?d00001 diff --git a/sound/runtime/instruments/synthesis_samples/meowsynth/c4.ogg b/sound/runtime/instruments/synthesis_samples/meowsynth/c4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6e6bfad5976cb08b02b0883c5aeba8a707ebbb1f GIT binary patch literal 9703 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 P9(iD#G;KE$&cyx?Y@ktj literal 0 HcmV?d00001 diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_church/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_church/c2.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_church/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_church/c3.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_church/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_church/c4.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_church/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_church/c5.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg b/sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg rename to sound/runtime/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg b/sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg rename to sound/runtime/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c2.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c2.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c3.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c3.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c4.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c4.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c5.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c5.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c6.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c6.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c7.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c7.ogg diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg b/sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c8.ogg similarity index 100% rename from sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg rename to sound/runtime/instruments/synthesis_samples/piano/fluid_piano/c8.ogg diff --git a/sound/instruments/synthesis_samples/tones/Sawtooth.ogg b/sound/runtime/instruments/synthesis_samples/tones/Sawtooth.ogg similarity index 100% rename from sound/instruments/synthesis_samples/tones/Sawtooth.ogg rename to sound/runtime/instruments/synthesis_samples/tones/Sawtooth.ogg diff --git a/sound/instruments/synthesis_samples/tones/Sine.ogg b/sound/runtime/instruments/synthesis_samples/tones/Sine.ogg similarity index 100% rename from sound/instruments/synthesis_samples/tones/Sine.ogg rename to sound/runtime/instruments/synthesis_samples/tones/Sine.ogg diff --git a/sound/instruments/synthesis_samples/tones/Square.ogg b/sound/runtime/instruments/synthesis_samples/tones/Square.ogg similarity index 100% rename from sound/instruments/synthesis_samples/tones/Square.ogg rename to sound/runtime/instruments/synthesis_samples/tones/Square.ogg diff --git a/sound/instruments/trombone/Ab2.mid b/sound/runtime/instruments/trombone/Ab2.mid similarity index 100% rename from sound/instruments/trombone/Ab2.mid rename to sound/runtime/instruments/trombone/Ab2.mid diff --git a/sound/instruments/trombone/Ab3.mid b/sound/runtime/instruments/trombone/Ab3.mid similarity index 100% rename from sound/instruments/trombone/Ab3.mid rename to sound/runtime/instruments/trombone/Ab3.mid diff --git a/sound/instruments/trombone/Ab4.mid b/sound/runtime/instruments/trombone/Ab4.mid similarity index 100% rename from sound/instruments/trombone/Ab4.mid rename to sound/runtime/instruments/trombone/Ab4.mid diff --git a/sound/instruments/trombone/Ab5.mid b/sound/runtime/instruments/trombone/Ab5.mid similarity index 100% rename from sound/instruments/trombone/Ab5.mid rename to sound/runtime/instruments/trombone/Ab5.mid diff --git a/sound/instruments/trombone/Ab6.mid b/sound/runtime/instruments/trombone/Ab6.mid similarity index 100% rename from sound/instruments/trombone/Ab6.mid rename to sound/runtime/instruments/trombone/Ab6.mid diff --git a/sound/instruments/trombone/An2.mid b/sound/runtime/instruments/trombone/An2.mid similarity index 100% rename from sound/instruments/trombone/An2.mid rename to sound/runtime/instruments/trombone/An2.mid diff --git a/sound/instruments/trombone/An3.mid b/sound/runtime/instruments/trombone/An3.mid similarity index 100% rename from sound/instruments/trombone/An3.mid rename to sound/runtime/instruments/trombone/An3.mid diff --git a/sound/instruments/trombone/An4.mid b/sound/runtime/instruments/trombone/An4.mid similarity index 100% rename from sound/instruments/trombone/An4.mid rename to sound/runtime/instruments/trombone/An4.mid diff --git a/sound/instruments/trombone/An5.mid b/sound/runtime/instruments/trombone/An5.mid similarity index 100% rename from sound/instruments/trombone/An5.mid rename to sound/runtime/instruments/trombone/An5.mid diff --git a/sound/instruments/trombone/An6.mid b/sound/runtime/instruments/trombone/An6.mid similarity index 100% rename from sound/instruments/trombone/An6.mid rename to sound/runtime/instruments/trombone/An6.mid diff --git a/sound/instruments/trombone/Bb2.mid b/sound/runtime/instruments/trombone/Bb2.mid similarity index 100% rename from sound/instruments/trombone/Bb2.mid rename to sound/runtime/instruments/trombone/Bb2.mid diff --git a/sound/instruments/trombone/Bb3.mid b/sound/runtime/instruments/trombone/Bb3.mid similarity index 100% rename from sound/instruments/trombone/Bb3.mid rename to sound/runtime/instruments/trombone/Bb3.mid diff --git a/sound/instruments/trombone/Bb4.mid b/sound/runtime/instruments/trombone/Bb4.mid similarity index 100% rename from sound/instruments/trombone/Bb4.mid rename to sound/runtime/instruments/trombone/Bb4.mid diff --git a/sound/instruments/trombone/Bb5.mid b/sound/runtime/instruments/trombone/Bb5.mid similarity index 100% rename from sound/instruments/trombone/Bb5.mid rename to sound/runtime/instruments/trombone/Bb5.mid diff --git a/sound/instruments/trombone/Bb6.mid b/sound/runtime/instruments/trombone/Bb6.mid similarity index 100% rename from sound/instruments/trombone/Bb6.mid rename to sound/runtime/instruments/trombone/Bb6.mid diff --git a/sound/instruments/trombone/Bn2.mid b/sound/runtime/instruments/trombone/Bn2.mid similarity index 100% rename from sound/instruments/trombone/Bn2.mid rename to sound/runtime/instruments/trombone/Bn2.mid diff --git a/sound/instruments/trombone/Bn3.mid b/sound/runtime/instruments/trombone/Bn3.mid similarity index 100% rename from sound/instruments/trombone/Bn3.mid rename to sound/runtime/instruments/trombone/Bn3.mid diff --git a/sound/instruments/trombone/Bn4.mid b/sound/runtime/instruments/trombone/Bn4.mid similarity index 100% rename from sound/instruments/trombone/Bn4.mid rename to sound/runtime/instruments/trombone/Bn4.mid diff --git a/sound/instruments/trombone/Bn5.mid b/sound/runtime/instruments/trombone/Bn5.mid similarity index 100% rename from sound/instruments/trombone/Bn5.mid rename to sound/runtime/instruments/trombone/Bn5.mid diff --git a/sound/instruments/trombone/Bn6.mid b/sound/runtime/instruments/trombone/Bn6.mid similarity index 100% rename from sound/instruments/trombone/Bn6.mid rename to sound/runtime/instruments/trombone/Bn6.mid diff --git a/sound/instruments/trombone/Cn2.mid b/sound/runtime/instruments/trombone/Cn2.mid similarity index 100% rename from sound/instruments/trombone/Cn2.mid rename to sound/runtime/instruments/trombone/Cn2.mid diff --git a/sound/instruments/trombone/Cn3.mid b/sound/runtime/instruments/trombone/Cn3.mid similarity index 100% rename from sound/instruments/trombone/Cn3.mid rename to sound/runtime/instruments/trombone/Cn3.mid diff --git a/sound/instruments/trombone/Cn4.mid b/sound/runtime/instruments/trombone/Cn4.mid similarity index 100% rename from sound/instruments/trombone/Cn4.mid rename to sound/runtime/instruments/trombone/Cn4.mid diff --git a/sound/instruments/trombone/Cn5.mid b/sound/runtime/instruments/trombone/Cn5.mid similarity index 100% rename from sound/instruments/trombone/Cn5.mid rename to sound/runtime/instruments/trombone/Cn5.mid diff --git a/sound/instruments/trombone/Cn6.mid b/sound/runtime/instruments/trombone/Cn6.mid similarity index 100% rename from sound/instruments/trombone/Cn6.mid rename to sound/runtime/instruments/trombone/Cn6.mid diff --git a/sound/instruments/trombone/Db2.mid b/sound/runtime/instruments/trombone/Db2.mid similarity index 100% rename from sound/instruments/trombone/Db2.mid rename to sound/runtime/instruments/trombone/Db2.mid diff --git a/sound/instruments/trombone/Db3.mid b/sound/runtime/instruments/trombone/Db3.mid similarity index 100% rename from sound/instruments/trombone/Db3.mid rename to sound/runtime/instruments/trombone/Db3.mid diff --git a/sound/instruments/trombone/Db4.mid b/sound/runtime/instruments/trombone/Db4.mid similarity index 100% rename from sound/instruments/trombone/Db4.mid rename to sound/runtime/instruments/trombone/Db4.mid diff --git a/sound/instruments/trombone/Db5.mid b/sound/runtime/instruments/trombone/Db5.mid similarity index 100% rename from sound/instruments/trombone/Db5.mid rename to sound/runtime/instruments/trombone/Db5.mid diff --git a/sound/instruments/trombone/Db6.mid b/sound/runtime/instruments/trombone/Db6.mid similarity index 100% rename from sound/instruments/trombone/Db6.mid rename to sound/runtime/instruments/trombone/Db6.mid diff --git a/sound/instruments/trombone/Dn2.mid b/sound/runtime/instruments/trombone/Dn2.mid similarity index 100% rename from sound/instruments/trombone/Dn2.mid rename to sound/runtime/instruments/trombone/Dn2.mid diff --git a/sound/instruments/trombone/Dn3.mid b/sound/runtime/instruments/trombone/Dn3.mid similarity index 100% rename from sound/instruments/trombone/Dn3.mid rename to sound/runtime/instruments/trombone/Dn3.mid diff --git a/sound/instruments/trombone/Dn4.mid b/sound/runtime/instruments/trombone/Dn4.mid similarity index 100% rename from sound/instruments/trombone/Dn4.mid rename to sound/runtime/instruments/trombone/Dn4.mid diff --git a/sound/instruments/trombone/Dn5.mid b/sound/runtime/instruments/trombone/Dn5.mid similarity index 100% rename from sound/instruments/trombone/Dn5.mid rename to sound/runtime/instruments/trombone/Dn5.mid diff --git a/sound/instruments/trombone/Dn6.mid b/sound/runtime/instruments/trombone/Dn6.mid similarity index 100% rename from sound/instruments/trombone/Dn6.mid rename to sound/runtime/instruments/trombone/Dn6.mid diff --git a/sound/instruments/trombone/Eb2.mid b/sound/runtime/instruments/trombone/Eb2.mid similarity index 100% rename from sound/instruments/trombone/Eb2.mid rename to sound/runtime/instruments/trombone/Eb2.mid diff --git a/sound/instruments/trombone/Eb3.mid b/sound/runtime/instruments/trombone/Eb3.mid similarity index 100% rename from sound/instruments/trombone/Eb3.mid rename to sound/runtime/instruments/trombone/Eb3.mid diff --git a/sound/instruments/trombone/Eb4.mid b/sound/runtime/instruments/trombone/Eb4.mid similarity index 100% rename from sound/instruments/trombone/Eb4.mid rename to sound/runtime/instruments/trombone/Eb4.mid diff --git a/sound/instruments/trombone/Eb5.mid b/sound/runtime/instruments/trombone/Eb5.mid similarity index 100% rename from sound/instruments/trombone/Eb5.mid rename to sound/runtime/instruments/trombone/Eb5.mid diff --git a/sound/instruments/trombone/Eb6.mid b/sound/runtime/instruments/trombone/Eb6.mid similarity index 100% rename from sound/instruments/trombone/Eb6.mid rename to sound/runtime/instruments/trombone/Eb6.mid diff --git a/sound/instruments/trombone/En2.mid b/sound/runtime/instruments/trombone/En2.mid similarity index 100% rename from sound/instruments/trombone/En2.mid rename to sound/runtime/instruments/trombone/En2.mid diff --git a/sound/instruments/trombone/En3.mid b/sound/runtime/instruments/trombone/En3.mid similarity index 100% rename from sound/instruments/trombone/En3.mid rename to sound/runtime/instruments/trombone/En3.mid diff --git a/sound/instruments/trombone/En4.mid b/sound/runtime/instruments/trombone/En4.mid similarity index 100% rename from sound/instruments/trombone/En4.mid rename to sound/runtime/instruments/trombone/En4.mid diff --git a/sound/instruments/trombone/En5.mid b/sound/runtime/instruments/trombone/En5.mid similarity index 100% rename from sound/instruments/trombone/En5.mid rename to sound/runtime/instruments/trombone/En5.mid diff --git a/sound/instruments/trombone/En6.mid b/sound/runtime/instruments/trombone/En6.mid similarity index 100% rename from sound/instruments/trombone/En6.mid rename to sound/runtime/instruments/trombone/En6.mid diff --git a/sound/instruments/trombone/Fn2.mid b/sound/runtime/instruments/trombone/Fn2.mid similarity index 100% rename from sound/instruments/trombone/Fn2.mid rename to sound/runtime/instruments/trombone/Fn2.mid diff --git a/sound/instruments/trombone/Fn3.mid b/sound/runtime/instruments/trombone/Fn3.mid similarity index 100% rename from sound/instruments/trombone/Fn3.mid rename to sound/runtime/instruments/trombone/Fn3.mid diff --git a/sound/instruments/trombone/Fn4.mid b/sound/runtime/instruments/trombone/Fn4.mid similarity index 100% rename from sound/instruments/trombone/Fn4.mid rename to sound/runtime/instruments/trombone/Fn4.mid diff --git a/sound/instruments/trombone/Fn5.mid b/sound/runtime/instruments/trombone/Fn5.mid similarity index 100% rename from sound/instruments/trombone/Fn5.mid rename to sound/runtime/instruments/trombone/Fn5.mid diff --git a/sound/instruments/trombone/Fn6.mid b/sound/runtime/instruments/trombone/Fn6.mid similarity index 100% rename from sound/instruments/trombone/Fn6.mid rename to sound/runtime/instruments/trombone/Fn6.mid diff --git a/sound/instruments/trombone/Gb2.mid b/sound/runtime/instruments/trombone/Gb2.mid similarity index 100% rename from sound/instruments/trombone/Gb2.mid rename to sound/runtime/instruments/trombone/Gb2.mid diff --git a/sound/instruments/trombone/Gb3.mid b/sound/runtime/instruments/trombone/Gb3.mid similarity index 100% rename from sound/instruments/trombone/Gb3.mid rename to sound/runtime/instruments/trombone/Gb3.mid diff --git a/sound/instruments/trombone/Gb4.mid b/sound/runtime/instruments/trombone/Gb4.mid similarity index 100% rename from sound/instruments/trombone/Gb4.mid rename to sound/runtime/instruments/trombone/Gb4.mid diff --git a/sound/instruments/trombone/Gb5.mid b/sound/runtime/instruments/trombone/Gb5.mid similarity index 100% rename from sound/instruments/trombone/Gb5.mid rename to sound/runtime/instruments/trombone/Gb5.mid diff --git a/sound/instruments/trombone/Gb6.mid b/sound/runtime/instruments/trombone/Gb6.mid similarity index 100% rename from sound/instruments/trombone/Gb6.mid rename to sound/runtime/instruments/trombone/Gb6.mid diff --git a/sound/instruments/trombone/Gn2.mid b/sound/runtime/instruments/trombone/Gn2.mid similarity index 100% rename from sound/instruments/trombone/Gn2.mid rename to sound/runtime/instruments/trombone/Gn2.mid diff --git a/sound/instruments/trombone/Gn3.mid b/sound/runtime/instruments/trombone/Gn3.mid similarity index 100% rename from sound/instruments/trombone/Gn3.mid rename to sound/runtime/instruments/trombone/Gn3.mid diff --git a/sound/instruments/trombone/Gn4.mid b/sound/runtime/instruments/trombone/Gn4.mid similarity index 100% rename from sound/instruments/trombone/Gn4.mid rename to sound/runtime/instruments/trombone/Gn4.mid diff --git a/sound/instruments/trombone/Gn5.mid b/sound/runtime/instruments/trombone/Gn5.mid similarity index 100% rename from sound/instruments/trombone/Gn5.mid rename to sound/runtime/instruments/trombone/Gn5.mid diff --git a/sound/instruments/trombone/Gn6.mid b/sound/runtime/instruments/trombone/Gn6.mid similarity index 100% rename from sound/instruments/trombone/Gn6.mid rename to sound/runtime/instruments/trombone/Gn6.mid diff --git a/sound/instruments/violin/Ab1.mid b/sound/runtime/instruments/violin/Ab1.mid similarity index 100% rename from sound/instruments/violin/Ab1.mid rename to sound/runtime/instruments/violin/Ab1.mid diff --git a/sound/instruments/violin/Ab2.mid b/sound/runtime/instruments/violin/Ab2.mid similarity index 100% rename from sound/instruments/violin/Ab2.mid rename to sound/runtime/instruments/violin/Ab2.mid diff --git a/sound/instruments/violin/Ab3.mid b/sound/runtime/instruments/violin/Ab3.mid similarity index 100% rename from sound/instruments/violin/Ab3.mid rename to sound/runtime/instruments/violin/Ab3.mid diff --git a/sound/instruments/violin/Ab4.mid b/sound/runtime/instruments/violin/Ab4.mid similarity index 100% rename from sound/instruments/violin/Ab4.mid rename to sound/runtime/instruments/violin/Ab4.mid diff --git a/sound/instruments/violin/Ab5.mid b/sound/runtime/instruments/violin/Ab5.mid similarity index 100% rename from sound/instruments/violin/Ab5.mid rename to sound/runtime/instruments/violin/Ab5.mid diff --git a/sound/instruments/violin/Ab6.mid b/sound/runtime/instruments/violin/Ab6.mid similarity index 100% rename from sound/instruments/violin/Ab6.mid rename to sound/runtime/instruments/violin/Ab6.mid diff --git a/sound/instruments/violin/Ab7.mid b/sound/runtime/instruments/violin/Ab7.mid similarity index 100% rename from sound/instruments/violin/Ab7.mid rename to sound/runtime/instruments/violin/Ab7.mid diff --git a/sound/instruments/violin/Ab8.mid b/sound/runtime/instruments/violin/Ab8.mid similarity index 100% rename from sound/instruments/violin/Ab8.mid rename to sound/runtime/instruments/violin/Ab8.mid diff --git a/sound/instruments/violin/An1.mid b/sound/runtime/instruments/violin/An1.mid similarity index 100% rename from sound/instruments/violin/An1.mid rename to sound/runtime/instruments/violin/An1.mid diff --git a/sound/instruments/violin/An2.mid b/sound/runtime/instruments/violin/An2.mid similarity index 100% rename from sound/instruments/violin/An2.mid rename to sound/runtime/instruments/violin/An2.mid diff --git a/sound/instruments/violin/An3.mid b/sound/runtime/instruments/violin/An3.mid similarity index 100% rename from sound/instruments/violin/An3.mid rename to sound/runtime/instruments/violin/An3.mid diff --git a/sound/instruments/violin/An4.mid b/sound/runtime/instruments/violin/An4.mid similarity index 100% rename from sound/instruments/violin/An4.mid rename to sound/runtime/instruments/violin/An4.mid diff --git a/sound/instruments/violin/An5.mid b/sound/runtime/instruments/violin/An5.mid similarity index 100% rename from sound/instruments/violin/An5.mid rename to sound/runtime/instruments/violin/An5.mid diff --git a/sound/instruments/violin/An6.mid b/sound/runtime/instruments/violin/An6.mid similarity index 100% rename from sound/instruments/violin/An6.mid rename to sound/runtime/instruments/violin/An6.mid diff --git a/sound/instruments/violin/An7.mid b/sound/runtime/instruments/violin/An7.mid similarity index 100% rename from sound/instruments/violin/An7.mid rename to sound/runtime/instruments/violin/An7.mid diff --git a/sound/instruments/violin/An8.mid b/sound/runtime/instruments/violin/An8.mid similarity index 100% rename from sound/instruments/violin/An8.mid rename to sound/runtime/instruments/violin/An8.mid diff --git a/sound/instruments/violin/Bb1.mid b/sound/runtime/instruments/violin/Bb1.mid similarity index 100% rename from sound/instruments/violin/Bb1.mid rename to sound/runtime/instruments/violin/Bb1.mid diff --git a/sound/instruments/violin/Bb2.mid b/sound/runtime/instruments/violin/Bb2.mid similarity index 100% rename from sound/instruments/violin/Bb2.mid rename to sound/runtime/instruments/violin/Bb2.mid diff --git a/sound/instruments/violin/Bb3.mid b/sound/runtime/instruments/violin/Bb3.mid similarity index 100% rename from sound/instruments/violin/Bb3.mid rename to sound/runtime/instruments/violin/Bb3.mid diff --git a/sound/instruments/violin/Bb4.mid b/sound/runtime/instruments/violin/Bb4.mid similarity index 100% rename from sound/instruments/violin/Bb4.mid rename to sound/runtime/instruments/violin/Bb4.mid diff --git a/sound/instruments/violin/Bb5.mid b/sound/runtime/instruments/violin/Bb5.mid similarity index 100% rename from sound/instruments/violin/Bb5.mid rename to sound/runtime/instruments/violin/Bb5.mid diff --git a/sound/instruments/violin/Bb6.mid b/sound/runtime/instruments/violin/Bb6.mid similarity index 100% rename from sound/instruments/violin/Bb6.mid rename to sound/runtime/instruments/violin/Bb6.mid diff --git a/sound/instruments/violin/Bb7.mid b/sound/runtime/instruments/violin/Bb7.mid similarity index 100% rename from sound/instruments/violin/Bb7.mid rename to sound/runtime/instruments/violin/Bb7.mid diff --git a/sound/instruments/violin/Bb8.mid b/sound/runtime/instruments/violin/Bb8.mid similarity index 100% rename from sound/instruments/violin/Bb8.mid rename to sound/runtime/instruments/violin/Bb8.mid diff --git a/sound/instruments/violin/Bn1.mid b/sound/runtime/instruments/violin/Bn1.mid similarity index 100% rename from sound/instruments/violin/Bn1.mid rename to sound/runtime/instruments/violin/Bn1.mid diff --git a/sound/instruments/violin/Bn2.mid b/sound/runtime/instruments/violin/Bn2.mid similarity index 100% rename from sound/instruments/violin/Bn2.mid rename to sound/runtime/instruments/violin/Bn2.mid diff --git a/sound/instruments/violin/Bn3.mid b/sound/runtime/instruments/violin/Bn3.mid similarity index 100% rename from sound/instruments/violin/Bn3.mid rename to sound/runtime/instruments/violin/Bn3.mid diff --git a/sound/instruments/violin/Bn4.mid b/sound/runtime/instruments/violin/Bn4.mid similarity index 100% rename from sound/instruments/violin/Bn4.mid rename to sound/runtime/instruments/violin/Bn4.mid diff --git a/sound/instruments/violin/Bn5.mid b/sound/runtime/instruments/violin/Bn5.mid similarity index 100% rename from sound/instruments/violin/Bn5.mid rename to sound/runtime/instruments/violin/Bn5.mid diff --git a/sound/instruments/violin/Bn6.mid b/sound/runtime/instruments/violin/Bn6.mid similarity index 100% rename from sound/instruments/violin/Bn6.mid rename to sound/runtime/instruments/violin/Bn6.mid diff --git a/sound/instruments/violin/Bn7.mid b/sound/runtime/instruments/violin/Bn7.mid similarity index 100% rename from sound/instruments/violin/Bn7.mid rename to sound/runtime/instruments/violin/Bn7.mid diff --git a/sound/instruments/violin/Bn8.mid b/sound/runtime/instruments/violin/Bn8.mid similarity index 100% rename from sound/instruments/violin/Bn8.mid rename to sound/runtime/instruments/violin/Bn8.mid diff --git a/sound/instruments/violin/Cn1.mid b/sound/runtime/instruments/violin/Cn1.mid similarity index 100% rename from sound/instruments/violin/Cn1.mid rename to sound/runtime/instruments/violin/Cn1.mid diff --git a/sound/instruments/violin/Cn2.mid b/sound/runtime/instruments/violin/Cn2.mid similarity index 100% rename from sound/instruments/violin/Cn2.mid rename to sound/runtime/instruments/violin/Cn2.mid diff --git a/sound/instruments/violin/Cn3.mid b/sound/runtime/instruments/violin/Cn3.mid similarity index 100% rename from sound/instruments/violin/Cn3.mid rename to sound/runtime/instruments/violin/Cn3.mid diff --git a/sound/instruments/violin/Cn4.mid b/sound/runtime/instruments/violin/Cn4.mid similarity index 100% rename from sound/instruments/violin/Cn4.mid rename to sound/runtime/instruments/violin/Cn4.mid diff --git a/sound/instruments/violin/Cn5.mid b/sound/runtime/instruments/violin/Cn5.mid similarity index 100% rename from sound/instruments/violin/Cn5.mid rename to sound/runtime/instruments/violin/Cn5.mid diff --git a/sound/instruments/violin/Cn6.mid b/sound/runtime/instruments/violin/Cn6.mid similarity index 100% rename from sound/instruments/violin/Cn6.mid rename to sound/runtime/instruments/violin/Cn6.mid diff --git a/sound/instruments/violin/Cn7.mid b/sound/runtime/instruments/violin/Cn7.mid similarity index 100% rename from sound/instruments/violin/Cn7.mid rename to sound/runtime/instruments/violin/Cn7.mid diff --git a/sound/instruments/violin/Cn8.mid b/sound/runtime/instruments/violin/Cn8.mid similarity index 100% rename from sound/instruments/violin/Cn8.mid rename to sound/runtime/instruments/violin/Cn8.mid diff --git a/sound/instruments/violin/Cn9.mid b/sound/runtime/instruments/violin/Cn9.mid similarity index 100% rename from sound/instruments/violin/Cn9.mid rename to sound/runtime/instruments/violin/Cn9.mid diff --git a/sound/instruments/violin/Db1.mid b/sound/runtime/instruments/violin/Db1.mid similarity index 100% rename from sound/instruments/violin/Db1.mid rename to sound/runtime/instruments/violin/Db1.mid diff --git a/sound/instruments/violin/Db2.mid b/sound/runtime/instruments/violin/Db2.mid similarity index 100% rename from sound/instruments/violin/Db2.mid rename to sound/runtime/instruments/violin/Db2.mid diff --git a/sound/instruments/violin/Db3.mid b/sound/runtime/instruments/violin/Db3.mid similarity index 100% rename from sound/instruments/violin/Db3.mid rename to sound/runtime/instruments/violin/Db3.mid diff --git a/sound/instruments/violin/Db4.mid b/sound/runtime/instruments/violin/Db4.mid similarity index 100% rename from sound/instruments/violin/Db4.mid rename to sound/runtime/instruments/violin/Db4.mid diff --git a/sound/instruments/violin/Db5.mid b/sound/runtime/instruments/violin/Db5.mid similarity index 100% rename from sound/instruments/violin/Db5.mid rename to sound/runtime/instruments/violin/Db5.mid diff --git a/sound/instruments/violin/Db6.mid b/sound/runtime/instruments/violin/Db6.mid similarity index 100% rename from sound/instruments/violin/Db6.mid rename to sound/runtime/instruments/violin/Db6.mid diff --git a/sound/instruments/violin/Db7.mid b/sound/runtime/instruments/violin/Db7.mid similarity index 100% rename from sound/instruments/violin/Db7.mid rename to sound/runtime/instruments/violin/Db7.mid diff --git a/sound/instruments/violin/Db8.mid b/sound/runtime/instruments/violin/Db8.mid similarity index 100% rename from sound/instruments/violin/Db8.mid rename to sound/runtime/instruments/violin/Db8.mid diff --git a/sound/instruments/violin/Dn1.mid b/sound/runtime/instruments/violin/Dn1.mid similarity index 100% rename from sound/instruments/violin/Dn1.mid rename to sound/runtime/instruments/violin/Dn1.mid diff --git a/sound/instruments/violin/Dn2.mid b/sound/runtime/instruments/violin/Dn2.mid similarity index 100% rename from sound/instruments/violin/Dn2.mid rename to sound/runtime/instruments/violin/Dn2.mid diff --git a/sound/instruments/violin/Dn3.mid b/sound/runtime/instruments/violin/Dn3.mid similarity index 100% rename from sound/instruments/violin/Dn3.mid rename to sound/runtime/instruments/violin/Dn3.mid diff --git a/sound/instruments/violin/Dn4.mid b/sound/runtime/instruments/violin/Dn4.mid similarity index 100% rename from sound/instruments/violin/Dn4.mid rename to sound/runtime/instruments/violin/Dn4.mid diff --git a/sound/instruments/violin/Dn5.mid b/sound/runtime/instruments/violin/Dn5.mid similarity index 100% rename from sound/instruments/violin/Dn5.mid rename to sound/runtime/instruments/violin/Dn5.mid diff --git a/sound/instruments/violin/Dn6.mid b/sound/runtime/instruments/violin/Dn6.mid similarity index 100% rename from sound/instruments/violin/Dn6.mid rename to sound/runtime/instruments/violin/Dn6.mid diff --git a/sound/instruments/violin/Dn7.mid b/sound/runtime/instruments/violin/Dn7.mid similarity index 100% rename from sound/instruments/violin/Dn7.mid rename to sound/runtime/instruments/violin/Dn7.mid diff --git a/sound/instruments/violin/Dn8.mid b/sound/runtime/instruments/violin/Dn8.mid similarity index 100% rename from sound/instruments/violin/Dn8.mid rename to sound/runtime/instruments/violin/Dn8.mid diff --git a/sound/instruments/violin/Eb1.mid b/sound/runtime/instruments/violin/Eb1.mid similarity index 100% rename from sound/instruments/violin/Eb1.mid rename to sound/runtime/instruments/violin/Eb1.mid diff --git a/sound/instruments/violin/Eb2.mid b/sound/runtime/instruments/violin/Eb2.mid similarity index 100% rename from sound/instruments/violin/Eb2.mid rename to sound/runtime/instruments/violin/Eb2.mid diff --git a/sound/instruments/violin/Eb3.mid b/sound/runtime/instruments/violin/Eb3.mid similarity index 100% rename from sound/instruments/violin/Eb3.mid rename to sound/runtime/instruments/violin/Eb3.mid diff --git a/sound/instruments/violin/Eb4.mid b/sound/runtime/instruments/violin/Eb4.mid similarity index 100% rename from sound/instruments/violin/Eb4.mid rename to sound/runtime/instruments/violin/Eb4.mid diff --git a/sound/instruments/violin/Eb5.mid b/sound/runtime/instruments/violin/Eb5.mid similarity index 100% rename from sound/instruments/violin/Eb5.mid rename to sound/runtime/instruments/violin/Eb5.mid diff --git a/sound/instruments/violin/Eb6.mid b/sound/runtime/instruments/violin/Eb6.mid similarity index 100% rename from sound/instruments/violin/Eb6.mid rename to sound/runtime/instruments/violin/Eb6.mid diff --git a/sound/instruments/violin/Eb7.mid b/sound/runtime/instruments/violin/Eb7.mid similarity index 100% rename from sound/instruments/violin/Eb7.mid rename to sound/runtime/instruments/violin/Eb7.mid diff --git a/sound/instruments/violin/Eb8.mid b/sound/runtime/instruments/violin/Eb8.mid similarity index 100% rename from sound/instruments/violin/Eb8.mid rename to sound/runtime/instruments/violin/Eb8.mid diff --git a/sound/instruments/violin/En1.mid b/sound/runtime/instruments/violin/En1.mid similarity index 100% rename from sound/instruments/violin/En1.mid rename to sound/runtime/instruments/violin/En1.mid diff --git a/sound/instruments/violin/En2.mid b/sound/runtime/instruments/violin/En2.mid similarity index 100% rename from sound/instruments/violin/En2.mid rename to sound/runtime/instruments/violin/En2.mid diff --git a/sound/instruments/violin/En3.mid b/sound/runtime/instruments/violin/En3.mid similarity index 100% rename from sound/instruments/violin/En3.mid rename to sound/runtime/instruments/violin/En3.mid diff --git a/sound/instruments/violin/En4.mid b/sound/runtime/instruments/violin/En4.mid similarity index 100% rename from sound/instruments/violin/En4.mid rename to sound/runtime/instruments/violin/En4.mid diff --git a/sound/instruments/violin/En5.mid b/sound/runtime/instruments/violin/En5.mid similarity index 100% rename from sound/instruments/violin/En5.mid rename to sound/runtime/instruments/violin/En5.mid diff --git a/sound/instruments/violin/En6.mid b/sound/runtime/instruments/violin/En6.mid similarity index 100% rename from sound/instruments/violin/En6.mid rename to sound/runtime/instruments/violin/En6.mid diff --git a/sound/instruments/violin/En7.mid b/sound/runtime/instruments/violin/En7.mid similarity index 100% rename from sound/instruments/violin/En7.mid rename to sound/runtime/instruments/violin/En7.mid diff --git a/sound/instruments/violin/En8.mid b/sound/runtime/instruments/violin/En8.mid similarity index 100% rename from sound/instruments/violin/En8.mid rename to sound/runtime/instruments/violin/En8.mid diff --git a/sound/instruments/violin/Fn1.mid b/sound/runtime/instruments/violin/Fn1.mid similarity index 100% rename from sound/instruments/violin/Fn1.mid rename to sound/runtime/instruments/violin/Fn1.mid diff --git a/sound/instruments/violin/Fn2.mid b/sound/runtime/instruments/violin/Fn2.mid similarity index 100% rename from sound/instruments/violin/Fn2.mid rename to sound/runtime/instruments/violin/Fn2.mid diff --git a/sound/instruments/violin/Fn3.mid b/sound/runtime/instruments/violin/Fn3.mid similarity index 100% rename from sound/instruments/violin/Fn3.mid rename to sound/runtime/instruments/violin/Fn3.mid diff --git a/sound/instruments/violin/Fn4.mid b/sound/runtime/instruments/violin/Fn4.mid similarity index 100% rename from sound/instruments/violin/Fn4.mid rename to sound/runtime/instruments/violin/Fn4.mid diff --git a/sound/instruments/violin/Fn5.mid b/sound/runtime/instruments/violin/Fn5.mid similarity index 100% rename from sound/instruments/violin/Fn5.mid rename to sound/runtime/instruments/violin/Fn5.mid diff --git a/sound/instruments/violin/Fn6.mid b/sound/runtime/instruments/violin/Fn6.mid similarity index 100% rename from sound/instruments/violin/Fn6.mid rename to sound/runtime/instruments/violin/Fn6.mid diff --git a/sound/instruments/violin/Fn7.mid b/sound/runtime/instruments/violin/Fn7.mid similarity index 100% rename from sound/instruments/violin/Fn7.mid rename to sound/runtime/instruments/violin/Fn7.mid diff --git a/sound/instruments/violin/Fn8.mid b/sound/runtime/instruments/violin/Fn8.mid similarity index 100% rename from sound/instruments/violin/Fn8.mid rename to sound/runtime/instruments/violin/Fn8.mid diff --git a/sound/instruments/violin/Gb1.mid b/sound/runtime/instruments/violin/Gb1.mid similarity index 100% rename from sound/instruments/violin/Gb1.mid rename to sound/runtime/instruments/violin/Gb1.mid diff --git a/sound/instruments/violin/Gb2.mid b/sound/runtime/instruments/violin/Gb2.mid similarity index 100% rename from sound/instruments/violin/Gb2.mid rename to sound/runtime/instruments/violin/Gb2.mid diff --git a/sound/instruments/violin/Gb3.mid b/sound/runtime/instruments/violin/Gb3.mid similarity index 100% rename from sound/instruments/violin/Gb3.mid rename to sound/runtime/instruments/violin/Gb3.mid diff --git a/sound/instruments/violin/Gb4.mid b/sound/runtime/instruments/violin/Gb4.mid similarity index 100% rename from sound/instruments/violin/Gb4.mid rename to sound/runtime/instruments/violin/Gb4.mid diff --git a/sound/instruments/violin/Gb5.mid b/sound/runtime/instruments/violin/Gb5.mid similarity index 100% rename from sound/instruments/violin/Gb5.mid rename to sound/runtime/instruments/violin/Gb5.mid diff --git a/sound/instruments/violin/Gb6.mid b/sound/runtime/instruments/violin/Gb6.mid similarity index 100% rename from sound/instruments/violin/Gb6.mid rename to sound/runtime/instruments/violin/Gb6.mid diff --git a/sound/instruments/violin/Gb7.mid b/sound/runtime/instruments/violin/Gb7.mid similarity index 100% rename from sound/instruments/violin/Gb7.mid rename to sound/runtime/instruments/violin/Gb7.mid diff --git a/sound/instruments/violin/Gb8.mid b/sound/runtime/instruments/violin/Gb8.mid similarity index 100% rename from sound/instruments/violin/Gb8.mid rename to sound/runtime/instruments/violin/Gb8.mid diff --git a/sound/instruments/violin/Gn1.mid b/sound/runtime/instruments/violin/Gn1.mid similarity index 100% rename from sound/instruments/violin/Gn1.mid rename to sound/runtime/instruments/violin/Gn1.mid diff --git a/sound/instruments/violin/Gn2.mid b/sound/runtime/instruments/violin/Gn2.mid similarity index 100% rename from sound/instruments/violin/Gn2.mid rename to sound/runtime/instruments/violin/Gn2.mid diff --git a/sound/instruments/violin/Gn3.mid b/sound/runtime/instruments/violin/Gn3.mid similarity index 100% rename from sound/instruments/violin/Gn3.mid rename to sound/runtime/instruments/violin/Gn3.mid diff --git a/sound/instruments/violin/Gn4.mid b/sound/runtime/instruments/violin/Gn4.mid similarity index 100% rename from sound/instruments/violin/Gn4.mid rename to sound/runtime/instruments/violin/Gn4.mid diff --git a/sound/instruments/violin/Gn5.mid b/sound/runtime/instruments/violin/Gn5.mid similarity index 100% rename from sound/instruments/violin/Gn5.mid rename to sound/runtime/instruments/violin/Gn5.mid diff --git a/sound/instruments/violin/Gn6.mid b/sound/runtime/instruments/violin/Gn6.mid similarity index 100% rename from sound/instruments/violin/Gn6.mid rename to sound/runtime/instruments/violin/Gn6.mid diff --git a/sound/instruments/violin/Gn7.mid b/sound/runtime/instruments/violin/Gn7.mid similarity index 100% rename from sound/instruments/violin/Gn7.mid rename to sound/runtime/instruments/violin/Gn7.mid diff --git a/sound/instruments/violin/Gn8.mid b/sound/runtime/instruments/violin/Gn8.mid similarity index 100% rename from sound/instruments/violin/Gn8.mid rename to sound/runtime/instruments/violin/Gn8.mid diff --git a/sound/instruments/xylophone/Ab2.mid b/sound/runtime/instruments/xylophone/Ab2.mid similarity index 100% rename from sound/instruments/xylophone/Ab2.mid rename to sound/runtime/instruments/xylophone/Ab2.mid diff --git a/sound/instruments/xylophone/Ab3.mid b/sound/runtime/instruments/xylophone/Ab3.mid similarity index 100% rename from sound/instruments/xylophone/Ab3.mid rename to sound/runtime/instruments/xylophone/Ab3.mid diff --git a/sound/instruments/xylophone/Ab4.mid b/sound/runtime/instruments/xylophone/Ab4.mid similarity index 100% rename from sound/instruments/xylophone/Ab4.mid rename to sound/runtime/instruments/xylophone/Ab4.mid diff --git a/sound/instruments/xylophone/Ab5.mid b/sound/runtime/instruments/xylophone/Ab5.mid similarity index 100% rename from sound/instruments/xylophone/Ab5.mid rename to sound/runtime/instruments/xylophone/Ab5.mid diff --git a/sound/instruments/xylophone/Ab6.mid b/sound/runtime/instruments/xylophone/Ab6.mid similarity index 100% rename from sound/instruments/xylophone/Ab6.mid rename to sound/runtime/instruments/xylophone/Ab6.mid diff --git a/sound/instruments/xylophone/An2.mid b/sound/runtime/instruments/xylophone/An2.mid similarity index 100% rename from sound/instruments/xylophone/An2.mid rename to sound/runtime/instruments/xylophone/An2.mid diff --git a/sound/instruments/xylophone/An3.mid b/sound/runtime/instruments/xylophone/An3.mid similarity index 100% rename from sound/instruments/xylophone/An3.mid rename to sound/runtime/instruments/xylophone/An3.mid diff --git a/sound/instruments/xylophone/An4.mid b/sound/runtime/instruments/xylophone/An4.mid similarity index 100% rename from sound/instruments/xylophone/An4.mid rename to sound/runtime/instruments/xylophone/An4.mid diff --git a/sound/instruments/xylophone/An5.mid b/sound/runtime/instruments/xylophone/An5.mid similarity index 100% rename from sound/instruments/xylophone/An5.mid rename to sound/runtime/instruments/xylophone/An5.mid diff --git a/sound/instruments/xylophone/An6.mid b/sound/runtime/instruments/xylophone/An6.mid similarity index 100% rename from sound/instruments/xylophone/An6.mid rename to sound/runtime/instruments/xylophone/An6.mid diff --git a/sound/instruments/xylophone/Bb2.mid b/sound/runtime/instruments/xylophone/Bb2.mid similarity index 100% rename from sound/instruments/xylophone/Bb2.mid rename to sound/runtime/instruments/xylophone/Bb2.mid diff --git a/sound/instruments/xylophone/Bb3.mid b/sound/runtime/instruments/xylophone/Bb3.mid similarity index 100% rename from sound/instruments/xylophone/Bb3.mid rename to sound/runtime/instruments/xylophone/Bb3.mid diff --git a/sound/instruments/xylophone/Bb4.mid b/sound/runtime/instruments/xylophone/Bb4.mid similarity index 100% rename from sound/instruments/xylophone/Bb4.mid rename to sound/runtime/instruments/xylophone/Bb4.mid diff --git a/sound/instruments/xylophone/Bb5.mid b/sound/runtime/instruments/xylophone/Bb5.mid similarity index 100% rename from sound/instruments/xylophone/Bb5.mid rename to sound/runtime/instruments/xylophone/Bb5.mid diff --git a/sound/instruments/xylophone/Bb6.mid b/sound/runtime/instruments/xylophone/Bb6.mid similarity index 100% rename from sound/instruments/xylophone/Bb6.mid rename to sound/runtime/instruments/xylophone/Bb6.mid diff --git a/sound/instruments/xylophone/Bn2.mid b/sound/runtime/instruments/xylophone/Bn2.mid similarity index 100% rename from sound/instruments/xylophone/Bn2.mid rename to sound/runtime/instruments/xylophone/Bn2.mid diff --git a/sound/instruments/xylophone/Bn3.mid b/sound/runtime/instruments/xylophone/Bn3.mid similarity index 100% rename from sound/instruments/xylophone/Bn3.mid rename to sound/runtime/instruments/xylophone/Bn3.mid diff --git a/sound/instruments/xylophone/Bn4.mid b/sound/runtime/instruments/xylophone/Bn4.mid similarity index 100% rename from sound/instruments/xylophone/Bn4.mid rename to sound/runtime/instruments/xylophone/Bn4.mid diff --git a/sound/instruments/xylophone/Bn5.mid b/sound/runtime/instruments/xylophone/Bn5.mid similarity index 100% rename from sound/instruments/xylophone/Bn5.mid rename to sound/runtime/instruments/xylophone/Bn5.mid diff --git a/sound/instruments/xylophone/Bn6.mid b/sound/runtime/instruments/xylophone/Bn6.mid similarity index 100% rename from sound/instruments/xylophone/Bn6.mid rename to sound/runtime/instruments/xylophone/Bn6.mid diff --git a/sound/instruments/xylophone/Cn2.mid b/sound/runtime/instruments/xylophone/Cn2.mid similarity index 100% rename from sound/instruments/xylophone/Cn2.mid rename to sound/runtime/instruments/xylophone/Cn2.mid diff --git a/sound/instruments/xylophone/Cn3.mid b/sound/runtime/instruments/xylophone/Cn3.mid similarity index 100% rename from sound/instruments/xylophone/Cn3.mid rename to sound/runtime/instruments/xylophone/Cn3.mid diff --git a/sound/instruments/xylophone/Cn4.mid b/sound/runtime/instruments/xylophone/Cn4.mid similarity index 100% rename from sound/instruments/xylophone/Cn4.mid rename to sound/runtime/instruments/xylophone/Cn4.mid diff --git a/sound/instruments/xylophone/Cn5.mid b/sound/runtime/instruments/xylophone/Cn5.mid similarity index 100% rename from sound/instruments/xylophone/Cn5.mid rename to sound/runtime/instruments/xylophone/Cn5.mid diff --git a/sound/instruments/xylophone/Cn6.mid b/sound/runtime/instruments/xylophone/Cn6.mid similarity index 100% rename from sound/instruments/xylophone/Cn6.mid rename to sound/runtime/instruments/xylophone/Cn6.mid diff --git a/sound/instruments/xylophone/Db2.mid b/sound/runtime/instruments/xylophone/Db2.mid similarity index 100% rename from sound/instruments/xylophone/Db2.mid rename to sound/runtime/instruments/xylophone/Db2.mid diff --git a/sound/instruments/xylophone/Db3.mid b/sound/runtime/instruments/xylophone/Db3.mid similarity index 100% rename from sound/instruments/xylophone/Db3.mid rename to sound/runtime/instruments/xylophone/Db3.mid diff --git a/sound/instruments/xylophone/Db4.mid b/sound/runtime/instruments/xylophone/Db4.mid similarity index 100% rename from sound/instruments/xylophone/Db4.mid rename to sound/runtime/instruments/xylophone/Db4.mid diff --git a/sound/instruments/xylophone/Db5.mid b/sound/runtime/instruments/xylophone/Db5.mid similarity index 100% rename from sound/instruments/xylophone/Db5.mid rename to sound/runtime/instruments/xylophone/Db5.mid diff --git a/sound/instruments/xylophone/Db6.mid b/sound/runtime/instruments/xylophone/Db6.mid similarity index 100% rename from sound/instruments/xylophone/Db6.mid rename to sound/runtime/instruments/xylophone/Db6.mid diff --git a/sound/instruments/xylophone/Dn2.mid b/sound/runtime/instruments/xylophone/Dn2.mid similarity index 100% rename from sound/instruments/xylophone/Dn2.mid rename to sound/runtime/instruments/xylophone/Dn2.mid diff --git a/sound/instruments/xylophone/Dn3.mid b/sound/runtime/instruments/xylophone/Dn3.mid similarity index 100% rename from sound/instruments/xylophone/Dn3.mid rename to sound/runtime/instruments/xylophone/Dn3.mid diff --git a/sound/instruments/xylophone/Dn4.mid b/sound/runtime/instruments/xylophone/Dn4.mid similarity index 100% rename from sound/instruments/xylophone/Dn4.mid rename to sound/runtime/instruments/xylophone/Dn4.mid diff --git a/sound/instruments/xylophone/Dn5.mid b/sound/runtime/instruments/xylophone/Dn5.mid similarity index 100% rename from sound/instruments/xylophone/Dn5.mid rename to sound/runtime/instruments/xylophone/Dn5.mid diff --git a/sound/instruments/xylophone/Dn6.mid b/sound/runtime/instruments/xylophone/Dn6.mid similarity index 100% rename from sound/instruments/xylophone/Dn6.mid rename to sound/runtime/instruments/xylophone/Dn6.mid diff --git a/sound/instruments/xylophone/Eb2.mid b/sound/runtime/instruments/xylophone/Eb2.mid similarity index 100% rename from sound/instruments/xylophone/Eb2.mid rename to sound/runtime/instruments/xylophone/Eb2.mid diff --git a/sound/instruments/xylophone/Eb3.mid b/sound/runtime/instruments/xylophone/Eb3.mid similarity index 100% rename from sound/instruments/xylophone/Eb3.mid rename to sound/runtime/instruments/xylophone/Eb3.mid diff --git a/sound/instruments/xylophone/Eb4.mid b/sound/runtime/instruments/xylophone/Eb4.mid similarity index 100% rename from sound/instruments/xylophone/Eb4.mid rename to sound/runtime/instruments/xylophone/Eb4.mid diff --git a/sound/instruments/xylophone/Eb5.mid b/sound/runtime/instruments/xylophone/Eb5.mid similarity index 100% rename from sound/instruments/xylophone/Eb5.mid rename to sound/runtime/instruments/xylophone/Eb5.mid diff --git a/sound/instruments/xylophone/Eb6.mid b/sound/runtime/instruments/xylophone/Eb6.mid similarity index 100% rename from sound/instruments/xylophone/Eb6.mid rename to sound/runtime/instruments/xylophone/Eb6.mid diff --git a/sound/instruments/xylophone/En2.mid b/sound/runtime/instruments/xylophone/En2.mid similarity index 100% rename from sound/instruments/xylophone/En2.mid rename to sound/runtime/instruments/xylophone/En2.mid diff --git a/sound/instruments/xylophone/En3.mid b/sound/runtime/instruments/xylophone/En3.mid similarity index 100% rename from sound/instruments/xylophone/En3.mid rename to sound/runtime/instruments/xylophone/En3.mid diff --git a/sound/instruments/xylophone/En4.mid b/sound/runtime/instruments/xylophone/En4.mid similarity index 100% rename from sound/instruments/xylophone/En4.mid rename to sound/runtime/instruments/xylophone/En4.mid diff --git a/sound/instruments/xylophone/En5.mid b/sound/runtime/instruments/xylophone/En5.mid similarity index 100% rename from sound/instruments/xylophone/En5.mid rename to sound/runtime/instruments/xylophone/En5.mid diff --git a/sound/instruments/xylophone/En6.mid b/sound/runtime/instruments/xylophone/En6.mid similarity index 100% rename from sound/instruments/xylophone/En6.mid rename to sound/runtime/instruments/xylophone/En6.mid diff --git a/sound/instruments/xylophone/Fn2.mid b/sound/runtime/instruments/xylophone/Fn2.mid similarity index 100% rename from sound/instruments/xylophone/Fn2.mid rename to sound/runtime/instruments/xylophone/Fn2.mid diff --git a/sound/instruments/xylophone/Fn3.mid b/sound/runtime/instruments/xylophone/Fn3.mid similarity index 100% rename from sound/instruments/xylophone/Fn3.mid rename to sound/runtime/instruments/xylophone/Fn3.mid diff --git a/sound/instruments/xylophone/Fn4.mid b/sound/runtime/instruments/xylophone/Fn4.mid similarity index 100% rename from sound/instruments/xylophone/Fn4.mid rename to sound/runtime/instruments/xylophone/Fn4.mid diff --git a/sound/instruments/xylophone/Fn5.mid b/sound/runtime/instruments/xylophone/Fn5.mid similarity index 100% rename from sound/instruments/xylophone/Fn5.mid rename to sound/runtime/instruments/xylophone/Fn5.mid diff --git a/sound/instruments/xylophone/Fn6.mid b/sound/runtime/instruments/xylophone/Fn6.mid similarity index 100% rename from sound/instruments/xylophone/Fn6.mid rename to sound/runtime/instruments/xylophone/Fn6.mid diff --git a/sound/instruments/xylophone/Gb2.mid b/sound/runtime/instruments/xylophone/Gb2.mid similarity index 100% rename from sound/instruments/xylophone/Gb2.mid rename to sound/runtime/instruments/xylophone/Gb2.mid diff --git a/sound/instruments/xylophone/Gb3.mid b/sound/runtime/instruments/xylophone/Gb3.mid similarity index 100% rename from sound/instruments/xylophone/Gb3.mid rename to sound/runtime/instruments/xylophone/Gb3.mid diff --git a/sound/instruments/xylophone/Gb4.mid b/sound/runtime/instruments/xylophone/Gb4.mid similarity index 100% rename from sound/instruments/xylophone/Gb4.mid rename to sound/runtime/instruments/xylophone/Gb4.mid diff --git a/sound/instruments/xylophone/Gb5.mid b/sound/runtime/instruments/xylophone/Gb5.mid similarity index 100% rename from sound/instruments/xylophone/Gb5.mid rename to sound/runtime/instruments/xylophone/Gb5.mid diff --git a/sound/instruments/xylophone/Gb6.mid b/sound/runtime/instruments/xylophone/Gb6.mid similarity index 100% rename from sound/instruments/xylophone/Gb6.mid rename to sound/runtime/instruments/xylophone/Gb6.mid diff --git a/sound/instruments/xylophone/Gn2.mid b/sound/runtime/instruments/xylophone/Gn2.mid similarity index 100% rename from sound/instruments/xylophone/Gn2.mid rename to sound/runtime/instruments/xylophone/Gn2.mid diff --git a/sound/instruments/xylophone/Gn3.mid b/sound/runtime/instruments/xylophone/Gn3.mid similarity index 100% rename from sound/instruments/xylophone/Gn3.mid rename to sound/runtime/instruments/xylophone/Gn3.mid diff --git a/sound/instruments/xylophone/Gn4.mid b/sound/runtime/instruments/xylophone/Gn4.mid similarity index 100% rename from sound/instruments/xylophone/Gn4.mid rename to sound/runtime/instruments/xylophone/Gn4.mid diff --git a/sound/instruments/xylophone/Gn5.mid b/sound/runtime/instruments/xylophone/Gn5.mid similarity index 100% rename from sound/instruments/xylophone/Gn5.mid rename to sound/runtime/instruments/xylophone/Gn5.mid diff --git a/sound/instruments/xylophone/Gn6.mid b/sound/runtime/instruments/xylophone/Gn6.mid similarity index 100% rename from sound/instruments/xylophone/Gn6.mid rename to sound/runtime/instruments/xylophone/Gn6.mid diff --git a/tgui/packages/tgui/interfaces/InstrumentEditor.tsx b/tgui/packages/tgui/interfaces/InstrumentEditor.tsx new file mode 100644 index 0000000000..d607d62c8a --- /dev/null +++ b/tgui/packages/tgui/interfaces/InstrumentEditor.tsx @@ -0,0 +1,371 @@ +import { useBackend } from 'tgui/backend'; +import { Window } from 'tgui/layouts'; +import { + Box, + Button, + Collapsible, + Divider, + Dropdown, + Input, + NumberInput, + Section, + Stack, + Tooltip, +} from 'tgui-core/components'; +import type { BooleanLike } from 'tgui-core/react'; + +type Data = { + id: string; + using_instrument: string; + note_shift_min: number; + note_shift_max: number; + note_shift: number; + octaves: number; + sustain_modes: string[]; + sustain_mode: string; + sustain_mode_button: string; + sustain_mode_duration: number; + instrument_ready: BooleanLike; + volume: number; + volume_dropoff_threshold: number; + min_volume: number; + max_volume: number; + sustain_indefinitely: BooleanLike; + sustain_mode_min: number; + sustain_mode_max: number; + playing: BooleanLike; + max_repeats: number; + repeat: number; + bpm: number; + lines: LineData[]; + can_switch_instrument: BooleanLike; + possible_instruments: InstrumentData[]; + max_line_chars: number; + max_lines: number; +}; + +type InstrumentData = { + name: string; + id: string; +}; + +type LineData = { + line_count: number; + line_text: string; +}; + +export const InstrumentEditor = (props) => { + const { data } = useBackend(); + + return ( + + + + + + + + + + + + ); +}; + +const InstrumentSettings = (props) => { + const { act, data } = useBackend(); + const { + id, + playing, + repeat, + max_repeats, + can_switch_instrument, + possible_instruments = [], + instrument_ready, + using_instrument, + note_shift_min, + note_shift_max, + note_shift, + octaves, + sustain_modes, + sustain_mode, + sustain_mode_button, + sustain_mode_duration, + sustain_indefinitely, + sustain_mode_min, + sustain_mode_max, + volume, + min_volume, + max_volume, + volume_dropoff_threshold, + lines, + } = data; + + const instrument_id_by_name = (name) => { + return possible_instruments.find((instrument) => instrument.name === name) + ?.id; + }; + + return ( +

+ {lines.length > 0 && ( + + + + )} + + + + ID: + + + act('set_instrument_id', { id: value })} + /> + + + Repeats Left: + + act('set_repeat_amount', { + amount: value, + }) + } + /> + + + {!!can_switch_instrument && ( + + Instrument Using + + instrument.name, + )} + onSelected={(value) => + act('change_instrument', { + new_instrument: instrument_id_by_name(value), + }) + } + /> + + + )} + + + + Playback Settings: + + + act('set_note_shift', { + amount: value, + }) + } + /> + keys / {octaves} octaves + + + Mode: + + + act('set_sustain_mode', { + new_mode: value, + }) + } + /> + + + + {sustain_mode_button}: + + act('edit_sustain_mode', { + amount: value, + }) + } + /> + + + + + + Status: + {instrument_ready ? ( + Ready + ) : ( + + {` Instrument Definition Error!`} + + )} + + + Volume: + + act('set_volume', { + amount: value, + }) + } + /> + + + Volume Dropoff Threshold: + + act('set_dropoff_volume', { + amount: value, + }) + } + /> + + + + + + +
+ ); +}; + +const EditingSettings = (props) => { + const { act, data } = useBackend(); + const { bpm, lines } = data; + + return ( +
+ + + + + + {`Tempo: `} + + {` ${bpm} BPM `} + + + + {lines.map((line, index) => ( + + Line {index}: + + + {line.line_text} + + ))} + + + + +
+ ); +}; + +const HelpSection = (props) => { + const { data } = useBackend(); + const { max_line_chars, max_lines } = data; + + return ( +
+ + Lines are a series of chords, separated by commas (,), each with notes + separated by hyphens (-). +
+ Every note in a chord will play together, with chord timed by the tempo. +
+ Notes are played by the names of the note, and optionally, the + accidental, and/or the octave number. +
+ By default, every note is natural and in octave 3. Defining otherwise is + remembered for each note. +
+ Example: C,D,E,F,G,A,B will play a C major scale. +
+ After a note has an accidental placed, it will be remembered:{' '} + C,C4,C,C3 is C3,C4,C4,C3 +
+ Chords can be played simply by seperating each note with a hyphon:{' '} + A-C#,Cn-E,E-G#,Gn-B +
A pause may be denoted by an empty chord: C,E,,C,G +
+ To make a chord be a different time, end it with /x, where the chord + length will be length +
+ defined by tempo / x: C,G/2,E/4 +
+ Combined, an example is: E-E4/4,F#/2,G#/8,B/8,E3-E4/4 +
+ Lines may be up to {max_line_chars} characters. +
A song may only contain up to {max_lines} lines. +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx index ecd6d774df..3209c1bb62 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx @@ -1,7 +1,9 @@ import { CheckboxInput, + type Feature, FeatureNumberInput, type FeatureNumeric, + FeatureSliderInput, type FeatureToggle, } from '../base'; @@ -26,6 +28,13 @@ export const SOUND_AMBIENCE: FeatureToggle = { component: CheckboxInput, }; +export const sound_instruments: Feature = { + name: 'Instruments volume', + category: 'SOUND', + description: 'Volume of instruments.', + component: FeatureSliderInput, +}; + export const SOUND_JUKEBOX: FeatureToggle = { name: 'Play Jukebox Music', category: 'SOUNDS', diff --git a/vorestation.dme b/vorestation.dme index 427d106441..5f54e00760 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -170,6 +170,7 @@ #include "code\__defines\simple_mob.dm" #include "code\__defines\size.dm" #include "code\__defines\slosh.dm" +#include "code\__defines\song.dm" #include "code\__defines\soulcatcher.dm" #include "code\__defines\sound.dm" #include "code\__defines\span.dm" @@ -221,6 +222,7 @@ #include "code\__defines\dcs\signals\signals_client.dm" #include "code\__defines\dcs\signals\signals_datum.dm" #include "code\__defines\dcs\signals\signals_material_container.dm" +#include "code\__defines\dcs\signals\signals_music.dm" #include "code\__defines\dcs\signals\signals_object.dm" #include "code\__defines\dcs\signals\signals_subsystem.dm" #include "code\__defines\dcs\signals\signals_techweb.dm" @@ -3001,7 +3003,7 @@ #include "code\modules\identification\identification.dm" #include "code\modules\identification\item_procs.dm" #include "code\modules\instruments\items.dm" -#include "code\modules\instruments\items_ch.dm" +#include "code\modules\instruments\piano_synth.dm" #include "code\modules\instruments\stationary.dm" #include "code\modules\instruments\instrument_data\_instrument_data.dm" #include "code\modules\instruments\instrument_data\_instrument_key.dm" @@ -5169,6 +5171,8 @@ #include "modular_chomp\code\modules\halloween\snacks.dm" #include "modular_chomp\code\modules\hydro\plants.dm" #include "modular_chomp\code\modules\hydro\plantsstorage.dm" +#include "modular_chomp\code\modules\instruments\items.dm" +#include "modular_chomp\code\modules\instruments\stationary.dm" #include "modular_chomp\code\modules\living\carbon\human\ai_controlled\ai_controlled.dm" #include "modular_chomp\code\modules\lore_codex\codex.dm" #include "modular_chomp\code\modules\lore_codex\codex_tree.dm"