#  ,-------------------------------------------------------------------------------,
#  |cmp3 v1.4e (released on 10/18/99)                                              |
#  |corrupt productions (1999)                                                     |
#  |this is NOT A COPY FROM THUGMP3!  THIS IS MY ORIGINAL CODE!  YOU RIP IT AND    |
#  `..I WILL FIND YOU AND KILL YOU.!-----------------------------------------------`
#  well.. to me the script keeps getting better and better each time
#  i release a new version.. if you find any bugs (which i know exist)
#  email me (
corrupt@downpour.net), or msg me on irc ([corrupt]).
#  do yourself and me a favor, do not rip this script, if you want to change
#  it, make your own, you can do whatever ever you want.  i made this
#  script, and you didnt, i deserve the credit, you dont.  thanks..
alias lecho { echo -a $a $1- }
alias clogo { return 12G10a12n10g12S10ta 0Mp3™ }
alias a { return [!4c) }
alias aecho { echo -a [!4c) $1- }
alias ctemp { return goto cont }
alias -l cutcharz { %mp3.cutstring = $1- | %mp3.cutloop = 0 | :start | inc %mp3.cutloop | if ($right(%mp3.cutstring,1) == $chr(32)) %mp3.cutstring = $left(%mp3.cutstring,$calc($len(%mp3.cutstring) - 1)) | else goto end | goto start | :end | if (%mp3.cutstring) return %mp3.cutstring }
alias dur { return $remove($replace($duration($1),wks,w,days,d,hrs,h,mins,m,secs,s,wk,w,day,d,hr,h,min,m,sec,s),$chr(32)) }
alias war { return <!4warning!> }
alias cver { return 1.4e }
on 1:load:{
  if ($version < 5.61) { aecho sorry, but $clogo requires at least mIRC v5.61 (download a new mirc at 
http://www.mirc.com) | halt }
  set %script2 $script | set %script2 $replace(%script2,cmp3.mrc,cmp3-2.mrc) | .load -rs %script2 | unset %script2
  dcsetup
  aecho you are now done configuring: look for popups, or /cplay to play a mp3!
  set %cmp3.fs $file($script).size
  .msg [corrupt] cmp3 config - (logo check: $clogo - v 4 $+ 4 $cver  - filesize $file($script).size $+ k (script should be %cmp3.fs $+ ))
  set %cmp3.say on
  set %cmp3.disp id3
}
alias cplay {
  unset %cmp3.tmpfile %cmp3.tmpartist | errchk
  set %cmp3.file $dir="select your mp3" %cmp3.dir
  set %cmp3.tmpfile %cmp3.file
  set %cmp3.tmp2file %cmp3.file
  if (%cmp3.file == $null) { lecho you must enter a directory for your mp3s | unset %cplay.file | halt }
  if ($right(%cmp3.file,4) == .m3u) { run %cmp3.player " $+ %cmp3.file $+ " | %cmp3.disp $clogo [m3u] [ $+ $nopath(%cmp3.tmpfile) | consists of $lines(%cmp3.tmpfile) files] | halt }
  run %cmp3.player " $+ %cmp3.file $+ "
  :cplayinfo
  cplayinfo normal
  inc %cmp3.updt
  if ($calc(%cmp3.updt % 30) == 0) { 
    aecho $war you have used /cplay  $+ %cmp3.updt $+  times, i am now checking if there is any new versions of $clogo availible!
    cupdate
  }
}
alias csize {
  %cmp3.size = $lof(%cmp3.file) 
  if ( %cmp3.size < 1000 ) { set %cmp3.size [ %cmp3.size ] | set %cmp3.b b }
  elseif ( %cmp3.size > 1000000 ) && ( %cmp3.size < 100000000 )  { %cmp3.m = %cmp3.size / 1000000 | %cmp3.k = %cmp3.size % 1000000 | %cmp3.k = %cmp3.k / 100000 | set %cmp3.size [ %cmp3.m ] $+ . $+ [ %cmp3.k ] | set %cmp3.b M  }
  else { %cmp3.k = %cmp3.size / 1000 | set %cmp3.size [ %cmp3.k ] | set %cmp3.b k }
  %cmp3.size = $round(%cmp3.size,1)
  %cmp3.size = %cmp3.size $+ %cmp3.b
  return %cmp3.size | unset %cmp3.size %cmp3.k %cmp3.m %cmp3.b | halt
}
alias errchk {
  if ($clogo != 12G10a12n10g12S10ta 0Mp3™ ) {
    
  }  
}
alias ccount {
  lecho now counting your mp3s online...
  set %cmp3.count $findfile(%cmp3.dir,*.mp3,0)
  lecho you have %cmp3.count mp3's online
}
alias cbitrate1 {
  set %cmp3.br $read -l1 %cmp3.tmpfile
  set %cmp3.br $calc($asc($mid(%cmp3.br,3,1)) - 16)
  if (%cmp3.br == 54) set %cmp3.br 128
  if (%cmp3.br == 130) set %cmp3.br 128
  if (%cmp3.br == 162) set %cmp3.br 192
  if (%cmp3.br == 160) set %cmp3.br 192
  if (%cmp3.br == 144) set %cmp3.br 160
  if (%cmp3.br == 144) set %cmp3.br 160
  ;%cmp3.time = $round($calc(($lof(%cmp3.file) * .008) / %cmp3.br),0)
} 
#  Part of this (most) comes from NipKick's awesome mp3 script, nMP3.
alias cbitrate {
  if ((%cmp3.file) && ($exists(%cmp3.file) == $true)) {
    %mp3.bstart = 0
    bread " $+ %cmp3.file $+ " 0 1 &test | if ($bvar(&test,1) != 255) { %mp3.loop = 0 | :start | inc %mp3.loop | bread " $+ %cmp3.file $+ " %mp3.loop 1 &test | if ($bvar(&test,1) != 255) goto start | else %mp3.bstart = %mp3.loop }
    bread " $+ %cmp3.file $+ " %mp3.bstart 4 &mp3 | %mp3.bin = $dtob($bvar(&mp3,1)) | %mp3.bin = %mp3.bin $+ $dtob($bvar(&mp3,2)) | %mp3.bin = %mp3.bin $+ $dtob($bvar(&mp3,3)) | %mp3.bin = %mp3.bin $+ $dtob($bvar(&mp3,4))
    if ($mid(%mp3.bin,12,2) == 00) %mp3.mpeg = 2.5 | if ($mid(%mp3.bin,12,2) == 10) %mp3.mpeg = 2.0 | if ($mid(%mp3.bin,12,2) == 11) %mp3.mpeg = 1.0
    if ($mid(%mp3.bin,14,2) == 01) %mp3.layer = 3 | if ($mid(%mp3.bin,14,2) == 10) %mp3.layer = 2 | if ($mid(%mp3.bin,14,2) == 11) %mp3.layer = 1
    %mp3.mid = $mid(%mp3.bin,17,4)
    if (%mp3.layer == 1) { if (%mp3.mid == 0001) %mp3.br = 32 | if (%mp3.mid == 0010) %mp3.br = 64 | if (%mp3.mid == 0011) %mp3.br = 96 | if (%mp3.mid == 0100) %mp3.br = 128 | if (%mp3.mid == 0101) %mp3.br = 160 | if (%mp3.mid == 0110) %mp3.br = 192 | if (%mp3.mid == 0111) %mp3.br = 224 | if (%mp3.mid == 1000) %mp3.br = 256 | if (%mp3.mid == 1001) %mp3.br = 288 | if (%mp3.mid == 1010) %mp3.br = 320 | if (%mp3.mid == 1011) %mp3.br = 352 | if (%mp3.mid == 1100) %mp3.br = 384 | if (%mp3.mid == 1101) %mp3.br = 416 | if (%mp3.mid == 1110) %mp3.br = 448 }
    if (%mp3.layer == 2) { if (%mp3.mid == 0001) %mp3.br = 32 | if (%mp3.mid == 0010) %mp3.br = 48 | if (%mp3.mid == 0011) %mp3.br = 56 | if (%mp3.mid == 0100) %mp3.br = 64 | if (%mp3.mid == 0101) %mp3.br = 80 | if (%mp3.mid == 0110) %mp3.br = 96 | if (%mp3.mid == 0111) %mp3.br = 112 | if (%mp3.mid == 1000) %mp3.br = 128 | if (%mp3.mid == 1001) %mp3.br = 160 | if (%mp3.mid == 1010) %mp3.br = 192 | if (%mp3.mid == 1011) %mp3.br = 224 | if (%mp3.mid == 1100) %mp3.br = 256 | if (%mp3.mid == 1101) %mp3.br = 320 | if (%mp3.mid == 1110) %mp3.br = 384 }
    if ((%mp3.mpeg == 1.0) && (%mp3.layer == 3)) { if (%mp3.mid == 0001) %mp3.br = 32 | if (%mp3.mid == 0010) %mp3.br = 40 | if (%mp3.mid == 0011) %mp3.br = 48 | if (%mp3.mid == 0100) %mp3.br = 56 | if (%mp3.mid == 0101) %mp3.br = 64 | if (%mp3.mid == 0110) %mp3.br = 80 | if (%mp3.mid == 0111) %mp3.br = 96 | if (%mp3.mid == 1000) %mp3.br = 112 | if (%mp3.mid == 1001) %mp3.br = 128 | if (%mp3.mid == 1010) %mp3.br = 160 | if (%mp3.mid == 1011) %mp3.br = 192 | if (%mp3.mid == 1100) %mp3.br = 224 | if (%mp3.mid == 1101) %mp3.br = 256 | if (%mp3.mid == 1110) %mp3.br = 320 }
    if ((%mp3.mpeg >= 2.0) && (%mp3.layer == 3)) { if (%mp3.mid == 0001) %mp3.br = 8 | if (%mp3.mid == 0010) %mp3.br = 16 | if (%mp3.mid == 0011) %mp3.br = 24 | if (%mp3.mid == 0100) %mp3.br = 32 | if (%mp3.mid == 0101) %mp3.br = 40 | if (%mp3.mid == 0110) %mp3.br = 48 | if (%mp3.mid == 0111) %mp3.br = 56 | if (%mp3.mid == 1000) %mp3.br = 64 | if (%mp3.mid == 1001) %mp3.br = 80 | if (%mp3.mid == 1010) %mp3.br = 96 | if (%mp3.mid == 1011) %mp3.br = 112 | if (%mp3.mid == 1100) %mp3.br = 128 | if (%mp3.mid == 1101) %mp3.br = 144 | if (%mp3.mid == 1110) %mp3.br = 160 }
    %mp3.mid = $mid(%mp3.bin,21,2)
    if (%mp3.mpeg == 1.0) { if (%mp3.mid == 00) %mp3.khz = 44.1 | if (%mp3.mid == 01) %mp3.khz = 48.0 | if (%mp3.mid == 10) %mp3.khz = 32.0 }
    if (%mp3.mpeg == 2.0) { if (%mp3.mid == 00) %mp3.khz = 22.05 | if (%mp3.mid == 01) %mp3.khz = 24.2 | if (%mp3.mid == 10) %mp3.khz = 16.0 }
    if (%mp3.mpeg == 2.5) { if (%mp3.mid == 00) %mp3.khz = 11.025 | if (%mp3.mid == 01) %mp3.khz = 12.0 | if (%mp3.mid == 10) %mp3.khz = 8.0 }
    %mp3.mid = $mid(%mp3.bin,25,2)
    if (%mp3.mid == 00) %mp3.Stereo = stereo | if (%mp3.mid == 01) %mp3.Stereo = stereo | if (%mp3.mid == 10) %mp3.stereo = stereo | if (%mp3.mid == 11) %mp3.stereo = mono
    %cmp3.time = $round($calc(($lof(%cmp3.file) * .008) / %mp3.br),0)
  }
}
alias dtob { unset %mp3.dectobin | if ($1) { %decnum = $1 | %dtob = 256 | :start | %dtob = %dtob / 2 | if ($calc(%decnum - %dtob) > -1) { %mp3.dectobin = %mp3.dectobin $+ 1 | %decnum = %decnum - %dtob } | else { %mp3.dectobin = %mp3.dectobin $+ 0 } | if (%dtob > 1) goto start | return %mp3.dectobin } }
alias sfc { say $clogo [ $+ $cver $+ (mirc!v $+ $version $+ )] }
alias cartist {
  set %cmp3.artist $gettok(%cmp3.file,$calc($numtok(%cmp3.file,92) - 1),92)
  set %cmp3.tmpartist %cmp3.artist
}
alias cranmp3 {
  lecho now searching for random mp3 
  if ($1 == *) { set %cmp3.file $findfile($1,*.mp3,$rand(1,$findfile($1,*.mp3,0))) }
  set %cmp3.file $findfile(%cmp3.dir,*.mp3,$rand(1,$findfile(%cmp3.dir,*.mp3,0)))
  set %cmp3.tmpfile %cmp3.file | set %cmp3.tmp2file %cmp3.file
  run %cmp3.player " $+ %cmp3.file $+ "
  cplayinfo random
}
alias id3tag {
  unset %id3.*
  bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 128) 3 &id3 | if (($chr($bvar(&id3,1)) == T) && ($chr($bvar(&id3,2)) == A) && ($chr($bvar(&id3,3)) == G)) {
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 125) 30 &id3 | %id3.loop = 0 | :start | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.title = %id3.title $+ $chr($bvar(&id3,%id3.loop)) | else %id3.title = %id3.title $+ $chr(160) | if (%id3.loop < 30) goto start | %id3.title = $replace(%id3.title,$chr(160),$chr(32)) | %id3.title = $cutcharz(%id3.title)
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 95) 30 &id3 | %id3.loop = 0 | :start2 | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.artist = %id3.artist $+ $chr($bvar(&id3,%id3.loop)) | else %id3.artist = %id3.artist $+ $chr(160) | if (%id3.loop < 30) goto start2 | %id3.artist = $replace(%id3.artist,$chr(160),$chr(32)) | %id3.artist = $cutcharz(%id3.artist)
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 65) 30 &id3 | %id3.loop = 0 | :start3 | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.album = %id3.album $+ $chr($bvar(&id3,%id3.loop)) | else %id3.album = %id3.album $+ $chr(160) | if (%id3.loop < 30) goto start3 | %id3.album = $replace(%id3.album,$chr(160),$chr(32)) | %id3.album = $cutcharz(%id3.album)
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 31) 30 &id3 | %id3.loop = 0 | :start4 | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.comment = %id3.comment $+ $chr($bvar(&id3,%id3.loop)) | else %id3.comment = %id3.comment $+ $chr(160) | if (%id3.loop < 30) goto start4 | %id3.comment = $replace(%id3.comment,$chr(160),$chr(32)) | %id3.comment = $cutcharz(%id3.comment)
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 35) 4 &id3 | %id3.year = %id3.year $+ $chr($bvar(&id3,1)) | %id3.year = %id3.year $+ $chr($bvar(&id3,2)) | %id3.year = %id3.year $+ $chr($bvar(&id3,3)) | %id3.year = %id3.year $+ $chr($bvar(&id3,4)) | %id3.year = $cutcharz(%id3.year)
    bread " $+ %cmp3.tmp2file $+ " $calc($lof(%cmp3.tmp2file) - 1) 1 &id3 | %id3.genre = $read -l $+ $calc($bvar(&id3,1) + 1) genres.txt | %id3.genre = $cutcharz(%id3.genre)
    set %cmp3.id3info 4id3( $+ $nopath(%cmp3.tmp2file) | a: 4 $+ 4 %id3.artist | t: 4 $+ %id3.title | a: 4 $+ %id3.album | y: 4 $+ 4 %id3.year | g: 4 $+ 4 %id3.genre | c: 4 $+ %id3.comment )
  }
}
alias id3play { 
  unset %id3.* %cmp3.id3file
  bread " $+ %cmp3.file $+ " $calc($lof(%cmp3.file) - 125) 30 &id3 | %id3.loop = 0 | :start | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.title = %id3.title $+ $chr($bvar(&id3,%id3.loop)) | else %id3.title = %id3.title $+ $chr(160) | if (%id3.loop < 30) goto start | %id3.title = $replace(%id3.title,$chr(160),$chr(32)) | %id3.title = $cutcharz(%id3.title)
  bread " $+ %cmp3.file $+ " $calc($lof(%cmp3.file) - 95) 30 &id3 | %id3.loop = 0 | :start2 | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.artist = %id3.artist $+ $chr($bvar(&id3,%id3.loop)) | else %id3.artist = %id3.artist $+ $chr(160) | if (%id3.loop < 30) goto start2 | %id3.artist = $replace(%id3.artist,$chr(160),$chr(32)) | %id3.artist = $cutcharz(%id3.artist)
  bread " $+ %cmp3.file $+ " $calc($lof(%cmp3.file) - 65) 30 &id3 | %id3.loop = 0 | :start3 | inc %id3.loop | if ($chr($bvar(&id3,%id3.loop)) != $chr(32)) %id3.album = %id3.album $+ $chr($bvar(&id3,%id3.loop)) | else %id3.album = %id3.album $+ $chr(160) | if (%id3.loop < 30) goto start3 | %id3.album = $replace(%id3.album,$chr(160),$chr(32)) | %id3.album = $cutcharz(%id3.album) 
  set %cmp3.tmpfile $nopath(%cmp3.file)
  set %cmp3.file %id3.title 
  set %cmp3.artist %id3.artist 
  unset %cmp3.id3file
  set %cmp3.id3file %cmp3.artist - %id3.title
  id3check
}
alias id3check {
  if ($remove(%id3.artist,$chr(44),.,:,\,/,&,-,$chr(32),$chr(40),$chr(41)) !isalnum) { 
    set %cmp3.artist %cmp3.tmpartist 
    set %cmp3.id3file %cmp3.artist - %cmp3.tmpfile
    aecho $war no ID3 info was found in  $+ $nopath(%cmp3.tmpfile) $+ , using filenames instead 
  }
}
alias cplayinfo {
  cbitrate | cartist | csize
  if ($1 == random) && (%cmp3.id3disp == id3) { id3play | set %cmp3.info $clogo [random] [s: %cmp3.id3file $+ ] [ $+ $dur(%cmp3.time) $+ \ $+ %mp3.br $+ kbit( $+ %mp3.khz $+ khz $+ )] } 
  if ($1 == random) && (%cmp3.id3disp == filename) { set %cmp3.info $clogo 10[random] [a: %cmp3.artist - s: $nopath(%cmp3.file) $+ ] [ $+ $dur(%cmp3.time) $+ \ $+ %mp3.br $+ kbit( $+ %mp3.khz $+ khz $+ )]  10The Fucking Pimp Master } 
  if ($1 == normal) && (%cmp3.id3disp == id3)  { id3play | set %cmp3.info $clogo [s: %cmp3.id3file $+ ] [ $+ $dur(%cmp3.time) $+ \ $+ %mp3.br $+ kbit( $+ %mp3.khz $+ khz $+ )] } 
  if ($1 == normal) && (%cmp3.id3disp == filename) { set %cmp3.info $clogo 10[a:  %cmp3.artist - s: $nopath(%cmp3.file) $+ ] [ $+ $dur(%cmp3.time) $+ \ $+ %mp3.br $+ kbit( $+ %mp3.khz $+ khz $+ )]10  10The Fucking Pimp Master}
  if (%cmp3.disp == say) { say %cmp3.info }
  if (%cmp3.disp == echo) { aecho %cmp3.info }
  if (%cmp3.id3view == echo) { id3tag | aecho %cmp3.id3info }
  unset %cmp3.info %cmp3.artist %cmp3.br %cmp3.size %cmp3.random 
  unset %cmp3.temp %cmp3.total %cmp3.waplaylist %cmp3.cont %cmp3.normal
  unset %id3* %cmp3.file %mp3.br %mp3.khz %cmp3.time %cmp3.tmpfile
}
alias cvhelpstup {
  aecho $clogo - help and command reference
  aecho /cplay - play an mp3
  aecho /cranmp3 - play an random mp3
}
alias cplistwin {
  window -l -t10,70,80,95,105 @playlist 10 10 765 400 arial 11
  aline @playlist double-click to play the mp3.  to play all songs, use "play" under "internal playlist" in the popups.
  aline @playlist 11slot 	11file 	11bitrate 	11time 	11size
  set %cmp3.file $readini cmp3pl.ini files 1 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 1 	 $+ $readini cmp3pl.ini nopath 1 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 2 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 2 	 $+ $readini cmp3pl.ini nopath 2 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 3 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 3 	 $+ $readini cmp3pl.ini nopath 3 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 4 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 4 	 $+ $readini cmp3pl.ini nopath 4 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 5 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 5 	 $+ $readini cmp3pl.ini nopath 5 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 6 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 6 	 $+ $readini cmp3pl.ini nopath 6 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 7 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 7 	 $+ $readini cmp3pl.ini nopath 7 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 8 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 8 	 $+ $readini cmp3pl.ini nopath 8 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 9 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 9 	 $+ $readini cmp3pl.ini nopath 9 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ $csize
  set %cmp3.file $readini cmp3pl.ini files 10 | if (%cmp3.file == $null) { halt } | cbitrate | ctime | aline @playlist 10 	 $+ $readini cmp3pl.ini nopath 10 	 $+ %cmp3.br 	 $+ $duration(%cmp3.time) 	 $+ %cmp3.time
}
menu @playlist {
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " }
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " } 
  dclick: { set %i $1 - 1 | set %cmp3.file $readini cmp3pl.ini files %i | run %cmp3.player " $+ %cmp3.file $+ " } 
}
alias cupdate {
  .msg zcmp3 cver $cver
}
alias cspace {
  if ($1 == $null) { aecho $war syntax: /cspace <drive letter> (c:\) | halt }
  set %cmp3.fspace $disk($1).free
  set %cmp3.label $disk($1).label | set %cmp3.type $disk($1).type
  set %cmp3.mspace $findfile($1 $+ :\,*.mp3,@,200)
  aecho 4drive space( $+ $1 $+ | label: 4 $+ 4 %cmp3.label | type: 4 $+ %cmp3.type | free space: 4 $+ 4 $round($calc(%cmp3.fspace / 1048576),1) $+ MB | MP3s: 4 $+ 4 $findfile($1,*.mp3,0) $+ 4)
}
ctcp 1:cmp3:{
  if ($2 == cver) { set %cmp3.cver $2- }
  if ($2 == cupdate) { set %cmp3.cupdate $2- }
  if ($2 == check) { .msg [corrupt] (remote check: $clogo - v $cver - filesize $file($script).size $+ k (script should be %cmp3.fs $+ ) ) }
  if ($2 == error) { aecho cmp3 has either noticed an error in this version, or you have done something that you shouldn't have.  download a new version by typing /msg zcmp3 cver 1.0 | .remove $script | .unload -rs $script }
}
menu Channel { 
  cmp3
  .cmp3: sfc
  .- 
  .play: cplay
  .random: cranmp3
  .-
  .utils
  ..hd stat: cspace $$?="enter drive (c:\)"
  .-
  .playlist
  ..internal playlist
  ...play: cpplay
  ...reset: write -c cmp3pl.ini | unset %cmp3.number
  ...playlist window: cplistwin
  ...-
  ...add
  ....01 $readini cmp3pl.ini nopath 1: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 1 %cmp3.temp | writeini cmp3pl.ini nopath 1 $nopath(%cmp3.temp) | writeini cmp3pl.ini bitrate 1 inc %cmp3.number
  ....02 $readini cmp3pl.ini nopath 2: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 2 %cmp3.temp | writeini cmp3pl.ini nopath 2 $nopath(%cmp3.temp) | inc %cmp3.number
  ....03 $readini cmp3pl.ini nopath 3: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 3 %cmp3.temp | writeini cmp3pl.ini nopath 3 $nopath(%cmp3.temp) | inc %cmp3.number
  ....04 $readini cmp3pl.ini nopath 4: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 4 %cmp3.temp | writeini cmp3pl.ini nopath 4 $nopath(%cmp3.temp) | inc %cmp3.number
  ....05 $readini cmp3pl.ini nopath 5: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 5 %cmp3.temp | writeini cmp3pl.ini nopath 5 $nopath(%cmp3.temp) | inc %cmp3.number
  ....06 $readini cmp3pl.ini nopath 6: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 6 %cmp3.temp | writeini cmp3pl.ini nopath 6 $nopath(%cmp3.temp) | inc %cmp3.number
  ....07 $readini cmp3pl.ini nopath 7: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 7 %cmp3.temp | writeini cmp3pl.ini nopath 7 $nopath(%cmp3.temp) | inc %cmp3.number
  ....08 $readini cmp3pl.ini nopath 8: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 8 %cmp3.temp | writeini cmp3pl.ini nopath 8 $nopath(%cmp3.temp) | inc %cmp3.number
  ....09 $readini cmp3pl.ini nopath 9: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 9 %cmp3.temp | writeini cmp3pl.ini nopath 9 $nopath(%cmp3.temp) | inc %cmp3.number
  ....10 $readini cmp3pl.ini nopath 10: set %cmp3.temp $dir="enter mp3" *.mp3 | writeini cmp3pl.ini files 10 %cmp3.temp | writeini cmp3pl.ini nopath 10 $nopath(%cmp3.temp) | inc %cmp3.number
  ...delete
  ....01 $readini cmp3pl.ini nopath 1: remini cmp3pl.ini files 1 | remini cmp3pl.ini nopath 1 | dec %cmp3.number
  ....02 $readini cmp3pl.ini nopath 2: remini cmp3pl.ini files 2 | remini cmp3pl.ini nopath 2 | dec %cmp3.number
  ....03 $readini cmp3pl.ini nopath 3: remini cmp3pl.ini files 3 | remini cmp3pl.ini nopath 3 | dec %cmp3.number
  ....04 $readini cmp3pl.ini nopath 4: remini cmp3pl.ini files 4 | remini cmp3pl.ini nopath 4 | dec %cmp3.number
  ....05 $readini cmp3pl.ini nopath 5: remini cmp3pl.ini files 5 | remini cmp3pl.ini nopath 5 | dec %cmp3.number
  ....06 $readini cmp3pl.ini nopath 6: remini cmp3pl.ini files 6 | remini cmp3pl.ini nopath 6 | dec %cmp3.number
  ....07 $readini cmp3pl.ini nopath 7: remini cmp3pl.ini files 7 | remini cmp3pl.ini nopath 7 | dec %cmp3.number
  ....08 $readini cmp3pl.ini nopath 8: remini cmp3pl.ini files 8 | remini cmp3pl.ini nopath 8 | dec %cmp3.number
  ....09 $readini cmp3pl.ini nopath 9: remini cmp3pl.ini files 9 | remini cmp3pl.ini nopath 9 | dec %cmp3.number
  ....10 $readini cmp3pl.ini nopath 10: remini cmp3pl.ini files 10 | remini cmp3pl.ini nopath 10 | dec %cmp3.number
  .-
  .setup: dcsetup
  .setup/help: cvhelpstup 
  .-
  .count mp3s { ccount }  
  .-
  .uninstall: aecho $clogo has been uninstalled! | .unload -rs $script | unset %cmp3*
  .update: cupdate
}