# Which software can read bwf file cue chunk data and present it in an easily accessible format, such as a .txt file?

'Whispering bats' are bat species that either use low volume echo location calls or use passive hearing for prey detection, so producing no echo location calls at all. Detecting and identifying whispering bats is therefore difficult, and a combination of visual observation and sound recording has to be used. To be able to tell that a visually observed bat didn't produce echo location calls, the recordings should be associated with precisely timed cues, indicating visual observations at these times, that can then be correlated against presence or absence of recorded ultrasonic calls at these times.

My Tascam dr-100 mk3 has a function denoted "MARK" and my Sony pcm-m10 seems to have a similar function denoted "T-MARK". Using these would be a convenient way of adding a timed reference to when something occurs during a recording, corresponding to saying 'now I saw it' out loud during the recording, but without making a vocal comment, negatively affecting the recording.

Apparently the "MARK" or "T-MARK" data is found in the Cue chunk of bwf sound files. The bwf (Broadcast Wave Format) is an extension of the wav format and the file name extension of bwf files is often .wav, so it’s not apparent to the user that any such cue data is avaliable.

I normally use the freeware Audacity, but Audacity doesn't seem to be able to recognize or present cue chunk data. My Sony pcm-m10 came with a copy of Sound Forge Audio Studio 9.0 and it is able to read and present cue data. Unfortunately Sound Forge Audio Studio 9.0 doesn’t accept sample rates above 96ksps, so not useful for my bat recordings. Buying a licence for a brand new sound editing software for the sole purpose of reading cue data seems over the top.

Audacity can instead read label track files, and someone has written code which can read cue chunk data from a sound file and store it as a label track file, see https://wiki.audacityteam.org/wiki/Importing_Timestamp_Information.

It's a piece of code written in Python, which runs from the "shell command line".

It seems I need to download a Python compiler, compile the code and then enter some ancient MS-DOS remnant to run the compiled code. Just too much for a non software engineer, sigh...

My question is thus: Which software can read bwf file cue chunk data and present it in an easily accessible format, such as a .txt file? What I'd like is a Windows style box that I can click on which says "Which input sound file?" and "Where to put the output label track file?". An alternative would be code similar to Mp3tag, that could read cue chunk data and present it as a list that I can copy and paste into a label track file. Perhaps Mp3tag can already do this, but I haven’t managed to find where, if so, it is presented.

• This seems to be a wish list, but not a Q&A. Maybe OP can be reformulated to include more specific questions?
– WMXZ
Jul 27 at 13:20
• Which software can read bwf file cue chunk data and present it in an easily accessible format, such as a .txt file? Jul 27 at 13:37
• Hi @UlfElman, you could already edit the original question to include the new changes itself :)! Jul 27 at 15:40
• I don't know of any software but I've written software that reads and writes WAVE files a fair bit... I'd love to see an example file? Jul 28 at 9:25
• I could easily make recordings and press the "MARK"/"T-MARK" buttons a couple of times while recording, but as I have no means of read this cue data, I wouldn't know if it's there. How would I then make these recordings available to you? Jul 28 at 10:38

Ok,

I maintain a piece of software called EMU - the Ecoacoustics Metadata Utility.

I didn't have support for reading CUE points from WAVE files but I thought it was worthwhile adding in.

A caveat: EMU is a command line utility. It is not graphical and it is designed to be used from a shell like cmd/PowerShell/BaSH etc... This might make my solution not suitable for you, however, it still does work.

One other advantage over Python is you don't need to install anything to run EMU. Just download and unzip (maybe unblock) and you should be good to go.

Using the two sample files you gave me, the command:

emu.exe cues **/*.wav


Finds all WAVE files in all sub-folders and reads their CUE points. It outputs:

Adding in the --export option, we'll save a simple text file next to each file that has CUE points

emu.exe cues --export **/*.wav


The contents of those files, for the Sony and Tascam respectively are:

9.642000    <no label>
12.928000   <no label>
16.768000   <no label>
20.224000   <no label>


and

11.346000   MARK_01
16.122000   MARK_02
16.386000   MARK_03
19.770000   MARK_04
23.802000   MARK_05


Hope that helps!

EDITS

To run a command line program first open a shell like CMD or PowerShell (or Bash if you're on Linux). If you're on Windows I'd suggest installing Windows Terminal

Then copy the path to the program and the directory you want to work on and paste them in the relevant spots.

Here's an example:

https://youtu.be/yaG9lcnQleE

• When I run emu.exe, an MS-DOS window briefly opens and I can for a blink of an eye make out the text "EMU" in graphical form, then the window shuts. Aug 8 at 7:20
• The emu.exe code is found in win-x64 after unzipping win-x64.zip. The computer initially refused to run the code, but I overruled that ('unblocking' it?). I use Windows 10 Pro ver 21H2 with Windows Feature Experience Pack. Aug 8 at 7:31
• Your results look exactly like what I want, though! Never mind the MS-DOS aspect, I'd be more than happy to live with that. Aug 8 at 7:35
• Oh right, let me edit my answer to be more clear. Aug 9 at 10:24
• I ran it in the Windows Power Shell and it works like a charm! Great! Thank you so much! Aug 9 at 12:51