NCH Software

Recently I came across a piece of software which used dozens of extensions for a single file format.

This T-Shirt Factory Deluxe files are a bit of an extreme, probably a prank against all of us doing file format identification. If you know who made this decision, I would like to have a chat.

This is not first time I have come across a format which seems to have been used for more than one software title. Awhile back I tried to find more information on a file format used with many tools created by MetaCreations. It was called “Composite File Management System“, and was used with Kai’s Power tools, Bryce3D, Ray Dream, Poser, and others. I did a previous post about the format.

I came across another recently with a similar issue. They are also many different software titles with the same native format.

NCH Software is an Australian software company who produce a massive number of software titles covering many different needs. From Audio Editing to Business charts and from Accounting tools to a 3D model converter, they have it all. Their audio editing software WavePad is quite popular. My initial entry into their software world was for the specialized Dictation/Scribe software which produced a slightly proprietary audio format with the extension DCT. This format does not use the format many of the other titles use.

With the number of different titles, it probably makes sense they use the same file structure to make processing/programming more efficient. They appear to be mostly proprietary binary files.

hexdump -C Wavepad/Untitled2.wpp | head
00000000 6c 73 64 66 01 00 1a 00 00 00 07 00 00 00 00 00 |lsdf............|
00000010 ca 84 20 00 00 00 00 00 e9 03 00 00 a5 84 20 00 |.. ........... .|
00000020 00 00 00 00 d0 07 00 00 99 84 20 00 00 00 00 00 |.......... .....|
00000030 d1 07 06 00 24 00 00 00 00 00 00 00 2f 55 73 65 |....$......./Use|
00000040 72 73 2f 74 79 6c 65 72 2f 44 65 73 6b 74 6f 70 |rs/tyler/Desktop|
00000050 2f 55 6e 74 69 74 6c 65 64 5f 30 2e 77 61 76 00 |/Untitled_0.wav.|
00000060 dc 07 02 00 04 00 00 00 00 00 00 00 00 00 00 00 |................|
00000070 d2 07 03 00 08 00 00 00 00 00 00 00 00 00 00 00 |................|
00000080 00 00 00 00 d3 07 03 00 08 00 00 00 00 00 00 00 |................|
00000090 00 00 00 00 00 00 00 00 d4 07 03 00 08 00 00 00 |................|

hexdump -C Crescendo/examples/Grooving.cdo | head
00000000 6c 73 64 66 01 00 05 00 00 00 03 00 00 00 00 00 |lsdf............|
00000010 8a b5 00 00 00 00 00 00 00 10 00 00 65 05 00 00 |............e...|
00000020 00 00 00 00 01 11 04 00 04 00 00 00 00 00 00 00 |................|
00000030 00 00 00 41 02 11 02 00 04 00 00 00 00 00 00 00 |...A............|
00000040 05 00 00 00 03 11 04 00 04 00 00 00 00 00 00 00 |................|
00000050 00 00 52 43 04 11 04 00 04 00 00 00 00 00 00 00 |..RC............|
00000060 00 80 94 43 05 11 04 00 04 00 00 00 00 00 00 00 |...C............|
00000070 00 00 a0 41 06 11 02 00 04 00 00 00 00 00 00 00 |...A............|
00000080 01 00 00 00 07 11 04 00 04 00 00 00 00 00 00 00 |................|
00000090 00 00 00 00 08 11 04 00 04 00 00 00 00 00 00 00 |................|

