Common Works Registration Documentation

In the previous article, a simple CWR file was shown, together with a JSON file containing the same data. This article picks up from there and introduces the official documentation while explaining CWR in more detail.

Registration of musical works should really be a simple thing. There is no good reason for it to be so complicated, but it obviously is. I will not rant here, but instead, give a practical introduction to the official documentation. While this refers to CWR 2.1, the only version in world-wide use, it applies to CWR 2.2, CWR 3.0 and CWR 3.1.

The official CWR documentation is extremely technical, so this article must be as well, as it is targeting the same audience – software developers. Structure

Data in CWR is in fields of fixed width that are combined in records of different types. Records are “CRLF delimited”, so effectively rows with Windows line endings. Allowed characters

Only uppercase characters are allowed. While societies expect that publishers comply with this, they often use lowercase characters in their responses.

To make things even more complicated, there are different rules on allowed characters for different fields. (See Standards and Rules working group CIS character set). Headers and Trailers

There are four types that are file and group header and trailer:

HDR – file header
TRL – file trailed
GRH – group header
GRT – Group trailer

Here is what they look like:

HDRPB000000199DMP DEMO PUBLISHING 01.102019021516052620190215 
GRHREV0000102.100000000000
... (removed) ...
GRT000010000000200000023 0000000000 
TRL000010000000200000025

A file can have one or more groups. Each group has a type and it can only hold transactions of this type. There can only be one group of each type. Transactions

While specification defines quite a lot of transaction types, only three are in wide use:

NWR – New Work Registration
REV – REVison of an existing registration
ACK – Acknowledgement

NWR and REV are created by publishers and sent to societies, while ACKs are sent in the opposite direction. In CWR 3.x, NWR and REV have been merged into a single type – WRK.

Here is an example of one NWR transaction:

NWR0000000100000000SECOND BEST                                                   DMP000002   00000000            UNC000000UORI                                                   N00000000000                                                   N
SPU000000010000000101DMP      DMP DEMO PUBLISHING                          E 00000000000000000199052025000440500004405000 N
SPT0000000100000002DMP       025000500005000I2136N001
SWR0000000100000003W000001  SMITH                                        JOHN JAMES                    CA0000000000000000039521 025000000000000 N
SWT0000000100000004W000001  025000000000000I2136N001
PWR0000000100000005DMP      DMP DEMO PUBLISHING                          SAAN12345     W000001
OWR0000000100000006W000003  ADAMS                                        AARON                         CA00000000000000000000050000500005000
ALT0000000100000007SECOND PLACE                                                AT

Within a group, all records have the same beginning, three characters for record type (NWR, SPU, etc.), then 8 digits that define a transaction (in this case 00000001, which means this is the second transaction in the group), and then 8 digits for the record within the transaction (in this case from 00000000 to 00000007). Every type has its own list of fields, which is defined in the Functional Specification (Version 2.1 Rev.8).

Theoretically, NWR/REV transactions require only three records, the NWR/REV header, one SWR and one SWT record, for registration by a sole writer who has no original publisher. However, only a handful of societies accept CWR files submitted by writers.

In these articles, it is presumed that a publisher is registering works. In that case, minimal registration has the following records: NWR/REV, SPU, SPT, SWR, SWT, PWR. For details, please consult the Functional Specification for these record types.

The above example is only slightly more complex. This is an original work called Second Best, there are two writers, with only one (Smith) being “controlled” by DMP Demo Publishing, while the other (Adams) is not and the publisher for this writer is not specified. And there is also the alternate title Second Place.

Many fields, for example ORI in the NWR record is a shorthand value, and the human-readable version can be found in the CWR Lookup Tables, in this case, “Original” from Musical Work Distribution Category table.

Once the file is sent to society, they are supposed to return an acknowledgement file, which is also in CWR format. As mentioned earlier, the transaction type in question is ACK. ACK transactions have this header row, followed by records from the registration, sometimes intertwined with MSG records with error messages, see CWR error messages.

Ahh, yes, and there is a User Manual. After a decade and a half of dealing with CWR, I have never seen it helped anyone with anything. It does not help software developers, and it is also not clear what “users” are users of.

This article, the previous one, and the one about CWR delivery, are far more informative. And when it comes to user manuals for users of publishing software, have a look at this one.