DigiTag 1.1 – Audio Metadata & Media Properties Library for Clarion

A little over a week ago I released DigiTag 1.0, a small DonorWare library intended to give Clarion developers a simple procedural interface to MP3 metadata.

Things got a little out of hand. <g>

What began as an MP3 tag library has evolved substantially with DigiTag 1.1, which is now an Audio Metadata & Media Properties Library for Clarion.

DigiTag provides a 32-bit Clarion-friendly procedural API for reading and writing audio metadata and retrieving technical media properties, while hiding the underlying C++, TagLib and Windows Media Foundation implementation.

Audio Metadata Support

DigiTag has now been tested for metadata reading and writing with:

MP3 • FLAC • M4A • OGG • WAV • WMA

The library can read and write:

Title, Artist, Album Artist, Album, Genre, Comment, Composer, Conductor, Year, Track, Track Total, Disc and Disc Total

It can also retrieve Duration, Bitrate, Sample Rate and Channels.

Video Duration Support

DigiTag 1.1 also adds duration retrieval for:

3G2 • 3GP • ASF • AVI • M4V • MKV • MOV • MP4 • MPEG • MPG • WEBM • WMV

Additional video-duration support is provided through Windows Media Foundation, but the Clarion developer never has to interact with Media Foundation directly.

High-Performance MP3 Duration

For applications processing large MP3 collections, DigiTag includes DT_GetDurationFast(), a native high-performance MP3 duration reader.

It handles common CBR and VBR MP3 structures directly, including Xing and VBRI information, and can fall back to the conventional TagLib-based duration function when required.

This functionality was developed and tested against a real-world collection containing more than 745,000 MP3 files, where the Fast reader substantially reduced overall duration-processing time while retaining the compatibility fallback for files it could not safely resolve.

37 Clarion-Ready Functions

DigiTag 1.1 now provides 37 public functions, organized into four groups:

  • Media Property Functions
  • Batch Functions
  • Tag Reader Functions
  • Tag Writer Functions

The API remains deliberately procedural. There are no Clarion classes to instantiate and no C++ interface to learn.

For example:

DTFileName = 'C:\Music\Song.flac'
DTTitle = 'New Song Title'

DTResult = DT_SetTitle(DTFileName,DTTitle)

IF DTResult = 1
    MESSAGE('Title successfully updated.')
END

The goal remains the same as when DigiTag started: let a Clarion programmer work with media metadata without having to become an expert in TagLib, C++, ID3, RIFF, MP4 atoms, Vorbis comments, or Windows Media Foundation.

Licensing

With the substantial expansion of DigiTag, Version 1.1 has moved from DonorWare to Shareware.

The complete DigiTag package may still be downloaded and evaluated without charge.

A DigiTag Developer License is $39.95 per developer and is required before commercially distributing or selling an application that incorporates DigiTag.

Once licensed, applications created with DigiTag may be distributed royalty-free. There are no per-copy, runtime, or end-user DigiTag license fees.

The distribution includes:

  • DigiTag.lib
  • DigiTag.dll
  • TagLib runtime
  • Compiled DigiTag Help
  • README
  • Developer License Agreement
  • Developer License Order Form

DigiTag was developed and tested with Clarion 12 and is distributed as a 32-bit library.

More Information / Download

DigiTag 1.1 — Software by Daughtry

As always, comments, bug reports, suggestions and real-world testing from other Clarion developers are welcome.

3 Likes