hexdump -C Spin3D/bunny.3dp | head
00000000 6c 73 64 66 01 00 20 00 00 00 01 00 00 00 00 00 |lsdf.. .........|
00000010 ec bc 65 00 00 00 00 00 00 10 00 00 e0 bc 65 00 |..e...........e.|
00000020 00 00 00 00 00 12 00 00 38 bc 65 00 00 00 00 00 |........8.e.....|
00000030 01 12 07 00 8c 26 26 00 00 00 00 00 cc d1 27 3f |.....&&.......'?|
00000040 1c b5 80 3f 3c f4 bd 3d d9 79 27 3f de af 80 3f |...?<..=.y'?...?|
00000050 bf 81 a9 3d ad fa 28 3f 10 e7 7d 3f 05 a8 a9 3d |...=..(?..}?...=|
00000060 ec a4 1a 3f 56 29 49 3f ab d0 c0 3d 3e 3c 1f 3f |...?V)I?...=><.?|
00000070 5f ed 4c 3f 5a 48 c0 3d 04 59 1b 3f 48 53 49 3f |_.L?ZH.=.Y.?HSI?|
00000080 42 e9 ab 3d 74 5d 1c 3f 05 6c 3b 3f f7 03 5e 3d |B..=t].?.l;?..^=|
00000090 46 d2 1a 3f f6 d4 3e 3f ef ac 5d 3d 94 db 1a 3f |F..?..>?..]=...?|

hexdump -C Voxal/Geek.voxal | head
00000000 6c 73 64 66 01 00 0c 00 00 00 01 00 00 00 00 00 |lsdf............|
00000010 ea 01 00 00 00 00 00 00 ec 03 01 00 01 00 00 00 |................|
00000020 00 00 00 00 01 e8 03 00 00 a9 01 00 00 00 00 00 |................|
00000030 00 00 20 02 00 04 00 00 00 00 00 00 00 13 00 00 |.. .............|
00000040 00 00 10 00 00 39 00 00 00 00 00 00 00 00 10 00 |.....9..........|
00000050 00 0d 00 00 00 00 00 00 00 00 20 01 00 01 00 00 |.......... .....|
00000060 00 00 00 00 00 00 01 20 04 00 04 00 00 00 00 00 |....... ........|
00000070 00 00 c3 f5 40 41 02 20 02 00 04 00 00 00 00 00 |....@A. ........|
00000080 00 00 22 00 00 00 00 20 02 00 04 00 00 00 00 00 |..".... ........|
00000090 00 00 0e 00 00 00 00 10 00 00 29 00 00 00 00 00 |..........).....|

hexdump -C PhotoPad/test.ppp | head
00000000 6c 73 64 66 01 00 02 00 00 00 00 00 00 00 00 00 |lsdf............|
00000010 ee 3c 00 00 00 00 00 00 c9 00 01 00 01 00 00 00 |.<..............|
00000020 00 00 00 00 00 04 00 00 00 d5 3c 00 00 00 00 00 |..........<.....|
00000030 00 02 00 00 00 c9 3c 00 00 00 00 00 00 03 00 06 |......<.........|
00000040 00 0f 00 00 00 00 00 00 00 6f 72 69 67 69 6e 61 |.........origina|
00000050 6c 5f 69 6d 61 67 65 00 01 00 00 00 85 3c 00 00 |l_image......<..|
00000060 00 00 00 00 07 00 07 00 79 3c 00 00 00 00 00 00 |........y<......|
00000070 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
00000080 00 00 04 00 00 00 03 00 08 06 00 00 00 ba ba 15 |................|
00000090 0d 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 |.....sRGB.......|

Above are just a few of the titles which use the same structure. The LSDF string is the first 4 bytes and always the last 4 bytes. The next two bytes, 0100, seem consistent for all samples, but the two bytes after that seem to be unique to the software. So far I have found the following titles use the format.

Software TitleNameExtensionPattern
WavePadWavePad Audio Editor Project FileWPP6C736466 01001A00
CrescendoCrescendo Score FileCDO6C736466 01000500
Spin3DNCH Software model format3DP6C736466 01002000
VoxalVoxal Voices FileVOXAL6C736466 01000C00
PhotoPadPhotoPad Project FilePPP6C736466 01000200
MixPadMixPad ProjectMPDP6C736466 01000400
DisketchDisketch ProjectDEPROJ6C736466 01000700
ClickChartsClickCharts DiagramCCD6C736466 01000A00
DreamPlanDreamPlan FileDDP6C736466 01001300
DrawPadDrawPad FileDRP6C736466 01001500

