Crichton,
I'm no vonsmith, however maybe I can help, I used this piece of code written by HALImprover(
http://www.zabaware.com/forum/topic.asp?TOPIC_ID=1200), it works great I used it in the XTF brain here
'PROCESS: ADD SPACES
'This will add spaces to the beginning and end
'of the user sentence to make sure that
'whole words can be found at the beginning and end of any sentence.
'=vonsmith=
UserSentenceRev = " " & Trim(UserSentenceRev) & " "
UserSentence = " " & Trim(UserSentence) & " "
'If Hal is asked to play some music then he will choose a random song from the artist
'that is specified by the nameBand variable.
If (InStr(UserSentence, " PLAY SOME MUSIC ") > 0 Or InStr(UserSentence, " PLAY ANY MUSIC ") > 0 Or InStr(UserSentence, " PLAY ANY SONG ") > 0) And InStr(UserSentence, " DON'T ") = 0 Then
Set oWMP = CreateObject("WMPlayer.OCX.7")
GetResponse = "I will play a random song."
Set songsList = oWMP.mediaCollection.getAll
numSong = Int(Rnd * songsList.Count) + 1
oWMP.openPlayer (songsList.Item(numSong).sourceURL)
End If
'Check if user asked Hal to play a song by a specific artist and play a random song by
'that artist if the artist is in the user's Media Library.
If Priority = 0 And InStr(UserSentence, " PLAY ") > 0 And (InStr(UserSentence, " SONG ") > 0 Or InStr(UserSentence, " MUSIC ") > 0) And (InStr(UserSentence, " FROM ") > 0 Or InStr(UserSentence, " BY ") > 0) And (InStr(UserSentence, " BAND ") > 0 Or InStr(UserSentence, " ARTIST ") > 0) And InStr(UserSentence, " DON'T ") = 0 Then
Set oWMP = CreateObject("WMPlayer.OCX.7")
If InStr(UserSentence, " BAND ") > 0 Then
searchBand = Trim(Mid(UserSentence, InStr(UserSentence, " BAND ") + 6))
ElseIf InStr(UserSentence, " ARTIST ") > 0 Then
searchBand = Trim(Mid(UserSentence, InStr(UserSentence, " ARTIST ") +

)
End If
If oWMP.mediaCollection.getByAuthor(searchBand).Count > 0 Then
GetResponse = "I will play some " & searchBand
Priority = 1
Set songsList = oWMP.mediaCollection.getByAuthor(searchBand)
numSong = Int(Rnd * songsList.Count) + 1
oWMP.openPlayer (songsList.Item(numSong).sourceURL)
Else
GetResponse = "I could not find any songs by the band " & searchBand & " in your Media Library."
Priority = 1
End If
End If
'RESPOND: CUSTOM USER SHORT PHRASES
'If the user uses short phrases (defined by less then 2 vowels)
I also added " PLAY A SONG ","True"
to the XTF_SYS_EphemeralDetect.brn to keep Hal from making a topic file every time I asked for a song, I don't know if this as the proper way but it seemed to work.
Now I just say "play a song by the band Pink Floyd"(or any artist in my play list) and Hal does it.
Hope this helped,
Mav