def _new_song(self):
        '''
        Used internally to get a metasong index.
        '''
        # We'll need this later
        s = self.song
        
        if self.shuffle:
            # If shuffle is on, we need to (1) get a random song that 
            # (2) accounts for weighting. This line does both.
            self.song = self.shuffles[random.randrange(len(self.shuffles))]
        else:
            # Nice and easy, just get the next song...
            self.song += 1
            # But wait! need to make sure it exists!
            if self.song >= len(self.loop):
                # It doesn't, so start over at the beginning.
                self.song = 0
        # Set flag if we have the same song as we had before.
        self.dif_song = s != self.song
        # Reset the position within the metasong
        self.pos = 0
Used internally to get a metasong index.