-
Notifications
You must be signed in to change notification settings - Fork 5
Change Log
aporia-records edited this page Sep 6, 2018
·
20 revisions
BUG FIXES
- Fixed import of 'REC' record types
- Fixed
sortShares()
so that the Shares array index still starts at 1 rather than 0.
MINOR CHANGES
- Work_ID and ISWC now imported into tracks array
- Releases now contain an array to track Track_ID, ISRC, Work_ID, and ISWC for each track in the release
- Optimized functions
addTrack()
andaddRelease()
NEW FEATURES
- TISrewrite: will re-write TIS territories as individual territories to Include for specific societies (this is useful if the society in question has trouble evaluating TIS equations)
- Added new functions for use with master-side metadata:
addRightsholder()
,addContributor()
,removeWorkDetail()
BUG FIXES
-
addPerformer():
now returns the correct index of new names -
'REC'
: fixed a bug that prevented mulitiple ISRCs from generating mulitple records - group record count is now correct in cases with multiple transaction groups
- Publishers without ownership shares (e.g. administrators) now included in the SPU chain if collection shares are defined
MINOR CHANGES
-
'REC'
record output: rewrote encoding loop
NEW FEATURES
-
'REC'
record output: added ISRC and EAN/UPC validity checks - now will not include invalid values in'REC'
record types -
encode_cwr():
invalid IPI numbers now replaced universally with spaces -
validateShares():
collection values now checked as part of shares validation - will fail if the collection values in a specified territory sum to zero -
addPerformer():
artists/performers will now be matched using an IPI value, if one is specified
BUG FIXES
-
encode_cwr():
leading zeros were removed from IPI Name numbers after the last update -- now fixed -
writeCWR():
now fails if Submitter Name is missing in the shareholders array
MINOR CHANGES
-
validateWork():
now checks the Text Music Relationship for a valid entry, replaces invalid entries with spaces -
encode_cwr():
error messages now added to the messages array, rather than displayed viaprintf()
BUG FIXES
-
addTerritory():
Collection values now automatically set to zero if the current territory is being excluded - see note 1 below
MINOR CHANGES
-
validateShare():
now checks that SPT collection values are within the valid range -
encode_cwr():
now checks that IPI Base Numbers follow the valid pattern and that IPI Name Numbers have valid checksums, replaces invalid values with blanks -
callback_check_ipi:
renamed to callback_lookup_ipi for clarity
NEW FEATURES
-
is_valid_ipi_base():
tests whether an IPI Base Number follows the valid format; the check digit is not verified -
is_valid_ipi_name():
tests whether an IPI Name number has a valid checksum - see note 2 below -
is_valid_iwsc():
tests whether an ISWC string follows the valid pattern format and has a valid check digit -
checkLuhn():
Luhn algorithm validity check - see note 3 below
NOTES
- Some societies (e.g. BMI and CMRRA) ignore the Include/Exclude Indicator flag, and merely set their TIS territory collection values in an additive (rather than subtractive) fashion. Although the CWR Functional Specifications do not specify that the collection values on an SPT record must be zero, in practice they do at societies that ignore the indicator flag.
- Thank you to Peter Klauser @ SUISA for contributing the IPI Name Number checksum formula.
- Mod 10/Luhn test was sourced from the wikipedia article
(https://en.wikipedia.org/wiki/Luhn_algorithm)
CHANGES
-
'IP Number'
and'IPI Name Number'
have now been completely separated within the internal data model. -
addShareholder():
now requiresIP_Number
in the argument array. IPI Name Numbers are only required for controlled shareholders.
BUG FIXES
-
encode_cwr():
IPI Name Numbers that evaluate to zero are now replaced by spaces, as per the CWR spec.
2017-12-01 — v1.46 — changes based on feedback from Matija Kolarić i@matijakolaric.com:
AporiaWorksRegistration.php
:
- additional validity checks around track-level metadata and Alternative Titles
-
validateshares():
now checks if controlled writers have at least one collection territory defined -
validateshares():
now checks if 'Shares Change' when Subpublished entered was not one of 'N' or 'Y' - replaces with 'N' -
addShareholder():
added support for 'Publisher Unknown Indicator' and 'Writer Unknown Indicator' - added support for Special Agreements Indicator in
SPU
/OPU
records -
addTerritory():
now fails if the TIS Numeric Code does not exist in the TIS lookup table. -
NewWork():
now checks ISWC validity, and replaces invalid ISWCs with spaces. -
'Recorded_Flag'
renamed to'Recorded_Indicator'
for consistency with the published CWR specifications. - New function
getISRCs():
returns an array of ISRC codes linked to a Work - New setting:
$this->Transliterate
- if this is setTRUE
, then the functiontransliterate()
(in cwr-lib) will be used to transliterate non-valid characters to their valid equivalents. This will slow processing down, so you may wish to disable it.
cwr-lib.php:
- the functions for CISAC validation have been reworked into the following:
-
is_valid_ipi_name():
verifies the 2 digit checksum of an IPI Name Number string -
is_valid_ipi_base():
verifies the check digit of an IPI Base Number string -
is_valid_iswc():
verifies the check digit of an ISWC string
-
-
is_not_array():
new function that reverses the booleen result of is_array()
-
transliterate()
- now uses Language_Code for specific rules - New runtime setting:
$this->No_Society_Code
. Default is99
as per most recent lookup tables, but can optionally be set to ''. - bugfix:
PER
(performer) records were being skipped. Fixed with new functiongetPerfomers()
- bugfix:
HDR
- submitter name was not found if theIP_Number
differed from theIPI_Name_Number
- bugfix: whitespace now trimmed from
IPI_Name_Number
,IPI_Base_Number
andISWC
in the validation functions - bugfix:
addPerformer()
- was not working if there were more than 1 performer per work - now fixed - bugfix: Lower case titles were being filtered out. Now they are correctly converted to upper case.
AporiaWorksRegistration.php
:
-
CWR_Revision
: now defaults to revision 1 if CWR version is set to 2.2 -
addShareholder()
: now correctly returns true if a shareholder was successfully added - Publisher roles now correctly sorted: The first SPU record within a chain must be for an Original Publisher or Income Participant (
Publisher Type = “E” or “PA”
). - empty/null values for Society Code fields are now outputted correctly
-
setXRef()
: will now skip any record with an Organisation Code of '000' or '099' -
addShareholder()
: Now strips invalid Society Codes and replaces with the No Society value -
addPerformer()
: Now converts names to upper-case
cwr-lib.php
:
-
ISRC_Validity flag
is now set after checking the ISRC supplied for a'REC'
record type
New functions:
-
addAltTitle(title, type, language)
- will add an ALT list entry -
getAltTitles()
- returns the ALT list array -
removeShare()
- removes the current share and reindexes the shares array within the work