--- /Users/james/Code/Drupal.org/contributions/modules/audio/contrib/attach/audio_attach.module
+++ audio_attach.module
@@ -248,15 +248,19 @@
  *  Add a new child to a parent node
  */
 function audio_attach_add_child($nid, $aid, $stack_bottom = TRUE) {
+  $node = node_load($nid);
   $weight = audio_attach_get_next_weight($nid);
   $result = db_query("INSERT INTO {audio_attach} (nid, aid, weight) VALUES (%d, %d, %d)", $nid, $aid, $weight);
+  audio_invoke_audioapi('audio_attach', $node, 'add_child', $aid);
 }
 
 /**
  *  Delete a child node from a given parent node.  If no parent node is specified, it deletes the child from all parent nodes.  Returns true if successful.
  */
 function audio_attach_remove_child($aid, $nid, $weight) {
+  $node = node_load($nid);
   $result = db_query("DELETE FROM {audio_attach} WHERE nid = %d AND aid = %d AND weight = %d", $nid, $aid, $weight);
+  audio_invoke_audioapi('audio_attach', $node, 'remove_child', $aid);
   return db_affected_rows($result);
 }
 
@@ -264,7 +268,9 @@
  *  Delete a parent node. Returns true if successful.
  */
 function audio_attach_remove($nid) {
+  $node = node_load($nid);
   $result = db_query("DELETE FROM {audio_attach} WHERE nid = %d", $nid);
+  audio_invoke_audioapi('audio_attach', $node, 'remove_all');
   return db_affected_rows($result);
 }
 
