Laine_prikol

opencomputers note sequencer (fixed)

Mar 7th, 2017
99
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
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×