Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --MTF SOng Creator
- --this script allows user side song creation using my MTF Format(Music Text Format)
- --this Program is for minecraft, CC Tweaked
- local FileName = nil
- local Note = 1
- local Instruments = {"block.note_block.bass", "block.note_block.snare", "block.note_block.basedrum", "block.note_block.bell", "block.note_block.flute", "block.note_block.chime", "block.note_block.guitar", "block.note_block.xyloph", "block.note_block.bit", "block.note_block.pling", "block.note_block.harp"}
- local Pitch = {2,4,6,8,10,2,2,2,2,2,2}
- local Step = 1
- local WritenNotes_1 = {..}
- local WritenNotes_2 = {..}
- local Note = 1
- function CreationSet()
- term.clear()
- term.setCursorPos(1,1)
- print("Music Text Format Song Writer------")
- print("Step = "..Step)
- CreationManage()
- end
- function CreationManage()
- if Step == 1 then
- print("Please Enter Song name, then press enter to save")
- local input = read()
- repeat
- local event, key = os.pullEvent("key")
- until key == keys.enter
- FileName = input..".mtf"
- print("Saved as: "..FileName)
- Step = 2
- elseif Step == 2 then
- print("please enter the number for desired note, then click enter to go to the next note. to stop press e")
- local input = read()
- repeat
- local event, key = os.pullEvent("key")
- until key == keys.enter or key == keys.e
- WritenNotes_1[Note] = input
- if key == keys.enter then
- Note = Note + 1
- elseif key == keys.e then
- Note = 1
- Step = 3
- end
- elseif Step == 3 then
- print("Please now type the pitch for each note until you have given all of them a Pitch")
- print("Note "..Note.."'s Instrument = "..Instruments[WritenNotes_1[Note]])
- print("press 1-5 for the pitch, the actual pitch would be what you typed times 2")
- repeat
- local event, key = os.pullEvent("key")
- until key == keys.one or key == keys.two or key == keys.three or key == keys.four or key == keys.five
- if key == keys.one then
- WritenNotes_2[Note] = 1
- elseif key == keys.two then
- WritenNotes_2[Note] = 2
- elseif key == keys.three then
- WritenNotes_2[Note] = 3
- elseif key == keys.four then
- WritenNotes_2[Note] = 4
- elseif key == keys.five then
- WritenNotes_2[Note] = 5
- end
- Note = Note + 1
- if Note > #WritenNotes_1 then
- Step = 4
- else
- end
- elseif Step == 4 then
- print("Song Completed!")
- print("before it is saved, do you wish to hear it?")
- print("Y/N")
- repeat
- local event, key = os.pullEvent("key")
- until key == keys.y or key == keys.n
- Step = 5
- if key == keys.n then
- SaveSong()
- elseif key == keys.y then
- TestSong()
- SaveSong()
- end
- end
- sleep(5)
- if Step < 4 then
- CreationSet()
- end
- end
- function SaveSong()
- local Data = ""
- for Note = 1, #WritenNotes_1 do
- Data = Data..WritenNotes_1[Note]..WritenNotes_2[Note]
- Note = Note + 1
- end
- local file = fs.open(FileName,"w")
- file.write(Data)
- file.close()
- end
- function TestSong()
- local speaker = peripheral.find("speaker")
- Note = 1
- while Note <= #WritenNotes_1 do
- speaker.playNote(Instrument[WritenNotes_1[Note]], Volume, Pitch[WritenNotes_2[Note]])
- Note = Note + 1
- sleep(2)
- end
- print("Song Over")
- print("Stopping program in 10 seconds")
- sleep(10)
- end
- CreationSet()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement