custom promise w/soundjs