Advertisement
MarcoPolo0306

znepb Sound Player Version 1

Sep 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.83 KB | None | 0 0
  1. -- Make sure to edit the Data Config!
  2. --
  3.  
  4. local dataconfig = {
  5.     supportedversion = "znepb sound format 1",
  6.     lTrack = "",
  7.     rTrack = "",
  8. }
  9.  
  10. local args = {...}
  11.  
  12. local function logStr(str,lType)
  13.     if lType == "warn" then
  14.         term.setTextColor(colors.orange)
  15.         print("[WARN] "..str)
  16.     elseif lType == "info" then
  17.         term.setTextColor(colors.white)
  18.         print("[INFO] "..str)
  19.     end
  20. end
  21.  
  22. local function check()
  23. end
  24.  
  25. logStr("Make sure to change the lTrack and rTrack in the dataconfig in this file before you use it, or you may encounter errors.",'warn')
  26.  
  27. local function loadFile()
  28.     if not string.find(args[1],".zsf") then
  29.         logStr(".zsf extension not found in "..args[1]..", trying to add","warn")
  30.         args[1] = args[1]..".zsf"
  31.     else
  32.         logStr("found good extension","info")
  33.     end
  34.     if not fs.exists(args[1]) then
  35.         logStr("bad argument #1, arg1 should be file but could not find "..args[1],"warn")
  36.         error("bad argument #1 (could not find file; see log for more details)")
  37.     else
  38.         logStr("found valid file","info")
  39.         logStr("attempting to load","info")
  40.         local soundfile = fs.open(args[1],"r")
  41.         local soundT = textutils.unserialize(soundfile.readAll())
  42.         if not soundT.version then
  43.             logStr("invalid version, found version to be "..tostring(soundT.version),"warn")
  44.             error("corrupted sound file")
  45.         elseif soundT.version ~= dataconfig.supportedversion then
  46.             logStr("version may not be supported","warn")
  47.         end
  48.         local leftTrack = peripheral.wrap(dataconfig.lTrack)
  49.         local rightTrack = peripheral.wrap(dataconfig.lTrack)
  50.        
  51.         for i, _ in pairs(soundT.sounds) do
  52.             logStr("playing note "..i,"info")
  53.             leftTrack.playNote(soundT.sounds[i].left.note,0.5,soundT.sounds[i].left.pitch)
  54.             rightTrack.playNote(soundT.sounds[i].right.note,0.5,soundT.sounds[i].right.pitch)
  55.             sleep(soundT.sounds[i].waitTime)
  56.         end
  57.     end
  58. end
  59.  
  60. loadFile()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement