# Involved People/Musician Credits Functions

This statement is used to extract information from or modify the contents of the Involved People or Musician Credits fields. The text fields may contain any of the escape sequences described in Escape Sequences. Note that escape sequences are evaluated per file regardless of the execution mode.

You specify if a function is to operate on the Involved People or Musician Credits field.

The following functions return lists using the default list delimiter (\~).

All Credits
  A list containing the names of all credits is saved to the specified Track Variable.
All People
  A list containing the names of all people is saved to the specified Track Variable.
People for Credit
  A list of people associated with the supplied credit is saved to the specified Track Variable.
Credits for Person
  A list of credits associated with the supplied person is saved to the specified Track Variable.
People for Empty Credit
  It is possible to have a list of people which are not associated with a credit. This function returns the list of people which have an empty credit.
Credits Unsupported by Roon
  A list of credits which are unsupported by Roon. Note that the empty credit is not returned by this function. Empty credits are always invalid.
Credits Which are Aliases
  A list of credits which are aliases to others.
Credits Which are not Defined
  A list of credits which are not defined as known credits in the Combined Credits Editor.

The following functions modify the source field. Note that the sorting and merging of names is not guaranteed after these functions. You can always execute a Format Credits statement to apply specific sorting and merging of names.

Remove Credits
  After unescaping the credits field is treated as a list of credits separated by the default list delimiter (\~). The specified credits are removed.
Remove People
  After unescaping the people field is treated as a list of people separated by the default list delimiter (\~). All occurrences of the specified people are removed. Note that this will also remove credits which were only associated with the specified people.
Add Credits for People
  After unescaping, both fields are treated as lists with components separated by the default list delimiter (\~). Each specified credit will be associated with the supplied people.
Remove Credits for People
  After unescaping, both fields are treated as lists with components separated by the default list delimiter (\~). The list of people will be removed from every specified credit.
Remove Empty Credits
  Credits with no name are entirely removed. Credits not associated with any people are removed.
Combine Credits
  The credits across all files are combined such that they are the union of the individual credits.

example: remove all credits in Involved People where the credit name contains 'photo'. The first and third statements are this statement. The second is a List Manipulate statement.

    1: Save all credits in Involved People to Variable 0
    2: List Manipulate Filter items in 'Variable 0'(⏎) using text contains "photo" (case insensitive).
         Save to 'Variable 0'(⏎)
    3: Remove credits "\v0" in Involved People

You can override certain setting by setting Runtime override. When set, a named variable called IPMC Runtime Override will be analyzed. If the value contains an M the source of the statement will be changed to Musician Credits. If the value contains an I the source of the statement will be changed to Involved People. These functions are by default case insensitive, however you can override this by including an X in the value.