Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local bass = peripheral.wrap("left")
- local treble = peripheral.wrap("right")
- local monitor = peripheral.wrap("top")
- term.redirect(monitor)
- term.clear()
- monitor.setTextScale(.5)
- monitor.setBackgroundColor(colors.gray)
- monitor.clear()
- local keys = {
- ["cSharp"] = {window.create(monitor, 4, 0, 3, 7, true), 8},
- ["dSharp"] = {window.create(monitor, 9, 0, 3, 7, true), 10},
- ["fSharp"] = {window.create(monitor, 19, 0, 3, 7, true), 13},
- ["gSharp"] = {window.create(monitor, 24, 0, 3, 7, true), 15},
- ["aSharp"] = {window.create(monitor, 29, 0, 3, 7, true), 17},
- ["c"] = {window.create(monitor, 1, 0, 4, 15, true), 7},
- ["d"] = {window.create(monitor, 6, 0, 4, 15, true), 9},
- ["e"] = {window.create(monitor, 11, 0, 4, 15, true), 11},
- ["f"] = {window.create(monitor, 16, 0, 4, 15, true), 12},
- ["g"] = {window.create(monitor, 21, 0, 4, 15, true), 14},
- ["a"] = {window.create(monitor, 26, 0, 4, 15, true), 16},
- ["b"] = {window.create(monitor, 31, 0, 4, 15, true), 18},
- ["c2"] = {window.create(monitor, 36, 0, 4, 15, true), 19}
- }
- for k, v in pairs(keys) do
- v = v[1]
- if not k:find("Sharp") then
- v.setBackgroundColor(colors.white)
- v.clear()
- end
- end
- for k, v in pairs(keys) do
- v = v[1]
- if k:find("Sharp") then
- v.setBackgroundColor(colors.black)
- v.clear()
- end
- end
- function checkKey(x, y)
- for k, v in pairs(keys) do
- v = v[1]
- if k:find("Sharp") then
- local vPosX, vPosY = v.getPosition()
- if x >= vPosX and y >= vPosY and x <= vPosX+2 and y <= vPosY+6 then
- return k
- end
- elseif not k:find("Sharp") then
- local vPosX, vPosY = v.getPosition()
- if x >= vPosX and y >= vPosY and x <= vPosX+3 and y <= vPosY+14 then
- return k
- end
- else
- return false
- end
- end
- end
- while true do
- event, side, xPos, yPos = os.pullEvent("monitor_touch")
- local keyHit = checkKey(xPos, yPos)
- if keyHit then
- bass.playNote("bass", 2, keys[keyHit][2])
- treble.playNote("harp", 2, keys[keyHit][2])
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment