Try this:

Code:
alias mp3Sort {
  if (!$isid) { 
    echo -a Usage: $mp3Sort(<directory 1>,<directory 2>) 
    return
  }
  var %dir = $iif(*\ iswm $2,$2,$2\)
  return $findfile($1,*.mp3,0,1,!.echo -q $copyfile($1-,%dir $+ $sound($1-).artist - $sound($1-).title,%dir))
}
alias -l copyfile {
  if (!$isdir($+($3,$mkfn($remove($2,$3))))) { .mkdir $+(",$3,$mkfn($remove($2,$3)),\") }
  if (!$isfile($+($3,$mkfn($remove($2,$3)),\,$mkfn($remove($2,$3)),.mp3))) { .copy " $+ $1" $+(",$3,$mkfn($remove($2,$3)),\,$mkfn($remove($2,$3)),.mp3") }
  return $isfile($+($3,$mkfn($remove($2,$3)),\,$mkfn($remove($2,$3)),.mp3))
}


//echo -a $mp3Sort(directory one,directory two)

The above alias copies the files, it doesn't move them, but it's very very slow (26 seconds to move 9 files here).