ahhhhhh -- gotcha 
(actually, I didn't even see my code in the midst of yours, -- I'm blind!)
Ok, I dont know how gettemplate handles the array that is created -- but the idea is, if the code inside the if clause is executed, we have a new author and new to create a new title. Otherwise, we simply execute the code to display the current music record along side.
For example (removed templates, since I don't know what they do)
PHP Code:
<?php $last_artist = ''; ?>
<table>
<?php
while ($audio=$DB_site->fetch_array($avroom_audio)){
echo '<tr>';
if ($audio['name'] != $last_artist) {
echo '<td><strong>', echo $audio['name'] . '</strong></td>';
$last_artist = $audio['artist'];
} else {
echo '<td> </td>'; //empty cell
}
$audio['name'] = unhtmlspecialchars($audio['name']);
$audio['title'] = unhtmlspecialchars($audio['title']);
$audio['year'] = unhtmlspecialchars($audio['year']);
$audio['country'] = unhtmlspecialchars($audio['country']);
$audio['avroomid'] = unhtmlspecialchars($audio['avroomid']);
echo '<td>', $audio['name'], '</td>';
// echo $audio[...];
echo '</tr>';
}
?>
</table>
Then, only the author is shown once, and the songs are listed out in separate rows alongside and beneath that author.
Bookmarks