Advertisement
Laine_prikol

opencomputers note sequencer (fixed)

Mar 7th, 2017
140
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local term = require("term")
  2. local computer = require("computer")
  3. local keyboard = require("keyboard")
  4. currentNote = 0
  5. note = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  6. notesec = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  7. i = 0
  8. i2 = 0
  9. term.clear()
  10. function redrawMenu()
  11. term.clear()
  12. print("+-Note Sequencer-----------------+")
  13. print("+ 1-2-3-4-5-6-7-8-9 Играть ноты  +")
  14. print("+ F1-F10 - Настройка нот         +")
  15. print("+ Ctrl - Играть  Shift - Random  +")
  16. print("+ X - Выход                      +")
  17. print("+--------------------------------+")
  18. print("Сечас играет нота: "..currentNote)
  19. end
  20. redrawMenu()
  21. while true do
  22. os.sleep(0.1)
  23.     if keyboard.isKeyDown(0x3B) == true then -- f1
  24.     os.sleep(0.1)
  25.     print("Настройка ноты 1")
  26.     -- Чтение частоты
  27.     io.write("Частота: ")
  28.     note[1] = io.read("*number")
  29.     -- Чтение длительностей
  30.     io.write("Длительность (в секундах): ")
  31.     notesec[1] = io.read("*number")
  32.     redrawMenu()
  33.     end
  34. os.sleep(0.1)
  35.     if keyboard.isKeyDown(0x3C) == true then -- f2
  36.     os.sleep(0.1)
  37.     print("Настройка ноты 2")
  38.     -- Чтение частоты
  39.     io.write("Частота: ")
  40.     note[2] = io.read("*number")
  41.     -- Чтение длительностей
  42.     io.write("Длительность (в секундах): ")
  43.     notesec[2] = io.read("*number")
  44.     redrawMenu()
  45.     end
  46.     if keyboard.isKeyDown(0x3D) == true then -- f3
  47.     os.sleep(0.1)
  48.     print("Настройка ноты 3")
  49.     -- Чтение частоты
  50.     io.write("Частота: ")
  51.     note[3] = io.read("*number")
  52.     -- Чтение длительностей
  53.     io.write("Длительность (в секундах): ")
  54.     notesec[3] = io.read("*number")
  55.     redrawMenu()
  56.     end
  57.     if keyboard.isKeyDown(0x3E) == true then -- f4
  58.     os.sleep(0.1)
  59.     print("Настройка ноты 4")
  60.     -- Чтение частоты
  61.     io.write("Частота: ")
  62.     note[4] = io.read("*number")
  63.     -- Чтение длительностей
  64.     io.write("Длительность (в секундах): ")
  65.     notesec[4] = io.read("*number")
  66.     redrawMenu()
  67.     end
  68.     if keyboard.isKeyDown(0x3F) == true then -- f5
  69.     os.sleep(0.1)
  70.     print("Настройка ноты 5")
  71.     -- Чтение частоты
  72.     io.write("Частота: ")
  73.     notesec[5] = io.read("*number")
  74.     -- Чтение длительностей
  75.     io.write("Длительность (в секундах): ")
  76.     notesec[5] = io.read("*number")
  77.     redrawMenu()
  78.     end
  79.     if keyboard.isKeyDown(0x40) == true then -- f6
  80.     os.sleep(0.1)
  81.     print("Настройка ноты 6")
  82.     -- Чтение частоты
  83.     io.write("Частота: ")
  84.     note[6] = io.read("*number")
  85.     -- Чтение длительностей
  86.     io.write("Длительность (в секундах): ")
  87.     notesec[6] = io.read("*number")
  88.     redrawMenu()
  89.     end
  90.     if keyboard.isKeyDown(0x41) == true then -- f7
  91.     os.sleep(0.1)
  92.     print("Настройка ноты 7")
  93.     -- Чтение частоты
  94.     io.write("Частота: ")
  95.     note[7] = io.read("*number")
  96.     -- Чтение длительностей
  97.     io.write("Длительность (в секундах): ")
  98.     notesec[7] = io.read("*number")
  99.     redrawMenu()
  100.     end
  101.     if keyboard.isKeyDown(0x42) == true then -- f8
  102.     os.sleep(0.1)
  103.     print("Настройка ноты 8")
  104.     -- Чтение частоты
  105.     io.write("Частота: ")
  106.     note[8] = io.read("*number")
  107.     -- Чтение длительностей
  108.     io.write("Длительность (в секундах): ")
  109.     notesec[8] = io.read("*number")
  110.     redrawMenu()
  111.     end
  112.     if keyboard.isKeyDown(0x43) == true then -- f9
  113.     os.sleep(0.1)
  114.     print("Настройка ноты 9")
  115.     -- Чтение частоты
  116.     io.write("Частота: ")
  117.     note[9] = io.read("*number")
  118.     -- Чтение длительностей
  119.     io.write("Длительность (в секундах): ")
  120.     notesec[9] = io.read("*number")
  121.     redrawMenu()
  122.     end
  123.     if keyboard.isKeyDown(0x44) == true then -- f10
  124.     os.sleep(0.1)
  125.     print("Настройка ноты 10")
  126.     -- Чтение частоты
  127.     io.write("Частота: ")
  128.     note[10] = io.read("*number")
  129.     -- Чтение длительностей
  130.     io.write("Длительность (в секундах): ")
  131.     notesec[10] = io.read("*number")
  132.     redrawMenu()
  133.     end
  134.     os.sleep(0.1)
  135.     if keyboard.isKeyDown(0x02) == true then -- 1
  136.     os.sleep(0.1)
  137.     computer.beep(note[1], notesec[1])
  138.     end
  139.     if keyboard.isKeyDown(0x03) == true then -- 2
  140.     os.sleep(0.1)
  141.     computer.beep(note[2], notesec[2])
  142.     end
  143.     if keyboard.isKeyDown(0x04) == true then -- 3
  144.     os.sleep(0.1)
  145.     computer.beep(note[3], notesec[3])
  146.     end
  147.     if keyboard.isKeyDown(0x05) == true then -- 4
  148.     os.sleep(0.1)
  149.     computer.beep(note[4], notesec[4])
  150.     end
  151.     if keyboard.isKeyDown(0x06) == true then -- 5
  152.     os.sleep(0.1)
  153.     computer.beep(note[5], notesec[5])
  154.     end
  155.     if keyboard.isKeyDown(0x07) == true then -- 6
  156.     os.sleep(0.1)
  157.     computer.beep(note[6], notesec[6])
  158.     end
  159.     if keyboard.isKeyDown(0x08) == true then -- 7
  160.     os.sleep(0.1)
  161.     computer.beep(note[7], notesec[7])
  162.     end
  163.     if keyboard.isKeyDown(0x09) == true then -- 8
  164.     os.sleep(0.1)
  165.     computer.beep(note[8], notesec[8])
  166.     end
  167.     if keyboard.isKeyDown(0x0A) == true then -- 9
  168.     os.sleep(0.1)
  169.     computer.beep(note[9], notesec[9])
  170.     end
  171.     if keyboard.isKeyDown(0x0B) == true then -- 10
  172.     os.sleep(0.1)
  173.     computer.beep(note[10], notesec[10])
  174.     end
  175.     if keyboard.isKeyDown(0x2D) == true then -- Выход
  176.     os.sleep(0.1)
  177.     os.exit()
  178.     end
  179.     if keyboard.isShiftDown() == true then -- Рандом
  180.     computer.beep(1500, 0.5)
  181.     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)}
  182.     notesec = {0.1, 0.2, 0.3, 0.1, 0, 0.4, 0.1, 0.2, 0.1, 0.3}
  183.     end
  184.     if keyboard.isControlDown() == true then -- Играть
  185.     io.write("Сколько раз повторять: ")
  186.     i2 = io.read("*number")
  187.     os.sleep(0.1)
  188.            for i = 1, i2 do
  189.             os.sleep(0)
  190.             computer.beep(note[1],notesec[1])
  191.             currentNote = currentNote + 1
  192.             redrawMenu()
  193.             computer.beep(note[2],notesec[2])
  194.             currentNote = currentNote + 1
  195.             redrawMenu()
  196.             computer.beep(note[3],notesec[3])
  197.             currentNote = currentNote + 1
  198.             redrawMenu()
  199.             computer.beep(note[4],notesec[4])
  200.             currentNote = currentNote + 1
  201.             redrawMenu()
  202.             computer.beep(note[5],notesec[5])
  203.             currentNote = currentNote + 1
  204.             redrawMenu()
  205.             computer.beep(note[6],notesec[6])
  206.             currentNote = currentNote + 1
  207.             redrawMenu()
  208.             computer.beep(note[7],notesec[7])
  209.             currentNote = currentNote + 1
  210.             redrawMenu()
  211.             computer.beep(note[8],notesec[8])
  212.             currentNote = currentNote + 1
  213.             redrawMenu()
  214.             computer.beep(note[9],notesec[9])
  215.             currentNote = currentNote + 1
  216.             redrawMenu()
  217.             computer.beep(note[10],notesec[10])
  218.             currentNote = currentNote + 1
  219.             currentNote = 0
  220.             redrawMenu()
  221. end
  222. end
  223. end
Advertisement
RAW Paste Data Copied
Advertisement