Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local term = require("term")
- local computer = require("computer")
- local keyboard = require("keyboard")
- currentNote = 0
- note = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
- notesec = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
- i = 0
- i2 = 0
- term.clear()
- function redrawMenu()
- term.clear()
- print("+-Note Sequencer-----------------+")
- print("+ 1-2-3-4-5-6-7-8-9 Играть ноты +")
- print("+ F1-F10 - Настройка нот +")
- print("+ Ctrl - Играть Shift - Random +")
- print("+ X - Выход +")
- print("+--------------------------------+")
- print("Сечас играет нота: "..currentNote)
- end
- function setNote(numNote,key)
- if keyboard.isKeyDown(key) then
- os.sleep(0.1)
- print("Настройка ноты " .. numNote)
- -- Чтение частоты
- io.write("Частота: ")
- note[numNote] = io.read("*number")
- -- Чтение длительностей
- io.write("Длительность (в секундах): ")
- notesec[numNote] = io.read("*number")
- redrawMenu()
- end
- end
- function playNote(numNote,key)
- if keyboard.isKeyDown(key) then
- os.sleep(0.1)
- computer.beep(note[numNote], notesec[numNote])
- end
- end
- redrawMenu()
- while true do
- os.sleep(0.1)
- setNote(1,0x3B)
- setNote(2,0x3C)
- setNote(3,0x3D)
- setNote(4,0x3E)
- setNote(5,0x3F)
- setNote(6,0x40)
- setNote(7,0x41)
- setNote(8,0x42)
- setNote(9,0x43)
- setNote(10,0x44)
- playNote(1,0x02)
- playNote(2,0x03)
- playNote(3,0x04)
- playNote(4,0x05)
- playNote(5,0x06)
- playNote(6,0x07)
- playNote(7,0x08)
- playNote(8,0x09)
- playNote(9,0x0A)
- playNote(10,0x0B)
- if keyboard.isKeyDown(0x2D) == true then -- Выход
- os.sleep(0.1)
- os.exit()
- end
- if keyboard.isShiftDown() == true then -- Рандом
- computer.beep(1500, 0.5)
- note = {math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000), math.random(100,2000)}
- notesec = {0.1, 0.2, 0.3, 0.1, 0, 0.4, 0.1, 0.2, 0.1, 0.3}
- end
- if keyboard.isControlDown() == true then -- Играть
- io.write("Сколько раз повторять: ")
- i2 = io.read("*number")
- os.sleep(0.1)
- for i = 1, i2 do
- os.sleep(0)
- computer.beep(note[1],notesec[1])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[2],notesec[2])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[3],notesec[3])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[4],notesec[4])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[5],notesec[5])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[6],notesec[6])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[7],notesec[7])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[8],notesec[8])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[9],notesec[9])
- currentNote = currentNote + 1
- redrawMenu()
- computer.beep(note[10],notesec[10])
- currentNote = currentNote + 1
- currentNote = 0
- redrawMenu()
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement