PFL and Extra PFL?

I can see that normal PFL allows the user to (for example) set on-the-fly and/or specific cue points (e.g. after spoken intro to a live or musical theatre song); cue points set in this way are then saved as part of the Playlist (a handy thing for show production, right enough!).

I can also see that Extra PFL has the button to actually tag the (MP3) file, as well as a full Player instead of the (if I may say so?) rather horrible and ugly VB3 vintage Gauge control (never thought I’d see THAT control in a new application!).

So my question is: apart from the tagging, and the possibility of using a different PC audio output from the normal PFL, what is the reason for having Extra PFL as well? What is the intended meaning of the word ‘Extra’ in this usage?

Also: the Extra PFL dialog (and mAirListTag) uses a Player object; why does the normal PFL dialog not use a Player?

If the principal reason for Extra PFL is to allow MP3 file tagging, can I politely and humbly suggest that PFL Tagging (or maybe PFL With Tagging would be a better and more easily understood name for this feature?

As always, I welcome the views and thoughts of other users on this issue.


Here’s a little summary of the philosophy of PFL in mAirList.

Normal PFL

Normal PFL is always bound to a player (normal player or cart player). So you can only pre-listen to the item loaded into that player. The main use of normal PFL is to pre-listen to the item which you have already loaded because it is going on air next. Just issue the PLAYER x-y PFL ON command, and the player will go into PFL mode.

If the “Advanced PFL” option is set, you will also see the cue point editor (referred to as “Advanced PFL window”). Which allows you to change the cue points while the player’s PFL is active. There is no player in this window - as it is associated with an existing player somwhere else inside mAirList.

Unfortunately, the file is locked on disk while being loaded into the player, so you cannot rewrite the file tag in that situation. This is why there is no “Save to tag” button, and all changes are only saved to the local playlist.

The output of the normal PFL function can be routed to a dedicated sound card, but most people will set it to the same sound card as the on air output and use their desk’s PFL switch to route the signal to monitoring only. At eldoradio*, pressing the PFL button on the desk will automatically put the player into PFL mode. This makes pre-listening to scheduled items very easy for the presenter.

Extra PFL

Sometimes, you might also want to pre-listen to an item which is further down the playlist without loading it into a player beforehand, or to an item which is currently broadcasted in a player in order to listen to the ending (remember that the “simultaneous PFL and playback” option is brand new and only suitable if you have distinct playback and PFL sound cards defined for that player). This is what Extra PFL is for. It provides a way to pre-listen to any item found anywhere inside mAirList, by opening a window with a newly instantiated “extra” player object, which is then started in PFL mode. Additionally, that window contains the Advanced PFL controls from that player, embedded into that same dialog. In other word: It’s not a cue point editor window with a player, but a player window with an embedded cue point editor.

The Extra PFL operation is completely independent from any other player the item might be currently loaded into, and the output of that player is always routed to the Extra PFL sound card defined in the config.

The Extra PFL dialog does have a “save to tag” button, because the item is not necessarily loaded into any other player (only in the Extra PFL player object itself, but this one is destroyed when you click the button). If you try to save to a file which happens to be loaded in any other player, you will receive an error message if the item happens to be loaded somewhere else.

By the way - there are no VB3 controls anywhere inside mAirList. The Advanced PFL dialog is completely designed by hand. And mAirList is written in Delphi anyway :wink: If you have any ideas for visual improvement of the cue point editor, please let me know.


AH! Now I understand the PFL concepts!

Now I have that understanding, perhaps the ‘normal’ PFL tied to a Player should be renamed (on menu and Dialog Box Caption) as Player PFL, and ‘Extra PFL’ might be better named as Full PFL or (even better!) Independent PFL?

Those names would I think make the intended use and function of the two PFL functions more obvious to a new user (and to some existing ones!).


I’ve been thinking about this one.

First, move the ‘gauge’ to the top of the controls (or to just below the Player in ExtraPFL mode), and move the duration/remain times to the left/right just below that.

Second, extend the ‘gauge’ control to be as wide as possible. Ideally, this should be the same width as the progress bar in the ExtraPFL player.

Third, move the PLAY, PAUSE, and END MON buttons to the space between the duration/remain times.

Fourth, have a means of adjusting the ‘gauge’ in smaller steps. At present, cursor left/right keys move its position by -/+ 1 sec. Perhaps have Shift+cursor left/right key moving position by -/+ 0,1 sec; and Ctrl+cursor left/right key moving position by -/+ 0,01 sec? Or some similar system (exact choice of shift keys is up to you!).

Fifth, it would be helpful for mouse ‘drags’ of the gauge pointer to work the same way: in my example, Shift+drag to move 0,1 sec and Ctrl+drag to move 0,01 sec.

I hope all of that makes sense?

I will think further on this and perhaps post mock-up images here of how my suggestions would make the dialog and ExtraPFL dialog look.


OK folks, here is my suggested new layout for the ExtraPFL/mAirListTag player:

Here are the important points:

  • Draggable gauge extended to entire width. Ideally the ‘drag resolution’ would also change to 0.1s from its current 1s.

  • Elapsed/Remain time shown together, and aligned with all other times.

  • Player controls have a new return-to-zero button, and the PLAY and PAUSE buttons are combined into a single PLAY/PAUSE ‘toggle’ button.

  • Full set of Save buttons.

    CAD (trying to beat the 2.0 deadline… :wink: )

Very nice idea. I will adjust the dialog, with only two small changes:

  • The remain and elapsed time should change places, as the cue values are also displayed in positive (elapsed) time, so it’s better to have all “elapsed” values in one block.

  • Likewise, the PLAY and the 0 button should be switched, for consistency with the 0 buttons below.

The button set is already complete in the latest versions.