Bugs in ELAN 5.9 for Mac (Catalina 10.15.6)

Recently I updated my OS to Catalina 10.15.6 and unsurprisingly it’s meant I can no longer use the version of ELAN I had previously been using (5.4); however this version has been incredibly unresponsive when trying to align text and add annotations, and is also causing issues with audio playback.

Bugs:

  1. The shortcut to move the cursor using command + left or command + right doesn’t work at all; re-mapping the shortcuts doesn’t work either.
  2. The option + N shortcut for adding a new annotation has to be pressed twice for a new annotation to appear, and the first symbol entered into the annotation is ˜ if you type to manually fill in the annotation (if you paste into the new annotation field instead of typing directly, however, the tilde doesn’t appear). My workaround is remapping the shortcut so that it’s not option + N, which works but is still a bit annoying.
  3. Using “play selection” with shift + space will play the selected audio as well as a small amount of audio after the selection – I can work around the other bugs, but this one is a major issue for aligning annotations as I really need the accuracy.
  4. Small sections at the start of a selection won’t play when using “play selection” - I haven’t worked out what is required to reproduce this, however.

Some of these issues such as the cursor movement have been present for me in previous releases, which was why I stuck with 5.4 for such a long time, although since upgrading to Catalina this isn’t something I can continue to do. All of the bugs occur without fail with the exception of the audio skipping – I’m yet to narrow down the circumstances that seem to trigger that one, but I thought I’d include it here just in case it was helpful to know.

All of these bugs are annoying in their own way, but the main one that’s causing me major problems is #3 above. If you have any suggestions for how to solve this I’d greatly appreciate it.

If it’s relevant: I had also run into a known issue with ELAN 5.4 that saw the program crashing whenever I tried to use it, but used the solution that was posted in this reply to run the program from Terminal (which I did for the last 18 months, ha!). The link now seems to redirect, but I can provide the code that had been posted if that would be in some way helpful.

Thank you in advance for your help.

Hi,

Concerning:
#2: unfortunately some shortcuts suffer from interference with system defined behavior; keyboard shortcuts consisting of Option+Letter will probably be removed in a future version.

#1, #3, #4: since I’m not able to reproduce the problems, it would be good to have some more information about the (type of the) media files and the media player framework that is handling the files. In case of video, the option “Player Info…” from the video’s context menu reveals the media framework in use, in case of audio the log (View->View Log…) contains that information (among many other things). Hopefully the additional information gives us an idea of what is going on and what can be done about it.

-Han

Hi Han,

Thanks for your reply. I wasn’t sure what I was looking for in the log so I’ve just pasted below:

Sep 14, 2020 5:46:19 PM mpi.eudico.client.annotator.ELAN main
INFO: 

@ELAN Launched

Sep 14, 2020 5:46:20 PM mpi.eudico.client.annotator.ELAN main
INFO: ELAN 5.9
Java home: 	/Users/gx456/Applications/ELAN_5.9.app/Contents/PlugIns/Java.runtime/Contents/Home
Java version: 	11.0.1
Runtime: 	11.0.1+13
OS name: 	Mac OS X
OS version: 	10.15.6
OS arch.: 	x86_64
User language: 	en
User home: 	/Users/gx456
User dir: 	/Users/gx456/Applications/ELAN_5.9.app/Contents/Java
Classpath: 	/Users/gx456/Applications/ELAN_5.9.app/Contents/Java/elan-5.9.jar:javafx-controls-11-mac.jar:xmlbeans-2.6.0.jar:commons-logging-1.2.jar:javafx-graphics-11-mac.jar:json-20160212.jar:httpclient-4.4.1.jar:guk-0.7.jar:activation-1.1.1.jar:javax.activation-api-1.2.0.jar:javafx-base-11-mac.jar:jlfgr-1.0.jar:slf4j-api-1.7.5.jar:xercesImpl-2.11.0.jar:metadata-api-1.5.0.jar:staccato-1.0.0.jar:log4j-1.2.17.jar:vlcj-natives-4.1.0.jar:mfsearch-1.5.7.jar:javafx-media-11-mac.jar:javafx-base-11.jar:AppleJavaExtensions-1.0.jar:commons-codec-1.9.jar:jaxb-api-2.3.1.jar:javafx-swing-11.jar:annot-search-lib-1.4.11.jar:xml-resolver-1.2.jar:commons-io-2.5.jar:bridj-0.7.0.jar:javafx-controls-11.jar:javafx-swing-11-mac.jar:elan-5.9.jar:xml-apis-1.4.01.jar:javafx-media-11.jar:annotation-schema-1.0.jar:annot-tools-1.1.12.jar:hsqldb-1.8.0.10.jar:xalan-2.4.1.jar:jna-platform-5.4.0.jar:hunspell-bridj-1.0.4.jar:lexan-api-1.0.jar:lexiconcomponent-1.7.jar:dx-1.7.jar:javafx-graphics-11.jar:httpcore-4.4.1.jar:vlcj-4.2.0.jar:jna-5.4.0.jar:jhall-2.0.0.5.jar:help.zip:im/nl.mpi.gim__V04.jar:im/nl.mpi.lookup__V1.0.jar:im/nl.mpi.lookup.CJKV__V03.jar:im/nl.mpi.lookup.IPA__V04.jar:jaxb-core.jar:jaxb-impl.jar
Library path: 	nativelib
Display info:
	Screen 1 - isDefault:true, w:1280, h:800, bitDepth:32
	Main screen resolution:113 (w:1280, h:800)

Sep 14, 2020 5:46:20 PM mpi.eudico.client.annotator.prefs.PreferencesReader parse
INFO: Reading preferences: /Users/gx456/Library/Preferences/ELAN/elan.pfsx
External updater thread started 
Sep 14, 2020 5:46:21 PM mpi.eudico.client.annotator.prefs.PreferencesReader parse
INFO: Reading preferences: /Users/gx456/Library/Preferences/ELAN/shortcuts1.pfsx
Sep 14, 2020 5:46:21 PM mpi.eudico.client.annotator.prefs.PreferencesWriter encodeAndSave
INFO: Writing preferences: /Users/gx456/Library/Preferences/ELAN/elan.pfsx
Sep 14, 2020 5:46:21 PM mpi.eudico.client.annotator.prefs.PreferencesWriter encodeAndSave
INFO: Writing preferences: /Users/gx456/Library/Preferences/ELAN/shortcuts1.pfsx
Sep 14, 2020 5:46:27 PM mpi.eudico.client.annotator.prefs.PreferencesReader parse
INFO: Reading preferences: /Users/gx456/Documents/Work/RA/AC_1028.pfsx
Using AVFN Player for file:///Users/gx456/Documents/Work/RA/Sound files/AC_1028.wav
Sep 14, 2020 5:46:28 PM nl.mpi.avf.player.AVFBaseMediaPlayer <init>
INFO: Media URL for AVFPlayer: file:///Users/gx456/Documents/Work/RA/Sound files/AC_1028.wav
Sep 14, 2020 5:46:28 PM mpi.eudico.client.annotator.player.JAVFELANMediaPlayer logMediaInfo
INFO: JAVF Media Player:
	File: file:///Users/gx456/Documents/Work/RA/Sound files/AC_1028.wav
	Has Video: false
	Media Duration: 01:09:12.818
MediaUrl SignalViewer: file:///Users/gx456/Documents/Work/RA/Sound files/AC_1028.wav
Sep 14, 2020 5:46:28 PM mpi.eudico.client.annotator.commands.ClipMediaCA <init>
INFO: Found clipping script: clip-media.txt
Sep 14, 2020 5:46:28 PM mpi.eudico.client.annotator.prefs.PreferencesWriter encodeAndSave
INFO: Writing preferences: /Users/gx456/Documents/Work/RA/AC_1028.pfsx
Sep 14, 2020 5:46:28 PM mpi.eudico.client.annotator.tiersets.TierSetUtil readTierSetsFromFile
INFO: Could not load the tier set file. The file does not exist or is not valid.
Sep 14, 2020 5:46:29 PM mpi.eudico.client.annotator.util.AvailabilityDetector detectFromJar
WARNING: No plug-in cmdi metadata file found in analyzer-gloss-0.6.jar
Sep 14, 2020 5:46:29 PM mpi.eudico.client.annotator.util.AvailabilityDetector detectFromJar
WARNING: No plug-in cmdi metadata file found in annotyzer-lexicon-0.6-compound.jar
Sep 14, 2020 5:46:29 PM mpi.eudico.client.annotator.util.AvailabilityDetector detectFromJar
WARNING: No plug-in cmdi metadata file found in annotyzer-whitespace-split-0.8.jar

Much appreciated!

Thanks, this is helpful: you’re working with audio only and the line “INFO: JAVF Media Player” tells me that the default media player is in use (the one based on Apple’s AVFoundation).

At the moment, that player has no implementation of frame forward/backward in case of audio only. Other/older players use an (arbitrary) 40 ms and/or allow the user to set the duration of a “frame”; maybe this can/should be added to this player too, even though “frame” is more a video concept. The pixel and second forward/backward shortcuts (Shift+Cmd+Right and Shift+Right) should work?

I don’t have an explanation for the play selection artifacts you mention; the play selection seems fairly tight on my system. I’m not sure if the encoding of the wav can play a role and/or maybe the length of the file? Do you observe the same problems with shorter wav files? What is, roughly, the average duration of a selection, do work a lot with very short fragments?

Ah, I see. That makes sense – yes, the default frame in previous versions was a really, really useful length to skip for me. Pixel and second forward/back do both work – pixel is understandably a lot slower than what I’m used to, but I’ve been using that as a workaround. When you say that it might be possible to add the skip frame functionality, is that something I can do in the program itself or is that more just thinking aloud with regard to a future version?

I tend to work with longer audio files (anywhere from 1-3 hours) so I don’t have the experience of a shorter file to compare it to. The duration of a selection when I’m working can be between 100-200 milliseconds to a few seconds (very rarely longer than ten seconds, and that’s at the extreme end) – most would probably be somewhere around the 1-3 second mark.

This might be relevant to note, but when I’m using play selection, often the selection will “de-select” even when the cursor is to the right of the original selection (i.e. so I can’t play it over and over any more) and then select a new section (<100ms – I am not sure exactly how long it is, but it’s pretty short) to the right of the original selection instead. I wonder if this might have something to do with where the extra audio is coming from? It happens so frequently that if I just press shift+space over and over I can actually move the cursor forward just by doing that and nothing else.

Thank you again for your time!

I was thinking of the possibility to add the frame forward function to a future version, I don’t think you can do that yourself (unless you download the sources and program it yourself).

From your “de-select” description I guessed that you might have Selection Mode on and after a few tries I could reproduce that behavior. It seems that if the player plays a few milliseconds beyond the end of the selection, that bit becomes the new selection (5 to 10 ms in my case). This can be seen in the "Selection: " label above the Play Selection etc. buttons, the last value is the duration of the selection. This is a bug that seems to result from a synchronization problem.

If you switch Selection Mode off (Cmd+K) before playing a selection, does that improve the play selection behavior (including accuracy)? (I’m not suggesting this would lead to a convenient workflow, just for testing purposes.)

Hi Han,

Yes, unfortunately I think that’s a touch beyond my programming capabilities!

And yes – I use selection mode, apologies for not mentioning this earlier. I tried switching off selection mode as you suggested, and this stops the selection from de-selecting/reselecting which is very helpful for replaying a selection over a couple of times in a row, although it unfortunately doesn’t make a difference to the audio playback. Oddly, when I’m watching the cursor’s movement, from time to time I can see for a split second that it goes beyond the right-most edge of the selection before snapping back to the selection, if that’s relevant. (Edit: with selection mode on, when it de/re-selects, the new selections go up to about 25-30ms for me. Occasionally up to 80-100.).

Switching on/off selection mode also doesn’t make a difference to the audio skips (#4 in my initial message). I’m about to take another look at it to see if I can work out how to reproduce that particular issue. (Edit: I’ve just taken a look, at using control + space multiple times in a row seems to be the thing that triggers it. It doesn’t happen the first time I play a new section, so e.g. if I set my cursor with the mouse or make a selection that way, pressing control + space once won’t cause the audio to skip, but stopping playback with control + space and then re-starting playback with control + space will result in a small amount of audio at the start of the next played section not being played back).

Thanks!

It seems the inaccuracy at the end of the selection is a bit bigger in your situation than in mine. This might depend on the machine and/or on the audio file size. I’m afraid there is nothing we can do about that now. Maybe in a future version some variables can be made customizable for the user, e.g. how often the player checks whether the end of the selection has been reached.

I also don’t know what can be done about a small part at the start not being played, I’m afraid.

For wave files there is the alternative of using the Java Sound Player (via the Edit Preferences window), but I don’t think it will perform better.

Ok, I see. I’ll give the Java Sound Player a try just in case, but if it doesn’t work it doesn’t work. Thanks for your time and help anyway, much appreciated :slight_smile: