Code:
;options initialization
on *:dialog:mp3.options:init:0: {
  if ( %cplay ) did -c $dname 3 | .timer 1 0 did -u $dname 2
  if ( %repeat ) did -c $dname 6
  elseif ( %rplay ) did -c $dname 4
  else did -c $dname 2
  if ( !%mp3.sm ) did -c $dname 13
  elseif ( %mp3.sm == two ) did -c $dname 12
  else did -c $dname 11
}

;options sclick events
on *:dialog:mp3.options:sclick:*: {
  if ( $did == 2 ) {
    unset %rplay
    unset %repeat
    unset %cplay
    did -c $dname $iif(!%mp3.sm,13,$iif(%mp3.sm == two,12,11))
  }
  if ( $did == 3 ) {
    unset %rplay
    unset %repeat
    set %cplay on
    set %songnum 1
    if ( $dialog(mp3) ) did -c mp3 1 1
    mp3play $read(playlist.txt,1)
    did -c $dname $iif(!%mp3.sm,13,$iif(%mp3.sm == two,12,11))
  }
  if ( $did == 6 ) {
    unset %rplay
    unset %cplay
    set %repeat 1
    did -c $dname $iif(!%mp3.sm,13,$iif(%mp3.sm == two,12,11))
  }
  if ( $did == 4 ) {
    unset %cplay
    unset %repeat
    set %rplay on
    var %song = $read(playlist.txt)
    set %songnum $readn
    if ( $dialog(mp3) ) did -c mp3 1 $readn
    mp3play %song
    did -c $dname $iif(!%mp3.sm,13,$iif(%mp3.sm == two,12,11))
  }
  if ( $did == 5 ) {
    dialog -x $dname
  }
  if ( $did == 11 ) {
    .timerscrolltitle off
    unset %mp3.scroll*
    set %mp3.sm none
    if ( $inmp3 ) did -o mp3 2 1 $did(mp3,1,%songnum)
    did -c $dname $iif(%cplay,3,$iif(%rplay,4,$iif(%repeat,6,2)))
  }
  if ( $did == 12 ) {
    unset %mp3.scroll*
    set %mp3.sm two
    if ( $inmp3 ) .timerscrolltitle 0 1 scrolltitle
    did -c $dname $iif(%cplay,3,$iif(%rplay,4,$iif(%repeat,6,2)))
  }
  if ( $did == 13 ) {
    unset %mp3.scroll*
    unset %mp3.sm
    if ( $inmp3 ) .timerscrolltitle 0 1 scrolltitle
    did -c $dname $iif(%cplay,3,$iif(%rplay,4,$iif(%repeat,6,2)))
  }
}

;about dialog
on *:dialog:mp3:menu:25: { if (!$dialog(mp3.about)) dialog -md mp3.about mp3.about | else dialog -v mp3.about }
dialog mp3.about {
  title "About"
  size -1 -1 220 156
  option pixels %notheme
  text "MP3 Player made by Neptune and Daveoh.", 1, 5 5 210 50
  text "You are free to use this MP3 Player script to help you build your own, but please don't take the script and just call it your own, as it isn't fair for the people who put hard work into making it.", 2, 5 50 210 70
  button "Close", 3, 5 125 210 25
}

;about dialog close
on *:dialog:mp3.about:sclick:3: { dialog -x $dname }

;broadcasting dialog
on *:dialog:mp3:menu:17:if (!$dialog(mp3.bc)) dialog -md mp3.bc mp3.bc | else dialog -v mp3.bc

dialog mp3.bc {
  title "Broadcasting"
  size -1 -1 400 297
  option pixels %notheme
  box "Now Playing Message", 1, 5 5 390 125
  edit "", 2, 10 20 380 80, read autovs multi vsbar
  edit %broadcastformat, 3, 10 105 290 20, autohs
  box "Channels to Broadcast", 10, 5 135 390 70
  text "Enter the channels you would like to broadcast to, separated by a comma. For all channels, type 'all'. To display to active channel only, type 'active'.", 11, 10 150 380 40
  edit %broadcastchannels, 12, 10 180 380 20
  box "Automatic broadcasting status", 20, 5 210 390 40
  radio "Enabled", 21, 20 225 65 17, group
  radio "Disabled", 22, 90 225 65 17
  button "Broadcast Now!", 23, 165 220 210 25
  button "Close", 40, 199 260 195 25
  radio "Message", 4, 20 265 65 15, group
  radio "Describe (/me)", 5, 90 265 100 15
  box "Method", 6, 5 250 190 40
  button "ASCII", 7, 300 105 89 20
}

on *:dialog:mp3.bc:init:0:{
  var %cmd = did -a $dname 2 $crlf $chr(32)
  did -a $dname 2 This is the format your broadcasting will be displayed in. Available dynamic tokens are:
  %cmd &title - The title of the playing song
  %cmd &artist - The artist of the playing song
  %cmd &album - Album of the playing song
  %cmd &genre - Genre of the playing song
  %cmd &year - Year of the playing song
  %cmd &len - The length of the playing song
  %cmd &rem - The remaining length of song
  %cmd &playcount - No. of times the song has been played
  %cmd &pos - The position of the song
  %cmd &bitrate - The song's bitrate
  %cmd &mode - How the song is being played
  %cmd &frequency - Frequency of the song
  %cmd &size - Size of the MP3 file
  %cmd &comment - Returns any comments on the song
  %cmd NOTE: &album and &genre will appear blank if it is not found
  if ( !%broadcasting ) did -c $dname 22
  else did -c $dname 21
  did -c $dname $iif(%bc.msg == describe,5,4)
}

;broadcasting sclick events
on *:dialog:mp3.bc:sclick:*:{
  if ($did == 7) { dialog -md ascii ascii }
  if ($did == 21) { set %broadcasting 1 }
  elseif ($did == 22) { unset %broadcasting }
  elseif ($did == 23) { mp3broadcast }
  elseif ($did == 40) { dialog -x $dname }
  elseif ( $did == 4 ) { set %bc.msg msg }
  elseif ( $did == 5 ) { set %bc.msg describe }
}

on *:dialog:mp3.bc:edit:*:{
  if ($did == 3) set %broadcastformat $did(mp3.bc,3).text
  if ($did == 12) set %broadcastchannels $remove($did($v1).text,$chr(32))
}

;FAQ dialog
on *:dialog:mp3:menu:31: { if (!$dialog(mp3.faq)) dialog -md mp3.faq mp3.faq | else dialog -v mp3.faq }
dialog mp3.faq {
  title "Topics"
  size -1 -1 318 85
  option pixels %notheme
  combo 1, 11 21 299 26, drop
  box "Select a Topic", 2, 3 6 312 48
  button "Close", 3, 3 57 312 25
}

;close FAQ dialog
on *:dialog:mp3.faq:sclick:3: { dialog -x $dname }

;FAQ dialog initialization
on *:dialog:mp3.faq:init:0: {
  did -a $dname 1 Modes of Play
  did -a $dname 1 Why don't some of my songs appear in the list?
  did -a $dname 1 List of Features
  did -a $dname 1 Broadcasting
  did -a $dname 1 Scrolling Methods
  did -a $dname 1 Function Keys
  did -a $dname 1 Export to Text
  did -a $dname 1 Mini Mode
  did -a $dname 1 Styles
  did -a $dname 1 ID3 Tag Editor
  did -c mp3.faq 1 1
}

;combo box selection
on *:dialog:mp3.faq:sclick:1: {
  var %d = faq $+ $did(1).sel
  if ( !$dialog(%d) ) dialog -md %d %d | else dialog -v %d
}

;faq1 dialog
dialog faq1 {
  title "Modes of Play"
  size -1 -1 260 315
  option pixels %notheme
  text "In this mode, the MP3 Player will only play what you have selected. At the end of each song, it will stop until you manually play another song.", 1, 15 20 230 50, center
  box "Normal", 2, 8 5 245 70
  text "In this mode, the MP3 Player will play what is next in the list after the current song is finished.", 3, 15 90 230 40, center
  box "Continuous", 4, 10 75 245 60
  text "In this mode, the MP3 Player will select a random song each time it plays a new one. When Random is set, it will automatically set continuous play as well.", 5, 15 150 230 60, center
  box "Random", 6, 10 135 245 85
  button "Close", 7, 10 285 240 25
  text "In this mode, the MP3 Player will play the same song over and over until interfered with.", 8, 20 235 225 40, center
  box "Repeat", 9, 10 220 245 60
}

;close dialog faq1
on *:dialog:faq1:sclick:7: { dialog -x $dname }

;faq2 dialog
dialog faq2 {
  title "Why don't some of my songs show in the list?"
  size -1 -1 328 175
  option pixels %notheme
  text "This is probably because the files are .mp4 or .m4a. This means they are MP4's and not MP3's, and mIRC will not recognize them.", 1, 10 15 300 40
  box "Problem", 2, 5 1 315 61
  text "Luckily, there is an online converter to turn MP4's into MP3's. Click the link below to go there.", 3, 10 80 299 30
  link "www.media-convert.com", 4, 100 115 124 17
  button "Close", 5, 10 145 310 25
  box "Solution", 6, 5 67 315 71
}

;close faq2 dialog
on *:dialog:faq2:sclick:5: { dialog -x $dname }

;faq3 dialog
dialog faq3 {
  title "List of Features"
  size -1 -1 310 220
  option pixels %notheme
  text "On the main MP3 Player, you'll see an array of buttons with symbols on. Here's a list of what they all do:", 1, 5 5 235 40
  list 2, 15 80 110 100, vsbar
  list 3, 135 80 160 100, vsbar hsbar
  button "Close", 4, 45 190 210 25
  text "Symbol", 5, 15 62 42 17
  text "Effect", 6, 135 62 100 17
  box "Key", 7, 5 46 300 140
}

;faq3 initialization
on *:dialog:faq3:init:0: {
  did -a $dname 2 List
  did -a $dname 3 Displays all MP3's available for play. Can be double clicked to play a song.
  did -a $dname 2 Now Playing Box
  did -a $dname 3 Displays what is currently playing.
  did -a $dname 2 Position Bar
  did -a $dname 3 Shows how far through the song is. Can be dragged to change the position of the song.
  did -a $dname 2 <<
  did -a $dname 3 Plays the track previous in the list. If Random Play is on, it will play a random song.
  did -a $dname 2 []
  did -a $dname 3 Stops what is currently playing.
  did -a $dname 2 >>
  did -a $dname 3 Plays the track next in the list. If Random Play is on, it will play a random song.
  did -a $dname 2 ||
  did -a $dname 3 Pauses the current track. When it is paused, press it again to resume.
  did -a $dname 2 |>
  did -a $dname 3 Plays what is selected in the list.
  did -a $dname 2 Volume Bar
  did -a $dname 3 Shows the volume. Can be altered by dragging it.
  did -a $dname 2 Directory
  did -a $dname 3 Adds all the playable files from a directory selected into the list.
  did -a $dname 2 Remove All
  did -a $dname 3 Removes every file from the list.
  did -a $dname 2 Add File
  did -a $dname 3 Adds the selected file to the list.
  did -a $dname 2 Remove File
  did -a $dname 3 Removes the selected file from the list.
  did -a $dname 2 Total MP3's Box
  did -a $dname 3 Displays how many MP3's are in the list.
  did -a $dname 2 Play Count Box
  did -a $dname 3 Displays how many times you have played the song.
  did -a $dname 2 Center
  did -a $dname 3 Makes the MP3 Player reposition itself in the middle of your screen.
  did -a $dname 2 Hide
  did -a $dname 3 Closes the MP3 Player. Please note that it will still play songs whilst closed.
  did -a $dname 2 Broadcast Now
  did -a $dname 3 Broadcasts what is in your broadcasting options.
  did -a $dname 2 MP3 Information
  did -a $dname 3 Displays info about the playing MP3.
  did -z $dname 3
}

;faq3 sclick events
on *:dialog:faq3:sclick:*: {
  if ( $did == 4 ) dialog -x $dname
  ;make lists allign when highlighted
  if ( $did == 2 ) || ($did == 3) { did -c faq3 2,3 $did($dname,$did).sel }
}

;faq4 dialog
dialog faq4 {
  title "Broadcasting"
  size -1 -1 340 470
  option pixels %notheme
  text "Broadcasting is a very important part of an MP3 Player, as it allows you to show other people what you're playing. The Broadcasting options can be found under File -> Broadcasting.", 1, 10 20 320 40
  text "In the Broadcasting Options, you'll find an area of where to set your play message and a place to alter what channels it shows in.", 2, 10 65 320 30
  box "About", 3, 5 5 330 95
  text "The Now Playing Message is what is going to be displayed to the channels. You can use dynamic tokens to say what you are listening to, like &&title, &&artist, and &&len. The dynamic tokens are listed in the Broadcasting Options. Remember, you can use colours (CTRL+K), so make it pretty!", 4, 10 116 320 70
  box "Now Playing Message", 5, 5 100 330 90
  text "The channels box is, clearly, where your Now Playing Message is going to be sent. To set multiple channels, separate them with a comma.", 6, 10 210 320 40
  text "Example: #horses,#cows,#sheep,#pigz", 7, 10 250 320 17
  text "If you type 'all' into the box, it will display your Now Playing Message into every channel you are on (amsg).", 8, 10 265 320 30
  box "Channels", 9, 5 195 330 105
  button "Close", 10, 5 440 330 25
  text "A quick click on the ASCII button will bring up a list of characters that you can use in your now playing message. Simply select a character and then press 'copy to clipboard' to copy it.", 11, 10 315 320 40
  box "ASCII", 12, 5 300 330 60
  text "Select which box according to how you want to display your Now Playing message. If you tick Message, it will use message the channel in normal format. If you tick Describe, it will use the /me format of messaging.", 13, 10 375 320 55
  box "Method", 14, 5 360 330 75
}

;faq4 dialog close
on *:dialog:faq4:sclick:10: { dialog -x $dname }

;faq5 dialog
dialog faq5 {
  title "Scrolling Methods"
  size -1 -1 300 184
  option pixels %notheme
  text "On this mode, the Now Playing box does not scroll.", 1, 10 20 280 20
  box "None", 2, 5 5 290 40
  text "In this mode, the song will marquee back and forth both ways.", 3, 10 60 280 30
  box "Two-Way", 4, 5 45 290 50
  text "In this mode, the song will marquee across the box from left to right continuously.", 5, 10 115 280 30
  box "Forwards", 6, 4 100 290 50
  button "Close", 7, 5 155 290 25
}

;faq5 close
on *:dialog:faq5:sclick:7: { dialog -x $dname }

;faq6 dialog
dialog faq6 {
  title "Function Keys"
  size -1 -1 295 383
  option pixels notheme
  text "Function Keys (F Keys), such as F1, F2 etc, can be useful if you don't want to continually open the MP3 Player. ", 1, 10 20 275 40
  box "Introduction", 2, 5 5 285 60
  text "These are the default F Key settings:", 3, 10 80 275 15
  box "Default Settings", 7, 5 65 285 85
  text "If you want to change which F Keys do what, open the script up in your editor and look at lines 2-4. Here you'll find the aliases that can be easily changed. ", 8, 10 170 275 40
  text "So if I want the MP3 Player to open with F5, I would simply change the 'alias F10' part on Line 11 to 'alias f5'.", 12, 10 270 275 30
  box "Changing the Function Keys", 13, 5 155 285 155
  button "Close", 14, 5 360 284 20
  text "F10 - Open MP3 Player", 4, 10 97 160 17
  text "F11 - Pause/Resume song", 5, 10 112 160 17
  text "F12 - Broadcast", 6, 10 128 160 17
  list 9, 15 215 265 69
  text "You can turn the Function Keys on or off using the tool menu.", 10, 10 325 275 35
  box "Enable/Disable Function Keys", 11, 5 310 285 45
}

;faq initialization
on *:dialog:faq6:init:0: {
  did -a $dname 9 Line 11 - Open MP3 Player
  did -a $dname 9 Line 12 - Pause/Resume song
  did -a $dname 9 Line 13 - Broadcast
}

;faq6 close
on *:dialog:faq6:sclick:14: { dialog -x $dname }

;faq7 dialog
dialog faq7 {
  title "Export to Text"
  size -1 -1 330 155
  option pixels %notheme
  box "Exporting", 1, 10 5 316 75
  text "Exporting to Text simply means writing what you have in your MP3 Player list into a .txt document. This allows you to C+P things that you want to. Please note that it might freeze your mIRC for a couple of seconds.", 2, 15 20 300 55
  text "This will simply view the .txt file you have written to.", 3, 15 100 305 15
  box "View MP3 List", 4, 10 85 315 35
  button "Close", 5, 10 125 315 25
}

;close faq7
on *:dialog:faq7:sclick:5: { dialog -x $dname }

;faq8 dialog
dialog faq8 {
  title "Mini Mode"
  size -1 -1 365 145
  option pixels %notheme
  text "Mini Mode is a neat little function that allows you to make the MP3 Player more smaller and compact. Note that there isn't an MP3 List there, so you won't be able to pick a song you want to play. This is why it should only be used with Continuous and Random Play. To go back to viewing the Normal Player (/mp3/F keys open what mode was used last), simply go to View -> Normal Mode.", 1, 10 20 345 85
  button "Close", 2, 10 115 345 25
  box "Mini Mode", 3, 5 5 355 105
}

;close faq8
on *:dialog:faq8:sclick:2: { dialog -x $dname }

;faq9 dialog
dialog faq9 {
  title "Styles"
  size -1 -1 320 210
  option pixels %notheme
  text "The Styles feature allows you to change between two modes of theme. It just adds a nicer touch so you can customize your MP3 Player to your liking.", 1, 10 20 300 45
  box "What is it?", 2, 5 5 310 65
  text "Themed mode sets the MP3 Player to work with your current computer theme.", 3, 10 90 300 30
  box "Themed", 4, 5 75 310 50
  text "Retro mode makes the MP3 Player use mIRC's own internal style.", 5, 10 140 300 30
  box "Retro", 6, 5 125 310 50
  button "Close", 7, 5 180 310 25
}

;faq9 close
on *:dialog:faq9:sclick:7: { dialog -x $dname }

;faq10 dialog
dialog faq10 {
  title "ID3 Tag Editor"
  size -1 -1 242 170
  option pixels %notheme
  text "To use the ID3 Tag Editor, simply click the Browse button and select an .mp3 file to edit. Once selected, use the dropdown menu to select which ID3 Tag you wish to edit. When done, click the Update button.", 1, 10 15 225 70
  text "When editing the Genre tag, use the other dropdown menu to select which Genre you want to change it to.", 2, 10 90 225 45
  box "Using the ID3 Tag Editor", 3, 5 0 235 140
  button "Close", 4, 5 142 235 25, flat
}

;close faq10 dialog
on *:dialog:faq10:sclick:4: { dialog -x $dname }

;Export
on *:dialog:mp3:menu:36: {
  write -c mp3list.txt
  var %m = $lines(playlist.txt)
  while ( %m ) {
    var %l = $read(playlist.txt,%m)
    write mp3list.txt $iif($sound(%l).title,$v1,$regsubex($gettok($nopath(%l),-1,45),/(.mp3)$/,)) - $&
      $iif($sound(%l).artist,$v1,$gettok($nopath(%l),-2,45)) - $&
      $remove($duration($calc($sound(%l).length /1000),3),00:)
    dec %m
  }
  echo -a 0,0/11,0/0,11/12,11/11,12/2,12/12,2/1,2/2,1/1,1/0,1 MP3 list updated!
}

;Open MP3List.txt
on *:dialog:mp3:menu:35: { run mp3list.txt }

;change to mini mp3 player
on *:dialog:mp3:menu:39: {
  .timerpos.update -p
  .timerscrolltitle off
  dialog -x $dname
  dialog -md mini mini
}

;mini dialog
dialog mini {
  title "MP3 Player - Mini Mode"
  size -1 -1 359 45
  option pixels %notheme
  edit "", 3, 0 0 360 20, read
  scroll "Volume", 2, 230 25 120 16, horizontal top range 0 66535
  button "[]", 7, 55 20 55 25
  button "||", 8, 110 20 55 25
  button ">>", 9, 165 20 55 25
  button "<<", 15, 0 20 55 25
  menu "File", 5
  item "Options", 13, 5
  item "Broadcasting", 14, 5
  item "break", 12, 5
  item "Exit", 11, 5
  menu "View", 1
  item "Normal Mode", 10, 1
}

;mini initialization
on *:dialog:mini:init:0: {
  did -c $dname 2 $vol(master)
  did -ra mini 3 $nopath($read(playlist.txt,%songnum))
}

;stop button
on *:dialog:mini:sclick:7: { mp3stop }

;pause button
on *:dialog:mini:sclick:8: {
  if ( $inmp3 ) { if ($inmp3.pause) splay resume
    else splay pause
  }
}

;next button
on *:dialog:mini:sclick:9: {
  if ( %rplay ) set %songnum $rand(1,$lines(playlist.txt)) | mp3play $read(playlist.txt,%songnum)
  else inc %songnum | mp3play $read(playlist.txt,%songnum)
}

;previous button
on *:dialog:mini:sclick:15: {
  if ( %rplay ) set %songnum $rand(1,$lines(playlist.txt)) | mp3play $read(playlist.txt,%songnum)
  else dec %songnum | mp3play $read(playlist.txt,%songnum)
}

;exit
on *:dialog:mini:menu:11: {
  set %dialog mini
  dialog -x $dname
}

;on close
on *:dialog:mini:close:0: {
  set %dialog mini
}

;volume scrollbar
on *:dialog:mini:scroll:2: { vol -v $did($did).sel }

;back to normal MP3 Player
on *:dialog:mini:menu:10: {
  dialog -x $dname
  dialog -md mp3 mp3
}

;open options dialog
on *:dialog:mini:menu:13: { dialog -md mp3.options mp3.options }

;open broadcasting dialog
on *:dialog:mini:menu:14: { dialog -md mp3.bc mp3.bc }

;ASCII dialog
dialog ASCII {
  title "ASCII"
  size -1 -1 115 140
  option pixels %notheme
  list 1, 1 1 115 100, vsbar size
  button "Copy to Clipboard", 2, 1 100 115 20, flat
  button "Close", 3, 1 120 115 20, flat
}

;ascii alias
alias -l chars {
  did -a $dname 1 -----------------
  did -a $dname 1 NOT ALL ASCII 
  did -a $dname 1 CHARACTERS
  did -a $dname 1 WORK IN mIRC,
  did -a $dname 1 SO EXPERIMENT!
  did -a $dname 1 -----------------
  var %x = 1, %y = 255
  while (%x <= %y) {
    did -a $dname 1 $chr(%x)
    inc %x
  }
}

;ascii initialization (adding characters)
on *:dialog:ascii:init:0: {
  chars
}

;close ascii dialog
on *:dialog:ascii:sclick:3: { dialog -x $dname }

;clipboard from ascii dialog
on *:dialog:ascii:sclick:2: { clipboard $did(ascii,1).seltext }

/*
ID3 Tag Editor
Author: PR|MuS
Email: Shredplayer@email.com
Script Environment: Remotes
Comments: a mini ID3 editor for editing ID3 Tags
*/

;id3 dialog
dialog ID3 {
  title "ID3 Tag Editor"
  size -1 -1 295 93
  option pixels
  edit "", 1, 3 2 200 20, read autohs
  button "Browse", 2, 208 2 85 20
  edit "", 3, 3 24 285 22, autohs
  combo 4, 123 47 110 120, size drop
  button "Update", 5, 3 70 150 20
  button "", 7, 0 0 0 0, hide ok
  combo 8, 3 47 120 180, size drop
}

;dialog events
on *:dialog:ID3:*:*:{
  if $devent == init {
    did -a $dname 1 No file selected.
    did -f $dname 2
    genre
    did -b $dname 8,5
    didtok -a $dname 4 32 Title Artist Album Year Comment Genre
  }
  if $devent == sclick {
    if $did == 2 {
      did -ra $dname 1 $file="Choose an .mp3" *.mp3
      if .mp3 !isin $did(1) { did -ra $dname 1 | did -b $dname 5 }
      else { did -e $dname 5 }
    }
    if $did == 4 {
      did -f $dname 3
      dialog -t $dname $+(ID3 Tag Editor:,$chr(32),$did(4).seltext)
      did -ra $dname 3 $PR0P($did(1),$did(4).sel)
      if $did(4).sel == 6 { did -c $dname 8 $didwm(8,$did(3)) }
    }
    if $did == 5 && $did(4).sel {
      var %file = $shortfn($did(ID3,1))
      $EDIT(%file,$did(4).sel)
    }
    if $did(4).sel == 6 { did -e $dname 8 | did -m $dname 3 }
    else { did -b $dname 8 | did -n $dname 3 }
    if $did == 8 && $did(4).sel == 6 { did -ra $dname 3 $did(8).seltext  }
  }
}

;prop alias
alias -l PR0P {
  if $2 == 1 return $mp3($1).title
  elseif $2 == 2 return $mp3($1).artist
  elseif $2 == 3 return $mp3($1).album
  elseif $2 == 4 return $mp3($1).year
  elseif $2 == 5 return $mp3($1).comment
  elseif $2 == 6 return $mp3($1).genre
}

;edit alias
alias -l EDIT {
  bread $1 $B_CALC($1,128) 3 &tag
  if ($bvar(&tag,1-3).text != TAG) {
    bwrite $1 $B_CALC($1,128) 3 TAG
    bset &fill 125 0
    bwrite $1 $B_CALC($1,125) 124 &fill
    bunset &fill
  }
  if ($mp3($1).version == MPEG 1.0 Layer 3) {
    if ($did(ID3,3)) {
      bset &val $N_BYTE($2) $iif($2 == 6,$calc($did(ID3,8).sel - 1),$did(ID3,3))
      bwrite $1 $S_BYTE($1,$2) $N_BYTE($2) &val
      $iif($2 < 6,.bwrite $1 $S_BYTE($1,$2) $N_BYTE($2) $did(ID3,3))
    }
    else {
      bset &val 30 $asc($chr(32))
      bwrite $1 $S_BYTE($1,$2) $N_BYTE($2) &val
    }
    bunset &val
    dialog -t $dname $+(ID3 Tag Editor:,$chr(32),Updated!)
  }
}

;B_CALC alias
alias -l B_CALC {
  return $calc($file($1).size - $2)
}

;N_BYTE alias
alias -l N_BYTE {
  return $gettok(30 30 30 4 30 1,$1,32)
}

;S_BYTE alias
alias -l S_BYTE {
  return $calc($file($1).size - $gettok(125 95 65 35 31 1,$2,32))
}

;genre alias
alias -l genre {
  didtok ID3 8 44 Blues,Classic Rock,Country,Dance,Disco,Funk,Grunge,Hip-Hop,Jazz,Metal,New Age,Oldies,Other,Pop,R&B,Rap,Reggae,Rock,Techno,Industrial,Alternative,Ska,Death Metal,Pranks,SoundTrack,Euro-Techno,Ambient,Trip-Hop,Vocal,Jazz+Funk,Fusion,Trance,Classical,Instrumental,Acid,House,Game,Sound Clip,Gospel,Noise,Alternative Rock $&
    ,Bass,Soul,Punk,Space,Meditative,Instrumental Pop,Instrumental Rock,Ethnic,Gothic,Darkwave,Techno-Industrial,Electronic,Pop-Folk,Euro Dance,Dream,Southern Rock,Comedy,Cult,Gangsta Rap,Top 40,Christian Rap,Pop/Funk,Jungle,Native American,Cabaret,New Wave,Psychedelic,Rave,Showtunes,Trailer,Lo-Fi,Tribal,Acid Punk,Acid Jazz,Polka,Retro,Musical,Rock n' Roll
  didtok ID3 8 44 Hard Rock,Folk,Folk-Rock,National Folk,Swing,Fast Fusion,Bebop,Latin,Revival,Celtic,Bluegrass,Avantgarde,Gothic Rock,Progressive Rock,Psychedelic Rock,Symphonic Rock,Slow Rock,Big Band,Chorus,Easy Listening,Acoustic,Humour,Speech,Chanson,Opera,Chamber Music,Sonata,Symphony,Booty Bass,Primus,Porn Groove,Satire,Slow Jam,Club,Tango $&
    ,Samba,Folklore,Ballad,Power Ballad,Rhythmic Soul,Freestyle,Duet,Punk Rock,Drum Solo,Acapella,Euro-House,Dance Hall, 
}


sry i posted it in 2 times cuz its big