1.8k Views
15.8k Executions
Piano Semi-auto play
10K executions
Visual Pianos
magi_tk10K executions
3 months ago
Please login to perform these actions:Piano Semi-auto play is a Visual Pianos script for Roblox, uploaded to ScriptBlox on Aug 24, 2026.
Does it work?
No reports yetNo reports yet. Tried it? Be the first to say.
Also noticed:
Description
piano auto play. and no, it doesnt play automatically. you need to press "-" (minus) to play every note. more explanation is in script.
local VirtualInputManager = game:GetService("VirtualInputManager")
local UserInputService = game:GetService("UserInputService")
-- ▼▼▼ ur note here. ▼▼▼
local sheetMusic = [[
[o@(YPD] P [o@(YPD] [o@YP] s [P5wyod] [E5yo] o [%WYts] [t%YP] O [5wEYP] [5EY] Y [W4qti] [W4ti] o [t@(O] [t@O] [tP] [@(ts] [29yd] [18YD] [^Pidg] [%W] [5w] [4qP] [@(PDoh] [P5wig] [YD] [^EPidg] q [9id] [y^P] [18osYD] [@(od] s [5wyod] 9 [^yo] [E5o] [%WYts] [4qtYP] [WO] [5wEYP] [5wEY] Y [4qpYD] [Y4qod] [ps] [y^EP] [%WPd] [5wsD] [4qdg] [@(PDoh] [29] [@(] [4q] [5wdPgJ] [sD] [P5wd] [sD] [^Edg] [PJ] [PJ] [PJ] [^PJ] [qyiP] [yi^P] [Pd] [s%WD] [5wdg]
[18osYD] 5 [18] [29] [@(Podh] [ps] [o@P] [ps] [P5wd] [5oh] [oh] [oh] [^oh] [E9yo] [E5yo] [oP] [O4qs] [^Pd] [s%YD] [Os] [@(] [Pd] [8tsYD] [Os] [^E] [Pd] [s%WYD] [YOs] [s@(OD] [8tsODH] [^EOH] [OH] [OH] [%WOH] [5wOH] [4qsgOH] 5 % [^EPdh] g [s^OD] [Pdg] [@(PDoh] [29] [@(] [5woPD] [4qoPD] [@(YP] [YP] [29YP] [18YP] [29ipsg] [ps] @ 4 [5woaD] d [5ips] [oad] [18osYD] 2 @ [Y4os] [Y8tos] [Yo] [^E] [Yo] [s%WYD] [P4qd] [Os] [5wYP] [5EY] Y [4qpYD] [Y4od] Y [ps] [y^EP] [y^O] P [o@(YPD] [o@YP] s [P5wyod] [E5yo] o [%WYts] [t%YP] O [5wEYP] [5EY] Y [W4qti] [W4ti] o [t@(O] [t@O] [tP] [@(ts] [29yd] [18YD] [^Pidg] [%W] [5w] [4qP] [@(PDoh] [P5wig] [YD] [^EPidg] q [9id] [y^P] [18osYD] [@(od] s [5wyod] 9 [^yo] [E5o] [%WYts] [4qtYP] [WO] [5wEYP] [5wEY] Y [4qpYD] [Y4qod] [ps] [y^EP] [%WPd] [5wsD] [4qdg] [@(PDoh] [29] [@(] [4q] [5wdPJg] [sD] [P5wd] [sD] [^Edg] [PJ] [PJ] [PJ] [^PJ] [qyiP] [yi^P] [Pd] [s%WD] [5wdg] [18osYD] 5 [18] [29] [@(Pohd] [ps] [o@P] [ps] [P5wd] [5oh] [oh] [oh] [^oh] [E9yo] [E5yo] [oP] [O4qs] [^Pd] [s%YD] [Os] [@(] [Pd] [8tsYD] [Os] [^E] [Pd] [s%WYD] [YOs] [s@(OD] [8tsODH] [^EOH] [OH] [OH] [%WOH] [5wOH] [4qsgOH] 5 % [^EPdh] g [s^OD] [Pdg] [@(PDoh] [29] [@(] [5woPD] [4qoPD] [@(YP] [YP] [29YP] [18YP] [29ipsg] [ps] @ 4 [5woaD] d [5ips] [oad] [18osYD] 2 @ [Y4os] [Y8tos] [Yo] [^E] [Yo] [s%WYD] [P4qd] [Os] [5wEYP] [5EY] Y [y^EOP] [%OPts] [^Oyid] [o@YPD]
]]
-- ▲▲▲ and ends here. ▲▲▲
local notes = {}
for word in sheetMusic:gmatch("%S+") do
table.insert(notes, word)
end
local isOn = false
local currentIndex = 1
local isPlaying = false
local shiftMap = {
['!'] = Enum.KeyCode.One, ['@'] = Enum.KeyCode.Two, ['#'] = Enum.KeyCode.Three,
['$'] = Enum.KeyCode.Four, ['%'] = Enum.KeyCode.Five, ['^'] = Enum.KeyCode.Six,
['&'] = Enum.KeyCode.Seven, ['*'] = Enum.KeyCode.Eight, ['('] = Enum.KeyCode.Nine,
[')'] = Enum.KeyCode.Zero, ['_'] = Enum.KeyCode.Minus, ['+'] = Enum.KeyCode.Equals,
['{'] = Enum.KeyCode.LeftBracket, ['}'] = Enum.KeyCode.RightBracket,
['|'] = Enum.KeyCode.BackSlash, [':'] = Enum.KeyCode.Semicolon,
['"'] = Enum.KeyCode.Quote, ['<'] = Enum.KeyCode.Comma, ['>'] = Enum.KeyCode.Period,
['?'] = Enum.KeyCode.Slash, ['~'] = Enum.KeyCode.Tilde
}
local function getKeyCode(char)
if shiftMap[char] then return shiftMap[char] end
if char:match("%a") then return Enum.KeyCode[char:upper()] end
if char:match("%d") then
local numToName = {["1"]="One", ["2"]="Two", ["3"]="Three", ["4"]="Four", ["5"]="Five", ["6"]="Six", ["7"]="Seven", ["8"]="Eight", ["9"]="Nine", ["0"]="Zero"}
return Enum.KeyCode[numToName[char]]
end
local map = {
['-'] = Enum.KeyCode.Minus, ['='] = Enum.KeyCode.Equals,
['['] = Enum.KeyCode.LeftBracket, [']'] = Enum.KeyCode.RightBracket,
Comments
0Log in to join the conversation. Login
No comments yet. Be the first!
