anchor.diff:  	else if(href_list["modifyline"])
   		var/num = round(text2num(href_list["modifyline"]),1)
   		var/content = html_encode(input("Enter your line: ", instrumentObj.name, lines[num]) as text|null)
  -		if(!content || !in_range(instrumentObj, usr))
  +		if(!content || !usr.canUseTopic(instrumentObj, BE_CLOSE, FALSE, NO_TK))
   			return
   		if(lentext(content) > MUSIC_MAXLINECHARS)
   			content = copytext(content, 1, MUSIC_MAXLINECHARS)
  
positive.code: 
  /datum/song/proc/shouldStopPlaying(mob/user)
  	if(instrumentObj)
  		if(!user.canUseTopic(instrumentObj))
  			return TRUE
  		return !instrumentObj.anchored		// add special cases to stop in subclasses
  	else
  
negative.code: 		updateDialog(usr)		// make sure updates when complete
  
  /datum/song/Topic(href, href_list)
  	if(!usr.canUseTopic(instrumentObj, BE_CLOSE, FALSE, NO_TK))
  		usr << browse(null, "window=instrument")
  		usr.unset_machine()
  		return
  