Without downloading and installing their vast library of software it’s hard to know all the different titles which use the format. The rest of the file for each sample seems to be proprietary in a binary format, except a few with a PNG image mixed in.

The simplest sample I could find was a preset file for the Zulu DJ Software which uses the ECF extension. The ECF extension is common with a few of the titles, like effect chains for WavePad and MixPad.

hexdump -C Zulu/Untitled.ecf
00000000 6c 73 64 66 01 00 0c 00 00 00 01 00 00 00 00 00 |lsdf............|
00000010 6b 00 00 00 00 00 00 00 00 10 00 00 1a 00 00 00 |k...............|
00000020 00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 00 |................|
00000030 00 01 00 01 00 01 00 00 00 00 00 00 00 00 00 30 |...............0|
00000040 02 00 04 00 00 00 00 00 00 00 01 00 00 00 00 20 |............... |
00000050 00 00 29 00 00 00 00 00 00 00 00 10 00 00 0d 00 |..).............|
00000060 00 00 00 00 00 00 00 20 01 00 01 00 00 00 00 00 |....... ........|
00000070 00 00 00 00 20 02 00 04 00 00 00 00 00 00 00 00 |.... ...........|
00000080 00 00 01 6c 73 64 66 |...lsdf|

This header is identical to the header for the VOXAL format, so not sure if the second set of 4 bytes is directly connected to the software title. Or if there purpose is something else.

The question that needs to be answered is how we might represent these formats in PRONOM if needed. We could create a unique signature for each title based on the magic header and footer and the second set of 4 bytes which may indicate the software. Or create a single generic signature to identify the basic format using the magic header and footer and adding all the extensions to the list, which would be lengthy. This would be the easiest and catch all formats related to NCH Software using this file format, but then additional characterization would need to happen to identify the specific software title needed to render the file.

The NCH Software company seems to churn out new software and versions quite frequently and a search for reviews of their software turns up some questionable results. Many might enjoy their software as they are easy to use and are free for home use. I had lots of trouble with a few of them as they wanted to mount network locations and disk images I had used recently, which seems sketchy. I would love to know if anyone uses their software and has any need to preserve these formats. I currently don’t, but found the common use of a file format intriguing. I also found no reference to the magic bytes they use, except for a few TrID entries. Marco always is a step ahead!

3M Printscape

There are some file formats out there which are confusing. One such file came across my desk awhile back. This file was not identifiable with any tools I threw at it. At first I believed it to be a TIFF file variant.

You can see the TIFF header, but would not open as one, even if the extension was changed from PSC to TIF. The other hint was the phrase “3M Printscape”, I had never heard of it and there wasn’t much information available about it. It seems it was a creative product made by 3M in the early 2000’s. You could buy a package of printable cards, gift bags, etc. The problem was, there was no available software to be found. I searched on the Internet Archive, the Wayback Machine, and many other abandoned software sites. For months I searched, it wasn’t until a year later I came across one of the creative packages at thrift store. I was thrilled. That is until I was able to get the software installed.

After I installed the software in a virtual machine running Windows 98 I tried to open the PSC file but the software was looking for files with the extension STD, which is an unfortunate acronym. Turns out it stands for SureThing Document. SureThing is a software company who develops Label software. After many months of searching I thought I had found the software to render my file, but it was not meant to be.

Many months later I decided to do some more searches. That is when another copy of 3M Printscape showed up in the Internet Archive. 3M Printscape 2.0! It appears 3M decided to design their own software for version 2.0.

The preservation value of the above image is not lost on me. What took me over a year to figure out ended up being a simple pixelated image of a cardinal. Its the journey, not the destination?

From this little adventure I was able to submit two file formats to PRONOM, fmt/1275fmt/1276. Also I documented the formats and linked to the software on the File Format Wiki. The 3M Printscape version 2 was also released for Macintosh, so the signature had to account for endianness, just like a TIFF file would. With the format having the string “3M Printscape” in the header, it made for an easy signature.

Hopefully, I will be the last to spend this much time on an image of a bird.