I did it like this but I get an critical WP error:
add_filter( 'pods_api_pre_save_pod_item_release', 'slug_set_title', 10, 2);
function slug_set_title($pieces, $is_new_item) {
//check if is new item, if not return $pieces without making any changes
if ( ! $is_new_item ) {
return $pieces;
}
//make sure that all three fields are active
$fields = array( 'post_title', 'artist', 'featuring_artist' );
foreach( $fields as $field ) {
if ( ! isset( $pieces[ 'fields_active' ][ $field ] ) ) {
array_push ($pieces[ 'fields_active' ], $field );
}
}
//set variables for fields empty first for saftey's sake
$artist = $featuring_artist = '';
//get value of "artist" if possible
if ( isset( $pieces[ 'fields' ][ 'artist' ] ) && isset( $pieces[ 'fields'][ 'artist' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'artist' ][ 'value' ] ) ) {
$artist = $pieces[ 'fields' ][ 'artist' ][ 'value' ]
}
//get value of "featuring_artist" if possible
if ( isset( $pieces[ 'fields' ][ 'featuring_artist' ] ) && isset( $pieces[ 'fields'][ 'featuring_artist' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'featuring_artist' ][ 'value' ] ) ) {
$featuring_artist = $pieces[ 'fields' ][ 'featuring_artist' ][ 'value' ]
}
//set post title using $artist and $featuring_artist
$pieces[ 'object_fields' ][ 'post_title' ][ 'value' ] = $artist . ' and ' . $featuring_artist;
//return $pieces to save
return $pieces;
}