Static data for a soundboard UI. Defines SoundPad and SoundBoardTab types and builds several preset pad lists (Main, Arnold, Trending fallback), combines them into Boards and computes pad labels and per-sound volume via Pad() and SoundPlayTracker/ SoundVolumeGains lookups.
namespace SSoundboard;
public sealed class SoundPad
{
public string Label { get; init; }
public string SoundId { get; init; }
public string Color { get; init; }
public float Volume { get; init; } = 1f;
}
public sealed class SoundBoardTab
{
public string Id { get; init; }
public string Label { get; init; }
public string Icon { get; init; } = "🎚";
public List<SoundPad> Pads { get; init; } = new();
}
public static class SoundBoardData
{
static readonly IReadOnlyList<SoundPad> MainPads = new List<SoundPad>
{
Pad( "sounds/alarms/Car Alarm", "#ff3b5c" ),
Pad( "sounds/alarms/alarm", "#ff3b5c" ),
Pad( "sounds/alarms/churchbells", "#ff3b5c" ),
Pad( "sounds/ambient/Arcade", "#3dcc5a" ),
Pad( "sounds/ambient/blackbird", "#3dcc5a" ),
Pad( "sounds/ambient/eerie", "#3dcc5a" ),
Pad( "sounds/ambient/icecreamtruck", "#3dcc5a" ),
Pad( "sounds/ambient/ocean", "#3dcc5a" ),
Pad( "sounds/ambient/rainstorm", "#3dcc5a" ),
Pad( "sounds/ambient/sega", "#3dcc5a" ),
Pad( "sounds/commercial/calworthington", "#ffd34a" ),
Pad( "sounds/fuckyoutoy/Eat Shit", "#ff4fd8" ),
Pad( "sounds/fuckyoutoy/Fuck You", "#ff4fd8" ),
Pad( "sounds/fuckyoutoy/Fucking Jerk", "#ff4fd8" ),
Pad( "sounds/fuckyoutoy/Youre An Asshole", "#ff4fd8" ),
Pad( "sounds/web/discord-notification", "#5865f2" ),
Pad( "sounds/web/dj-airhorn", "#ff3b5c" ),
Pad( "sounds/web/clown-horn", "#ff6b2b" ),
Pad( "sounds/web/roblox-death", "#e74c3c" ),
Pad( "sounds/web/sonic-ring", "#f1c40f" ),
Pad( "sounds/web/fah", "#ff66cc" ),
Pad( "sounds/web/rizz-sounds", "#8b5cff" ),
Pad( "sounds/web/tuco-get-out", "#ff8a3d" ),
Pad( "sounds/web/wide-putin", "#4da6ff" ),
Pad( "sounds/web/mexican-laugh", "#3dcc5a" ),
Pad( "sounds/web/tuturu", "#7cf9ff" ),
Pad( "sounds/web/mickey-laugh", "#ffd34a" ),
Pad( "sounds/web/iphone-message", "#b8c7ff" ),
Pad( "sounds/web/mlg-airhorn", "#ff3b5c" ),
Pad( "sounds/web/fnaf-hello", "#c0392b" ),
Pad( "sounds/glitch/RoboPuppy", "#5cff7a" ),
Pad( "sounds/glitch/minipiano", "#5cff7a" ),
Pad( "sounds/meme/bruh", "#ff66cc" ),
Pad( "sounds/meme/fart", "#ff66cc" ),
Pad( "sounds/meme/oh-my-god", "#ff66cc" ),
Pad( "sounds/meme/vine-boom", "#ff66cc" ),
Pad( "sounds/meme/xp-startup", "#ff66cc" ),
Pad( "sounds/random/GroanTube", "#ff8a3d" ),
Pad( "sounds/voice/alienworld", "#4da6ff" ),
Pad( "sounds/voice/gocorona", "#4da6ff" ),
Pad( "sounds/voice/walt", "#4da6ff" ),
};
static readonly IReadOnlyList<SoundPad> ArnoldPads = new List<SoundPad>
{
Pad( "sounds/arnold/1-st", "#8b5cff", "1 ST" ),
Pad( "sounds/arnold/1-st-a", "#3dcc5a", "1 ST A" ),
Pad( "sounds/arnold/1-st-b", "#ff3b5c", "1 ST B" ),
Pad( "sounds/arnold/1-st-c", "#ffd34a", "1 ST C" ),
Pad( "sounds/arnold/bastard", "#ff5f7a", "Bast" ),
Pad( "sounds/arnold/bitch", "#e62e4d", "Btch" ),
Pad( "sounds/arnold/bulllllllshit", "#ff8a9d", "BS 2" ),
Pad( "sounds/arnold/bullshit", "#ff3b5c", "BS" ),
Pad( "sounds/arnold/choppa", "#ff8a3d", "Choppa" ),
Pad( "sounds/arnold/coldblood", "#ff5f7a", "Bast 2" ),
Pad( "sounds/arnold/crap-2", "#e62e4d", "Crap" ),
Pad( "sounds/arnold/deep", "#ff8a9d", "Deep" ),
Pad( "sounds/arnold/disgusting", "#ff3b5c", "Disgusting" ),
Pad( "sounds/arnold/disgusting-2", "#ff5f7a", "Disgusting 2" ),
Pad( "sounds/arnold/dontbs", "#e62e4d", "BS me" ),
Pad( "sounds/arnold/dontbs-2", "#ff8a9d", "BS me 2" ),
Pad( "sounds/arnold/dontdothat", "#ff3b5c", "Don’t do" ),
Pad( "sounds/arnold/dontknowu", "#ff5f7a", "DKY" ),
Pad( "sounds/arnold/dontscream", "#e62e4d", "Don’t scream" ),
Pad( "sounds/arnold/fu", "#ff8a9d", "FU" ),
Pad( "sounds/arnold/fuass", "#ff3b5c", "FU 2" ),
Pad( "sounds/arnold/fuckbitch", "#ff5f7a", "Btch 2" ),
Pad( "sounds/arnold/funny", "#e62e4d", "Funny?" ),
Pad( "sounds/arnold/funny-3", "#ff8a9d", "Funny? 2" ),
Pad( "sounds/arnold/helldo", "#ff3b5c", "Do?" ),
Pad( "sounds/arnold/hellthink", "#ff5f7a", "Thinking?" ),
Pad( "sounds/arnold/idiot", "#e62e4d", "Idiot" ),
Pad( "sounds/arnold/kissmom", "#ff8a9d", "Kiss MB" ),
Pad( "sounds/arnold/lackdiscipline", "#ff3b5c", "Lack" ),
Pad( "sounds/arnold/leavealone", "#ff5f7a", "Leave" ),
Pad( "sounds/arnold/likeothers", "#e62e4d", "Others" ),
Pad( "sounds/arnold/mfbitch", "#ff8a9d", "MFB" ),
Pad( "sounds/arnold/mine", "#ff3b5c", "Mine" ),
Pad( "sounds/arnold/ohno", "#ff5f7a", "Oh, no" ),
Pad( "sounds/arnold/ohshit", "#e62e4d", "Sht" ),
Pad( "sounds/arnold/ohshit-2", "#ff8a9d", "Sht 2" ),
Pad( "sounds/arnold/outofmind", "#ff3b5c", "Mind?" ),
Pad( "sounds/arnold/outr", "#ff5f7a", "Outrageous" ),
Pad( "sounds/arnold/rid", "#e62e4d", "Ridiculous" ),
Pad( "sounds/arnold/saysamething", "#ff8a9d", "Same" ),
Pad( "sounds/arnold/shutup", "#ff3b5c", "Shut up" ),
Pad( "sounds/arnold/shutup-3x", "#ff5f7a", "3x" ),
Pad( "sounds/arnold/shutupppp", "#e62e4d", "Shut up!!!" ),
Pad( "sounds/arnold/sob", "#ff8a9d", "SOB" ),
Pad( "sounds/arnold/sob-2", "#ff3b5c", "SOB 2" ),
Pad( "sounds/arnold/stfu", "#ff5f7a", "STFU" ),
Pad( "sounds/arnold/stfu-2", "#e62e4d", "STFU 2" ),
Pad( "sounds/arnold/stom", "#ff8a9d", "Stomach" ),
Pad( "sounds/arnold/stopit", "#ff3b5c", "Stop it" ),
Pad( "sounds/arnold/stoplaugh", "#ff5f7a", "Stop laugh" ),
Pad( "sounds/arnold/stopthat", "#e62e4d", "Stop that" ),
Pad( "sounds/arnold/stopwhining", "#ff8a9d", "Whining" ),
Pad( "sounds/arnold/storystraight", "#ff3b5c", "Story" ),
Pad( "sounds/arnold/takeback", "#ff5f7a", "Take" ),
Pad( "sounds/arnold/takeback-2", "#e62e4d", "Take 2" ),
Pad( "sounds/arnold/ucrazy", "#ff8a9d", "Crazy?" ),
Pad( "sounds/arnold/udid", "#ff3b5c", "You did" ),
Pad( "sounds/arnold/ulie", "#ff5f7a", "Lie" ),
Pad( "sounds/arnold/ustarted", "#e62e4d", "Started" ),
Pad( "sounds/arnold/wtf", "#ff8a9d", "WTF?" ),
Pad( "sounds/arnold/wtf-2", "#ff3b5c", "WTF? 2" ),
Pad( "sounds/arnold/wtfwrong", "#ff5f7a", "WTF wrong?" ),
Pad( "sounds/arnold/arrest", "#5c7cfa", "Arrest" ),
Pad( "sounds/arnold/cake", "#7d97ff", "Cake" ),
Pad( "sounds/arnold/charges", "#3d5fd6", "Charges" ),
Pad( "sounds/arnold/charges-2", "#9eb4ff", "Charges 2" ),
Pad( "sounds/arnold/cocaine", "#5c7cfa", "Coke" ),
Pad( "sounds/arnold/cocaine-2", "#7d97ff", "Coke 2" ),
Pad( "sounds/arnold/cocaine-3", "#3d5fd6", "Coke 3" ),
Pad( "sounds/arnold/cop", "#9eb4ff", "Cop" ),
Pad( "sounds/arnold/drug", "#5c7cfa", "Drug?" ),
Pad( "sounds/arnold/drug-2", "#7d97ff", "Names" ),
Pad( "sounds/arnold/police", "#3d5fd6", "Police Officer" ),
Pad( "sounds/arnold/police-2", "#9eb4ff", "PO 2" ),
Pad( "sounds/arnold/talkcrime", "#5c7cfa", "Crime" ),
Pad( "sounds/arnold/underarrest", "#7d97ff", "Arrest 2" ),
Pad( "sounds/arnold/1hr", "#ff4fd8", "1 hr" ),
Pad( "sounds/arnold/1hr-2", "#ff73e0", "1 hr (2)" ),
Pad( "sounds/arnold/1hr-3", "#e63bc4", "1 hr (3)" ),
Pad( "sounds/arnold/253", "#ff9be8", "2 hrs" ),
Pad( "sounds/arnold/618", "#ff4fd8", "6:18" ),
Pad( "sounds/arnold/645", "#ff73e0", "6:45" ),
Pad( "sounds/arnold/1130", "#e63bc4", "11:30" ),
Pad( "sounds/arnold/feb13", "#ff9be8", "Feb 13" ),
Pad( "sounds/arnold/feb14", "#ff4fd8", "Feb 14" ),
Pad( "sounds/arnold/july", "#ff73e0", "July" ),
Pad( "sounds/arnold/oct7th", "#e63bc4", "Oct 7" ),
Pad( "sounds/arnold/rightnow", "#ff9be8", "Now?" ),
Pad( "sounds/arnold/timefor", "#ff4fd8", "Time for" ),
Pad( "sounds/arnold/whenuwant", "#ff73e0", "Whenever" ),
Pad( "sounds/arnold/daddy", "#ff66cc", "Daddy?" ),
Pad( "sounds/arnold/daddy-2", "#ff85d6", "D 2" ),
Pad( "sounds/arnold/daddy-3", "#ff4fc3", "D 3" ),
Pad( "sounds/arnold/daddy-4", "#ff99dd", "D 4" ),
Pad( "sounds/arnold/daddy-5", "#ff66cc", "D 5" ),
Pad( "sounds/arnold/getmother", "#ff85d6", "Get Mother" ),
Pad( "sounds/arnold/getmother-2", "#ff4fc3", "Get Mom 2" ),
Pad( "sounds/arnold/getmother-3", "#ff99dd", "Get Mom 3" ),
Pad( "sounds/arnold/speakwife", "#ff66cc", "Speak Wife" ),
Pad( "sounds/arnold/speakwife-2", "#ff85d6", "Get Her" ),
Pad( "sounds/arnold/speakwife-3", "#ff4fc3", "Get Her 2" ),
Pad( "sounds/arnold/talkmother", "#ff99dd", "Talk Mother" ),
Pad( "sounds/arnold/whereisshe", "#ff66cc", "Where she?" ),
Pad( "sounds/arnold/whereshenow", "#ff85d6", "Where now?" ),
Pad( "sounds/arnold/wifecrazy", "#ff4fc3", "Wife crazy" ),
Pad( "sounds/arnold/mywife", "#ff99dd", "My Wife" ),
Pad( "sounds/arnold/break", "#ffd34a", "Breakfast?" ),
Pad( "sounds/arnold/cookies", "#ffdf70", "Cookies?" ),
Pad( "sounds/arnold/cookies-2", "#f1c40f", "Eat Cookies?" ),
Pad( "sounds/arnold/cookies-3", "#ffe08a", "Cookie down" ),
Pad( "sounds/arnold/dinner", "#ffd34a", "Dinner?" ),
Pad( "sounds/arnold/drinkbake", "#ffdf70", "Drink & Bake" ),
Pad( "sounds/arnold/hungry", "#f1c40f", "Hungry" ),
Pad( "sounds/arnold/lookstom", "#ffe08a", "Stomach" ),
Pad( "sounds/arnold/makefat", "#ffd34a", "Fat" ),
Pad( "sounds/arnold/pasta", "#ffdf70", "Pasta" ),
Pad( "sounds/arnold/sourk", "#f1c40f", "Sauerkraut" ),
Pad( "sounds/arnold/yummy", "#ffe08a", "Yummy" ),
Pad( "sounds/arnold/2weekpack", "#5cff7a", "2 week?" ),
Pad( "sounds/arnold/onenight", "#7dffa0", "1 night" ),
Pad( "sounds/arnold/roomplease", "#3de65c", "Room" ),
Pad( "sounds/arnold/roomplease-2", "#a8ffc0", "Room 2" ),
Pad( "sounds/arnold/tonight", "#5cff7a", "Tonight" ),
Pad( "sounds/arnold/vac", "#7dffa0", "Vacation" ),
Pad( "sounds/arnold/wantroom", "#3de65c", "Want room" ),
Pad( "sounds/arnold/findme", "#4da6ff", "Find?" ),
Pad( "sounds/arnold/goingon", "#6bb8ff", "Going?" ),
Pad( "sounds/arnold/goingon-2", "#2b8cff", "Going? 2" ),
Pad( "sounds/arnold/goingonnow", "#7cf9ff", "Going now?" ),
Pad( "sounds/arnold/gottado", "#4da6ff", "Do?" ),
Pad( "sounds/arnold/hellgoingon", "#6bb8ff", "WTH?" ),
Pad( "sounds/arnold/hello", "#2b8cff", "Hello" ),
Pad( "sounds/arnold/hello-2", "#7cf9ff", "Hello 2" ),
Pad( "sounds/arnold/hellqtpie", "#4da6ff", "QTPie" ),
Pad( "sounds/arnold/helpmenow", "#6bb8ff", "Help 3" ),
Pad( "sounds/arnold/helpneed", "#2b8cff", "Help" ),
Pad( "sounds/arnold/helpwant", "#7cf9ff", "Help 2" ),
Pad( "sounds/arnold/hi", "#4da6ff", "Hi" ),
Pad( "sounds/arnold/hi-2", "#6bb8ff", "Hi 2" ),
Pad( "sounds/arnold/hihoney", "#2b8cff", "Hi Honey" ),
Pad( "sounds/arnold/howdoinbuddy", "#7cf9ff", "Doin?" ),
Pad( "sounds/arnold/howdy", "#4da6ff", "Howdy?" ),
Pad( "sounds/arnold/howru", "#6bb8ff", "How are you?" ),
Pad( "sounds/arnold/imback", "#2b8cff", "Back" ),
Pad( "sounds/arnold/knowu", "#7cf9ff", "Know you" ),
Pad( "sounds/arnold/knowu-2", "#4da6ff", "Know you 2" ),
Pad( "sounds/arnold/listen", "#6bb8ff", "Listen" ),
Pad( "sounds/arnold/look", "#2b8cff", "Look" ),
Pad( "sounds/arnold/lookingforsome", "#7cf9ff", "Looking" ),
Pad( "sounds/arnold/lookingforsome-2", "#4da6ff", "Looking 2" ),
Pad( "sounds/arnold/meetu", "#6bb8ff", "Meet you" ),
Pad( "sounds/arnold/morn", "#2b8cff", "Morning" ),
Pad( "sounds/arnold/realname", "#7cf9ff", "Name?" ),
Pad( "sounds/arnold/sungdam", "#4da6ff", "Sunglasses" ),
Pad( "sounds/arnold/sup", "#6bb8ff", "Sup" ),
Pad( "sounds/arnold/supguys", "#2b8cff", "Sup 2" ),
Pad( "sounds/arnold/surprise", "#7cf9ff", "Surprise" ),
Pad( "sounds/arnold/talkimp", "#4da6ff", "Talk" ),
Pad( "sounds/arnold/talksome", "#6bb8ff", "Talk 2" ),
Pad( "sounds/arnold/wakeup", "#2b8cff", "Wake up 2" ),
Pad( "sounds/arnold/wakeupdrunk", "#7cf9ff", "Wake up" ),
Pad( "sounds/arnold/whatwant", "#4da6ff", "Want?" ),
Pad( "sounds/arnold/whatwant-2", "#6bb8ff", "Want? 2" ),
Pad( "sounds/arnold/whereisthis", "#2b8cff", "Where?" ),
Pad( "sounds/arnold/whoisit", "#7cf9ff", "Who is it?" ),
Pad( "sounds/arnold/whoisit-2", "#4da6ff", "Mother?" ),
Pad( "sounds/arnold/whoru", "#6bb8ff", "Who are you?" ),
Pad( "sounds/arnold/whoru-2", "#2b8cff", "Who? 2" ),
Pad( "sounds/arnold/wtfgoinon", "#7cf9ff", "WTF?" ),
Pad( "sounds/arnold/10hr", "#9b59b6", "$10/hr" ),
Pad( "sounds/arnold/300day", "#b07cc6", "$300/day" ),
Pad( "sounds/arnold/constwork", "#7d3c98", "Construction" ),
Pad( "sounds/arnold/doingmyjob", "#d2a6e8", "Doing job" ),
Pad( "sounds/arnold/dontdowork", "#9b59b6", "Don’t do" ),
Pad( "sounds/arnold/myjob", "#b07cc6", "My job" ),
Pad( "sounds/arnold/workalone", "#7d3c98", "Work alone" ),
Pad( "sounds/arnold/232", "#00c2cb", "232" ),
Pad( "sounds/arnold/232-2", "#33d1d8", "Alton" ),
Pad( "sounds/arnold/232alton", "#009aa1", "232 Alton" ),
Pad( "sounds/arnold/addresses", "#5ce8ee", "Address?" ),
Pad( "sounds/arnold/america", "#00c2cb", "USA" ),
Pad( "sounds/arnold/aust", "#33d1d8", "AUS" ),
Pad( "sounds/arnold/california", "#009aa1", "CA" ),
Pad( "sounds/arnold/comefrom", "#5ce8ee", "From?" ),
Pad( "sounds/arnold/faraway", "#00c2cb", "Far" ),
Pad( "sounds/arnold/giveadd", "#33d1d8", "Give Address" ),
Pad( "sounds/arnold/los", "#009aa1", "LA" ),
Pad( "sounds/arnold/meetme-2", "#5ce8ee", "Halfway" ),
Pad( "sounds/arnold/mexico", "#00c2cb", "Mexico" ),
Pad( "sounds/arnold/mexico-2", "#33d1d8", "MX 2" ),
Pad( "sounds/arnold/miami", "#009aa1", "Miami" ),
Pad( "sounds/arnold/rumford", "#5ce8ee", "Rumford 2" ),
Pad( "sounds/arnold/rumford2029", "#00c2cb", "Rumford" ),
Pad( "sounds/arnold/sac", "#33d1d8", "Sacramento" ),
Pad( "sounds/arnold/50bucks", "#2ecc71", "$50" ),
Pad( "sounds/arnold/getrefund", "#58d68d", "Refund 3" ),
Pad( "sounds/arnold/haverefund", "#27ae60", "Refund" ),
Pad( "sounds/arnold/haverefund-2", "#82e0aa", "Refund 2" ),
Pad( "sounds/arnold/howmuch", "#2ecc71", "How much?" ),
Pad( "sounds/arnold/money", "#58d68d", "Money imp" ),
Pad( "sounds/arnold/noextra", "#27ae60", "No extra" ),
Pad( "sounds/arnold/no-money", "#82e0aa", "No money" ),
Pad( "sounds/arnold/arn", "#ff6b2b", "Arnold" ),
Pad( "sounds/arnold/arn-2", "#ff8547", "Arnold 2" ),
Pad( "sounds/arnold/arn-3", "#e65c00", "Arnold 3" ),
Pad( "sounds/arnold/arn-4", "#ff9a5c", "Arnold 4" ),
Pad( "sounds/arnold/arn-5", "#ff6b2b", "Schwarzenegger" ),
Pad( "sounds/arnold/arn-6", "#ff8547", "Schwarz 2" ),
Pad( "sounds/arnold/anon", "#e65c00", "Anun" ),
Pad( "sounds/arnold/anon-2", "#ff9a5c", "Anun 2" ),
Pad( "sounds/arnold/boris", "#ff6b2b", "Boris" ),
Pad( "sounds/arnold/berrerajose", "#ff8547", "Jose" ),
Pad( "sounds/arnold/conan", "#e65c00", "Conan" ),
Pad( "sounds/arnold/dana", "#ff9a5c", "Dana" ),
Pad( "sounds/arnold/det", "#ff6b2b", "Det Kimble" ),
Pad( "sounds/arnold/dyson", "#ff8547", "Dyson" ),
Pad( "sounds/arnold/ed-corney", "#e65c00", "Corney" ),
Pad( "sounds/arnold/franco", "#ff9a5c", "Franco" ),
Pad( "sounds/arnold/hauser", "#ff6b2b", "Hauser" ),
Pad( "sounds/arnold/iam", "#ff8547", "I am?" ),
Pad( "sounds/arnold/imterm", "#e65c00", "Term" ),
Pad( "sounds/arnold/itsme", "#ff9a5c", "Me" ),
Pad( "sounds/arnold/jamie", "#ff6b2b", "Jamie" ),
Pad( "sounds/arnold/jamie-please", "#ff8547", "Jamie, please" ),
Pad( "sounds/arnold/jayne", "#e65c00", "Jayne" ),
Pad( "sounds/arnold/johnconnor", "#ff9a5c", "John" ),
Pad( "sounds/arnold/johnkimble", "#ff6b2b", "Kimble" ),
Pad( "sounds/arnold/julius", "#ff8547", "Julius" ),
Pad( "sounds/arnold/katherine-brewster", "#e65c00", "Kate" ),
Pad( "sounds/arnold/ken", "#ff9a5c", "Ken" ),
Pad( "sounds/arnold/lamon", "#ff6b2b", "Lamon" ),
Pad( "sounds/arnold/lou", "#ff8547", "Lou" ),
Pad( "sounds/arnold/mike-katz", "#e65c00", "Mike" ),
Pad( "sounds/arnold/miles", "#ff9a5c", "MDB" ),
Pad( "sounds/arnold/quaid", "#ff6b2b", "Quaid" ),
Pad( "sounds/arnold/quaid-2", "#ff8547", "Quaid 2" ),
Pad( "sounds/arnold/sarah-connor", "#e65c00", "Sarah" ),
Pad( "sounds/arnold/sarah-connor-2", "#ff9a5c", "Sarah friend" ),
Pad( "sounds/arnold/thomas-aquinas", "#ff6b2b", "Thomas" ),
Pad( "sounds/arnold/thomas-aquinas-2", "#ff8547", "Thomas 2" ),
Pad( "sounds/arnold/whoami", "#e65c00", "Who am I?" ),
Pad( "sounds/arnold/whoami-2", "#ff9a5c", "Who? 2" ),
Pad( "sounds/arnold/you", "#ff6b2b", "You" ),
Pad( "sounds/arnold/cough", "#f1c40f", "Cough" ),
Pad( "sounds/arnold/haha", "#f5d34a", "Haha" ),
Pad( "sounds/arnold/haha-2", "#d4ac0d", "Haha 2" ),
Pad( "sounds/arnold/haha-6", "#ffe066", "Haha 3" ),
Pad( "sounds/arnold/haha-long", "#f1c40f", "Haha Long" ),
Pad( "sounds/arnold/reading", "#f5d34a", "Reading" ),
Pad( "sounds/arnold/scream", "#d4ac0d", "Scream" ),
Pad( "sounds/arnold/scream-predator", "#ffe066", "Scream 3" ),
Pad( "sounds/arnold/yak", "#f1c40f", "Yak" ),
Pad( "sounds/arnold/yak-2", "#f5d34a", "Yak 2" ),
Pad( "sounds/arnold/comeon", "#e74c3c", "Come on" ),
Pad( "sounds/arnold/come-on-2", "#ff6b5a", "Come on 2" ),
Pad( "sounds/arnold/come-on-3", "#c0392b", "Quickly" ),
Pad( "sounds/arnold/doitnow", "#ff9588", "Do it now" ),
Pad( "sounds/arnold/dowhatitell", "#e74c3c", "Do what I tell" ),
Pad( "sounds/arnold/hurry", "#ff6b5a", "Hurry" ),
Pad( "sounds/arnold/immediately", "#c0392b", "Immediately" ),
Pad( "sounds/arnold/immediately-2", "#ff9588", "Immed 2" ),
Pad( "sounds/arnold/justdoit", "#e74c3c", "Do it" ),
Pad( "sounds/arnold/now", "#ff6b5a", "Now!!!" ),
Pad( "sounds/arnold/yesrightnow", "#c0392b", "Right now" ),
Pad( "sounds/arnold/yesrightnow-2", "#ff9588", "Right now 2" ),
Pad( "sounds/arnold/2", "#ffb84d", "2" ),
Pad( "sounds/arnold/3", "#ff9f1a", "3" ),
Pad( "sounds/arnold/4", "#ffe08a", "4" ),
Pad( "sounds/arnold/5", "#ffd34a", "5" ),
Pad( "sounds/arnold/7", "#ffb84d", "7" ),
Pad( "sounds/arnold/8", "#ff9f1a", "8" ),
Pad( "sounds/arnold/10", "#ffe08a", "10" ),
Pad( "sounds/arnold/20", "#ffd34a", "20" ),
Pad( "sounds/arnold/29", "#ffb84d", "29" ),
Pad( "sounds/arnold/200", "#ff9f1a", "200" ),
Pad( "sounds/arnold/717", "#ffe08a", "717" ),
Pad( "sounds/arnold/829", "#ffd34a", "829" ),
Pad( "sounds/arnold/2029", "#ffb84d", "2029" ),
Pad( "sounds/arnold/calluback", "#5865f2", "Call you back" ),
Pad( "sounds/arnold/dontcall", "#7280ff", "Don’t call anybody" ),
Pad( "sounds/arnold/phonecall", "#4752c4", "Call" ),
Pad( "sounds/arnold/phonecall-2", "#99a5ff", "From you" ),
Pad( "sounds/arnold/phonecall-3", "#5865f2", "From you 2" ),
Pad( "sounds/arnold/ansques", "#a47dff", "Hope" ),
Pad( "sounds/arnold/ansques-2", "#6f3dff", "Hope 2" ),
Pad( "sounds/arnold/fewques", "#b794ff", "Few ques" ),
Pad( "sounds/arnold/fewques-2", "#8b5cff", "Few 2" ),
Pad( "sounds/arnold/fewques-3", "#a47dff", "Few 3" ),
Pad( "sounds/arnold/ques", "#6f3dff", "Ask ques" ),
Pad( "sounds/arnold/ques-2", "#b794ff", "Q 2" ),
Pad( "sounds/arnold/ques-3", "#8b5cff", "Q 3" ),
Pad( "sounds/arnold/ques-4", "#a47dff", "Q 4" ),
Pad( "sounds/arnold/ques-5", "#6f3dff", "Q 5" ),
Pad( "sounds/arnold/question", "#b794ff", "One more" ),
Pad( "sounds/arnold/question-2", "#8b5cff", "Answer ques" ),
Pad( "sounds/arnold/tellme", "#a47dff", "Tell?" ),
Pad( "sounds/arnold/absyeah", "#5fe07a", "Abs" ),
Pad( "sounds/arnold/beback", "#27ae60", "Be back" ),
Pad( "sounds/arnold/bebothered", "#7cff9a", "Bothered" ),
Pad( "sounds/arnold/beli", "#3dcc5a", "Believe?" ),
Pad( "sounds/arnold/checkback", "#5fe07a", "Checking" ),
Pad( "sounds/arnold/correct", "#27ae60", "Correct" ),
Pad( "sounds/arnold/doesmatter", "#7cff9a", "Doesn’t matter" ),
Pad( "sounds/arnold/dontcare", "#3dcc5a", "IDC" ),
Pad( "sounds/arnold/donttalk", "#5fe07a", "No talk" ),
Pad( "sounds/arnold/dontworry", "#27ae60", "Don’t worry" ),
Pad( "sounds/arnold/exactly", "#7cff9a", "Exactly" ),
Pad( "sounds/arnold/forgetit", "#3dcc5a", "Forget" ),
Pad( "sounds/arnold/good", "#5fe07a", "Good" ),
Pad( "sounds/arnold/goodbye", "#27ae60", "Bye" ),
Pad( "sounds/arnold/goon", "#7cff9a", "Go, on" ),
Pad( "sounds/arnold/hearsaid", "#3dcc5a", "Said?" ),
Pad( "sounds/arnold/hearu", "#5fe07a", "Hear" ),
Pad( "sounds/arnold/hitspot", "#27ae60", "Hit spot" ),
Pad( "sounds/arnold/howknow", "#7cff9a", "Know?" ),
Pad( "sounds/arnold/huh", "#3dcc5a", "Huh?" ),
Pad( "sounds/arnold/idk", "#5fe07a", "IDK" ),
Pad( "sounds/arnold/idk-2", "#27ae60", "IDK 2" ),
Pad( "sounds/arnold/idk-3", "#7cff9a", "IDK 3" ),
Pad( "sounds/arnold/ilied", "#3dcc5a", "I lied" ),
Pad( "sounds/arnold/insist", "#5fe07a", "Insist" ),
Pad( "sounds/arnold/likethat", "#27ae60", "Like" ),
Pad( "sounds/arnold/negative", "#7cff9a", "Negative" ),
Pad( "sounds/arnold/no", "#3dcc5a", "No" ),
Pad( "sounds/arnold/no-2", "#5fe07a", "No 2" ),
Pad( "sounds/arnold/nodeal", "#27ae60", "No deal" ),
Pad( "sounds/arnold/nono", "#7cff9a", "No, no" ),
Pad( "sounds/arnold/noooooo", "#3dcc5a", "No!!!" ),
Pad( "sounds/arnold/notgetinto", "#5fe07a", "No talk 2" ),
Pad( "sounds/arnold/notinterested", "#27ae60", "Not int" ),
Pad( "sounds/arnold/nottrue", "#7cff9a", "Not true" ),
Pad( "sounds/arnold/ohno-r", "#3dcc5a", "Oh, no" ),
Pad( "sounds/arnold/ok", "#5fe07a", "ok" ),
Pad( "sounds/arnold/point", "#27ae60", "Point?" ),
Pad( "sounds/arnold/point-2", "#7cff9a", "Point? 2" ),
Pad( "sounds/arnold/proud", "#3dcc5a", "Proud" ),
Pad( "sounds/arnold/sayagain", "#5fe07a", "Say again?" ),
Pad( "sounds/arnold/so", "#27ae60", "So?" ),
Pad( "sounds/arnold/sometrust", "#7cff9a", "Trust" ),
Pad( "sounds/arnold/sorry", "#3dcc5a", "Sorry" ),
Pad( "sounds/arnold/sorry-2", "#5fe07a", "Sorry 2" ),
Pad( "sounds/arnold/sorry-3", "#27ae60", "Sorry 3" ),
Pad( "sounds/arnold/st8withme", "#7cff9a", "Straight" ),
Pad( "sounds/arnold/sure", "#3dcc5a", "Sure" ),
Pad( "sounds/arnold/tellmewhat", "#5fe07a", "What? 3" ),
Pad( "sounds/arnold/terrific", "#27ae60", "Terrific" ),
Pad( "sounds/arnold/thankyou", "#7cff9a", "Thank you" ),
Pad( "sounds/arnold/thatisfunny", "#3dcc5a", "Funny" ),
Pad( "sounds/arnold/thatisfunny-2", "#5fe07a", "Funny 2" ),
Pad( "sounds/arnold/trustme", "#27ae60", "Trust me" ),
Pad( "sounds/arnold/trustme-2", "#7cff9a", "Count on me" ),
Pad( "sounds/arnold/understand", "#3dcc5a", "Understand?" ),
Pad( "sounds/arnold/urlying", "#5fe07a", "Lying" ),
Pad( "sounds/arnold/utellme", "#27ae60", "Tell me" ),
Pad( "sounds/arnold/what", "#7cff9a", "What?" ),
Pad( "sounds/arnold/what-2", "#3dcc5a", "What? 2" ),
Pad( "sounds/arnold/whatmean", "#5fe07a", "Mean?" ),
Pad( "sounds/arnold/whatsmatter", "#27ae60", "Matter?" ),
Pad( "sounds/arnold/whatsmatter-2", "#7cff9a", "Matter? 2" ),
Pad( "sounds/arnold/whatsthat", "#3dcc5a", "That?" ),
Pad( "sounds/arnold/whattalk", "#5fe07a", "Talking?" ),
Pad( "sounds/arnold/whattalk-2", "#27ae60", "Talking? 2" ),
Pad( "sounds/arnold/why", "#7cff9a", "Why?" ),
Pad( "sounds/arnold/whyilie", "#3dcc5a", "Why lie?" ),
Pad( "sounds/arnold/whynot", "#5fe07a", "Why not?" ),
Pad( "sounds/arnold/wrongthat", "#27ae60", "Wrong?" ),
Pad( "sounds/arnold/yeah", "#7cff9a", "Yeah" ),
Pad( "sounds/arnold/yeah-2", "#3dcc5a", "Yeah 2" ),
Pad( "sounds/arnold/yes", "#5fe07a", "Yes" ),
Pad( "sounds/arnold/yes-2", "#27ae60", "Yes 2" ),
Pad( "sounds/arnold/yes-ang", "#7cff9a", "Yes!!!" ),
Pad( "sounds/arnold/1sec", "#7cf9ff", "1 sec" ),
Pad( "sounds/arnold/bathbrb", "#9ffbff", "Bath" ),
Pad( "sounds/arnold/bathbrb-2", "#5adde6", "Bath 2" ),
Pad( "sounds/arnold/brbok", "#c8fdff", "BRB" ),
Pad( "sounds/arnold/brbok-2", "#7cf9ff", "BRB 2?" ),
Pad( "sounds/arnold/hold", "#9ffbff", "Hold on" ),
Pad( "sounds/arnold/wait", "#5adde6", "Wait" ),
Pad( "sounds/arnold/waitmin", "#c8fdff", "Wait min" ),
Pad( "sounds/arnold/choir", "#e62e4d", "Choir" ),
Pad( "sounds/arnold/dontfuckbs", "#ff8a9d", "BS me 3" ),
Pad( "sounds/arnold/drunkbitch", "#ff3b5c", "Drunk 2" ),
Pad( "sounds/arnold/drunkfuck", "#ff5f7a", "Drunk" ),
Pad( "sounds/arnold/eatme", "#e62e4d", "Eat me" ),
Pad( "sounds/arnold/fuckingcrazy", "#ff8a9d", "F’n Crazy?" ),
Pad( "sounds/arnold/fuckingcrazybitch", "#ff3b5c", "F’n Crazy? 2" ),
Pad( "sounds/arnold/guysass", "#ff5f7a", "Guy" ),
Pad( "sounds/arnold/hatedrunk", "#e62e4d", "Hate drunk" ),
Pad( "sounds/arnold/pissedoff", "#ff8a9d", "Pissed" ),
Pad( "sounds/arnold/psychobitch", "#ff3b5c", "PB" ),
Pad( "sounds/arnold/psychobitch-2", "#ff5f7a", "PB 2" ),
Pad( "sounds/arnold/stopbitch", "#e62e4d", "Stop 3" ),
Pad( "sounds/arnold/stopfa", "#ff8a9d", "Stop 2" ),
Pad( "sounds/arnold/stoppussy", "#ff3b5c", "Stop" ),
Pad( "sounds/arnold/whatisfnbs", "#ff5f7a", "BS?" ),
Pad( "sounds/arnold/wtfwrong4x", "#e62e4d", "WTF? 4x" ),
Pad( "sounds/arnold/youbastards", "#ff8a9d", "Bast 3" ),
Pad( "sounds/arnold/choppa-2", "#ffa35f", "Choppa 2" ),
Pad( "sounds/arnold/aliens", "#e6732b", "Aliens?" ),
Pad( "sounds/arnold/dino", "#ffbc82", "Dinosaurs" ),
Pad( "sounds/arnold/getall", "#ff8a3d", "Get all" ),
Pad( "sounds/arnold/killeddino", "#ffa35f", "Killed Dino?" ),
Pad( "sounds/arnold/screwyou", "#e6732b", "Screw you" ),
Pad( "sounds/arnold/inveover", "#3d5fd6", "Over" ),
Pad( "sounds/arnold/jail", "#9eb4ff", "Jail" ),
Pad( "sounds/arnold/stealscar", "#5c7cfa", "Car" ),
Pad( "sounds/arnold/stealscar-2", "#7d97ff", "Car 2" ),
Pad( "sounds/arnold/aaagghhoooooo", "#d4ac0d", "Aagghoo" ),
Pad( "sounds/arnold/aaagghhoooooo-2", "#ffe066", "Aagghoo 2" ),
Pad( "sounds/arnold/aaagghhoooooo-3", "#f1c40f", "Aagghoo 3" ),
Pad( "sounds/arnold/haha-7", "#f5d34a", "Haha 4" ),
Pad( "sounds/arnold/ninjanoises", "#d4ac0d", "Ninja" ),
Pad( "sounds/arnold/scream-2", "#ffe066", "Scream 2" ),
Pad( "sounds/arnold/yeahrrgghh", "#f1c40f", "Yeahrrgghh" ),
Pad( "sounds/arnold/warm", "#a8ffc0", "Go?" ),
Pad( "sounds/arnold/warm-2", "#5cff7a", "Warm" ),
Pad( "sounds/arnold/warm-3", "#7dffa0", "Tan" ),
Pad( "sounds/arnold/vacsold", "#3de65c", "Sold" ),
Pad( "sounds/arnold/travelsame", "#a8ffc0", "Travel?" ),
Pad( "sounds/arnold/pina", "#5cff7a", "Pina" ),
Pad( "sounds/arnold/24", "#ff9f1a", "24" ),
Pad( "sounds/arnold/25", "#ffe08a", "25" ),
Pad( "sounds/arnold/43per", "#ffd34a", "43%" ),
Pad( "sounds/arnold/3333", "#ffb84d", "3333" ),
Pad( "sounds/arnold/make10", "#ff9f1a", "Make 10" ),
Pad( "sounds/arnold/gameover", "#3dcc5a", "Game over" ),
Pad( "sounds/arnold/hasta", "#5fe07a", "Hasta la vista" ),
Pad( "sounds/arnold/shower", "#27ae60", "Shower" ),
Pad( "sounds/arnold/arrrrghhhh-3", "#ff6b2b", "ARRRRGHHHH 3" ),
Pad( "sounds/arnold/hol", "#4da6ff", "HOL" ),
Pad( "sounds/arnold/news", "#8b5cff", "NEWS" ),
Pad( "sounds/arnold/stuttering", "#3dcc5a", "STUTTERING" ),
};
static readonly IReadOnlyList<SoundPad> TrendingFallbackPads = new List<SoundPad>
{
Pad( "sounds/sbw/clash-royale", "#f1c40f" ),
Pad( "sounds/sbw/are-you-serious", "#8b5cff" ),
Pad( "sounds/sbw/italian-brainrot-rap", "#4da6ff" ),
Pad( "sounds/sbw/its-raining-tacos", "#ffd34a" ),
Pad( "sounds/sbw/tung-tung-sahur", "#ff3b5c" ),
Pad( "sounds/sbw/apple-pay", "#b8c7ff" ),
Pad( "sounds/sbw/tactical-nuke", "#e74c3c" ),
Pad( "sounds/sbw/john-cena", "#3dcc5a" ),
Pad( "sounds/sbw/rick-roll", "#ff66cc" ),
Pad( "sounds/sbw/taco-bell-bong", "#ff6b2b" ),
Pad( "sounds/sbw/fbi-open-up", "#5865f2" ),
Pad( "sounds/sbw/kahoot", "#7cf9ff" ),
Pad( "sounds/sbw/gigachad", "#5cff7a" ),
Pad( "sounds/sbw/goofy-ahh-laugh", "#ff8a3d" ),
Pad( "sounds/sbw/stop-the-cap", "#ff4fd8" ),
};
static readonly IReadOnlyList<SoundPad> TrendingPool = BuildTrendingPool();
public static IReadOnlyList<SoundBoardTab> Boards => new List<SoundBoardTab>
{
new()
{
Id = "main",
Label = "MAIN",
Icon = "🎛",
Pads = MainPads.ToList()
},
BuildTrendingTab(),
new()
{
Id = "arnold",
Label = "ARNOLD",
Icon = "💪",
Pads = ArnoldPads.ToList()
}
};
static SoundBoardTab BuildTrendingTab()
{
return new SoundBoardTab
{
Id = "trending",
Label = "TRENDING",
Icon = "🔥",
Pads = SoundPlayTracker.BuildTrendingPads( TrendingPool, TrendingFallbackPads ).ToList()
};
}
static IReadOnlyList<SoundPad> BuildTrendingPool()
{
var pads = new Dictionary<string, SoundPad>( StringComparer.OrdinalIgnoreCase );
void AddRange( IEnumerable<SoundPad> source )
{
foreach ( var pad in source )
pads[pad.SoundId] = pad;
}
AddRange( MainPads );
AddRange( ArnoldPads );
AddRange( TrendingFallbackPads );
return pads.Values.ToList();
}
static SoundPad Pad( string soundId, string color, string label )
=> Pad( soundId, color, 1f, label );
static SoundPad Pad( string soundId, string color, float volume = 1f, string label = null )
{
var autoLabel = soundId.Split( '/' ).Last().Replace( '-', ' ' ).Replace( '_', ' ' );
return new SoundPad
{
Label = (label ?? autoLabel).ToUpperInvariant(),
SoundId = soundId,
Color = color,
Volume = volume * SoundVolumeGains.Get( soundId )
};
}
}