Advertisement
Guest User

Untitled

a guest
May 17th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.32 KB | None | 0 0
  1. #init
  2. function init()
  3.   mem.sounds = { {"Still Alive", "0.2","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","K","C","F","J","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","kC","H","kC","H","AE","H","AE","AF","J","AF","J","CF","J","CF","CFJ","k","C","H","kC","kCH","jB","H","jB","H","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","e","ehCH","ehCH","ehCH","j","ehCE","ehCE","ehCE","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","c","cjCG","CH","G","C","e","ehCH","ehCH","ehCH","j","ehCE","ehCE","ehCE","fkC","fkC","fkC","fkC","fkC","fkC","fkC","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","kC","H","kC","H","AE","H","AE","AF","J","AF","J","CF","J","CF","CFJ","k","C","H","kC","kCH","jB","H","jB","H","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","k","C","J","F","J","F","J","F","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","AF","J","AF","AE","H","AE","kC","K","kC","E","AF","J","AF","kC","H","kC","H","AE","H","AE","AF","J","AF","J","CF","J","CF","CFJ","k","C","H","kC","kCH","jB","H","jB","H","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","j","C","G","C","l","C","G","C","l","E","H","E","l","E","H","E","j","B","H","B","j","B","H","B","k","C","F","J", ""},
  4.  
  5.   {"Happy Pezday", "0.2","a","a","c","a","f","e","a","a","c","a","h","f","a","a","A","j","f","e","c","k","k","j","f","h","f", ""},
  6.   {"Mission Impossible", "0.2","h","","h","","k","A","h","","h","","f","g","h","","h","","k","A","h","","h","","f","g","K","H","C","","","K","H","B","","","K","H","A","","","k","A","","","k","h","H","","","k","h","G","","","k","h","F","","","E","D","","hH","","hH","","kK","A","hH","","hH","","fF","gG","Hh",""},
  7.  
  8.  
  9. {"You Look Good to Me",
  10. "0.2","ehA","E","H","G","J","H","G","H","chl","C","H","G","J","H","G","H","chk","C","H","G","J","H","G","H","bej","B","H","G","J","H","G","H","afi","A","F","E","H","F","E","F","aeh","A","E","D","F","E","D","E","ch","l","C","B","E","C","A","l","ehA","E","aeh","E","aehA",""},
  11.  
  12. {"PSKOVSKIY PRON", "0.2","j","","E","E","h","l","C","","j","A","E","E","h","l","C","","f","j","A","A","h","l","C","j","","E","E","h","l","C","","j","A","E","E","h","l","C","","f","j","A","A","h","l","C",""},
  13.  
  14. {"Boomer", "0.2","E","H","","","","H","E","","","","J","H","J","H","J","H","J","H","J","L","","","","ehlE","H","ehl","ehl","","ehl","ehl","","ehAH","E","ehA","ehA","","ehA","ehA","","aejJ","H","aejJ","aejH","J","aejH","aejJ","H","aejJ","L","aej","aej","","aej","aej","ehlE","H","ehl","ehl","","ehl","ehl","","ehAH","E","ehA","ehA","","ehA","ehA","","aejJ","H","aejJ","aejH","J","aejH","aejJ","H","aejJ","L","aej","aej","","aej","aej",""},
  15.  
  16.  
  17. {"Sex 'n' Drugs", "0.2","bBI","A","B","F","A","B","I","A","I","A","B","F","A","B","I","A","kI","A","B","F","A","B","I","A","I","A","B","F","A","B","I","A","aAH","k","A","D","k","A","H","A","H","k","A","D","k","A","H","A","fH","i","k","F","i","k","h","i","H","i","k","F","i","k","h","i","bBI","A","B","F","A","B","I","A","I","A","B","F","A","B","I","A","kI","A","B","F","A","B","I","A","I","A","B","F","A","B","I","A","aAH","k","A","D","k","A","H","A","H","k","A","D","k","A","H","A","fH","i","k","F","i","k","h","i","H","i","k","F","i","k","h","i",""},
  18.  
  19. {"Hymn SS", "0.2","C","C","l","A","","j","h","j","","C","C","A","l","A","","j","","l","h","j","","","j","A","C","E","","E","","F","C","E","","","C","C","l","A","","j","h","j","","C","C","A","l","A","","j","","l","h","j",""},
  20.  
  21.  
  22.  
  23. {"Autumn Leaves",
  24. "0.2","E","G","H","A","","","aehl","","","aegl","C","E","G","glCL","L","","ehlC","A","C","E","Jeja","","l","B","D","chlH",""}
  25.  
  26. }
  27.   mem.soundNum = 1
  28.   mem.melody = {}
  29. end
  30.  
  31. function show(msg)
  32.   digiline_send("lcd0", "********** "..msg.." **********")
  33. end
  34.  
  35. function start(pin)
  36.  mem.note = 3 --first notes always in arr[3]
  37.  if(pin == "C") then
  38.    mem.soundNum = mem.soundNum + 1
  39.    if(mem.soundNum > #mem.sounds) then mem.soundNum = 1 end
  40.  elseif(pin == "A") then
  41.    mem.soundNum = mem.soundNum - 1
  42.    if(mem.soundNum < 1) then mem.soundNum = #mem.sounds end
  43.  end
  44.  
  45.  mem.melody = mem.sounds[mem.soundNum]
  46.  mem.len = #mem.melody
  47.  mem.rate = tonumber(mem.melody[2])
  48.  if(mem.rate < 0.1) then mem.rate = 0.1 end
  49.  
  50.  show(mem.melody[1])
  51.  interrupt(mem.rate, "timer")
  52. end
  53.  
  54. function playnext()
  55.   abc = {} --[97,98,99]
  56.   def = {} --[100,101,102]
  57.   ghi = {} --[103,104,105]
  58.   jkl = {} --[106,107,108]
  59.   ABC0 = {} --[65,66,67]
  60.   DEF0 = {} --[68,69,70]
  61.   GHI0 = {} --[71,72,73]
  62.   JKL0 = {} --[74,75,76]
  63.  
  64.   len = #mem.melody[mem.note]
  65.   for i = 1, len do
  66.     --ASCII value of character
  67.     byte = string.byte(mem.melody[mem.note], i)
  68.     if(byte < 68) then      
  69.        ABC0[#ABC0+1] = byte
  70.     elseif(byte < 71) then
  71.        DEF0[#DEF0+1] = byte
  72.     elseif(byte < 74) then
  73.        GHI0[#GHI0+1] = byte
  74.     elseif(byte < 77) then
  75.        JKL0[#JKL0+1] = byte
  76.     elseif(byte < 100) then
  77.        abc[#abc+1] = byte
  78.     elseif(byte < 103) then
  79.        def[#def+1] = byte
  80.     elseif(byte < 106) then
  81.        ghi[#ghi+1] = byte
  82.     else
  83.        jkl[#jkl+1] = byte
  84.     end
  85.   end
  86.    
  87.     if(#abc > 0) then   digiline_send("ch_abc", abc) end
  88.     if(#def > 0) then   digiline_send("ch_def", def) end
  89.     if(#ghi > 0) then   digiline_send("ch_ghi", ghi) end
  90.     if(#jkl > 0) then   digiline_send("ch_jkl", jkl) end
  91.  
  92.     if(#ABC0 > 0) then   digiline_send("ch_ABC", ABC0) end
  93.     if(#DEF0 > 0) then   digiline_send("ch_DEF", DEF0) end
  94.     if(#GHI0 > 0) then   digiline_send("ch_GHI", GHI0) end
  95.     if(#JKL0 > 0) then   digiline_send("ch_JKL", JKL0) end
  96. end
  97.  
  98. if(event.type == "program") then
  99.   init()
  100. elseif(event.type == "on") then
  101.   start(event.pin.name)
  102. elseif(event.iid == "timer") then    
  103.   if(mem.note <= mem.len) then
  104.     playnext()  
  105.     interrupt(mem.rate, "timer")
  106.   end  
  107.   mem.note = mem.note + 1
  108. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement