well, first you should decrease the size of the window from 480 height to 414, and then all you have to do is increase @item_max in order to draw more. If you want to specify which items it should draw, then just do some modifications to the:
for i in 0...@item_max
draw_item (i)
end
For instance, one way you can do it is to store all the music you want to display in an array like this:
@music = ["001-Battle01", "002-Battle02", etc...]
@item_max = @music.size
for i in 0...@item_size
draw_item(i)
end
And then in draw_item, change this line:
self.contents.draw_text(4 + 216*(index%3), 32*(index/3), 128, 30, $data_items[index].name)
to this:
self.contents.draw_text(4 + 216*(index%3), 32*(index/3), 128, 30, @music[index])
This would also make the other part of the script much simpler because instead of the case statement you have, you could replace that entire thing with:
Audio.bgm_play("Audio/BGM/" + @music[@command_window.index],100, 100)
You would, of course have to find another way to check for whether the party has that song yet.
If you still want to have the songs as items, then maybe instead of that first line where I said:
@music = ["001-Battle01", "002-Battle02", etc...]
you could change it to
@music = [["001-Battle01", <item_number of that song>], ["002-Battle02",<item_number of that song>], etc...]
and then that line in your update method:
Audio.bgm_play("Audio/BGM/" + @music[@command_window.index],100, 100)
you could change to:
if $game_party.item_number (@music[@command_window.index][1]) > 0
Audio.bgm_play("Audio/BGM/" + @music[@command_window.index][0],100, 100)
end
In any case, if I were making a jukebox, I don't think I would do it with existing items, but that's just me. Try that stuff and if you don't understand, I'll make a demo.