Snapshot - Build 996 [*] DB: Added a fix for PostgreSQL 9.x servers [-] Database Logging: Error when using parametrized log variables [-] Encoder: Aircheck stops after 3h22m48s Version 3.1.9 Build 989 (2011-10-30) [-] Event Scheduler: When manually entering a time value that is out of range (e.g. hour: 41), a convert error will occur and mAirList will crash [-] Serial Ports: configuration mixes up Rx and Tx buffer values [*] DB (local): Added VACUUM command to configuration (Advanced tab) [-] When trying Extra PFL on an invalid item, the system may become unstable [+] Debugging: Freeze Timeout can be adjusted in mAirList.ini [-] DB: Playlist navigtion: Popup menu not disabled for restricted users [+] New logging variables: %w (ISO 8601 week), %W (year for ISO 8601 week) [+] Encoder: Ability to use floating point data for recording [-] Possible infinite loop during log variable expansion Version 3.1.8 Build 972 (2011-06-08) [+] New MLPE playlist export file (playlist + files copied to the output directory). Paid editions only, you need to re-download your license file. [-] DB: Tree not updated correctly when moving folders [-] Access violation when inserting files with a disabled SAM4 database connection [+] Aircheck: Added support for 16-bit and 32-bit WAV files [-] DB: Items with multiple artists not handled correctly [+] DB: When deleting items from the database, you have the option to physically remove the files from disk as well [+] DB: Better error messages when trying to access a database with an invalid schema version [-] Application fails to load when a standard action list file is broken [*] DB: Improved loading time when accessing the Unsorted folder [*] Aircheck: Better handling of encoder process errors [-] Link status not updated in automation mode [*] .mpg files regarded as MP2 [-] DB: Mini Scheduler produces non-optimal playlists with large folders and many songs by the same artist [-] Events can be executed repeatedly when internal clock is adjusted [-] Scripting: Include files may not be found [*] Improved performance when importing files through scripts [-] Fixed times not handled correctly sometimes [+] Scripting: Added two new functions: function GetRuntimeData(iKey: string): string; procedure SetRuntimeData(iKey: string; iValue: string); [+] New logging variable %R{Key} to access runtime data [+] Added scripting support for the BassAudio module [-] Encoder: Changing record device multiple times has no effect Version 3.1.7 Build 946 (2011-04-15) [-] Browser rename dialog not positioned correctly [-] Incorrect Hardware ID calculated under restricted user accounts. WARNING: Hardware ID may change on some computers after this upgrade. If this is the case, please contact customer support to reset it. [-] Scripting: Application may crash when using SecondsToTimeValue or TimeValueToSeconds [*] Notification scripts: Final "begin end." added automatically if missing [-] Possible "out of resources" error when using custom playlist item icons which are not in PNG format [-] Powergold playlist import: Error message "Invalid item" [+] Browser: Default browser type (Add button) can be set through gui.ini -> [Browser] -> DefaultClass [*] Selected browser page is stored in desktop and desktop template files [+] Encoder: Additional Aircheck formats: 16-bit PCM WAV, 32-bit PCM WAV [+] M3U import: Ability to set item type using "#mAirList TYPE " [-] Main form can freeze when initialization error messages are displayed (error message disappears with the splash screen, application does not respond anymore) Version 3.1.6 Build 928 (2011-03-18) [*] DRS2006 Import: handling UTF-8 decoding correctly [*] Event list XML uses a more portable date/time format for LastExecution [+] New logging variables %I (item type ID), %J (item type string), %C (comment) [-] DB: Template assignment not fully displayed when using many templates [+] Ability to export playlists in a custom text format [-] Better error reporting when no audio devices are available [*] Encoder screen object: more accurate levelmeter with logarithmic scale [+] New playlist item types: Stream, Container, Command, Break, Dummy (will be set automatically for items of the corresponding class) [+] New action lists: "When entering ON AIR mode", "When entering OFF AIR mode" [+] New action: Execute command via REST [+] New action: Generate database playlists [-] Database actions forget "Database Connection" setting [-] DB: Local storage location cannot be edited by non-admins [-] DB: Error message when closing the configuration dialog as a non-admin [*] Scripting: OnPlayerEOFWarning no longer fired during PFL [+] Added an "Apply" button to all configuration dialogs [-] DB: Error when moving an item into a folder in which it is already contained [+] Encoder: Added title update delay option for Shoutcast and Icecast [+] Logging: Added title update delay option for Shoutcast and Icecast [+] Scripting: Added MidiOutOpen, MidiOutClose, MidiOutSysEx [-] FLAC and OGG: Artist determined from filename is kept when reading file tag [-] MIDI: Fixed memory leak [+] Notification Scripts: Added procedure OnMidiSysex(Device: integer; Data: string) [*] DB: Slight changes to CSV export format [+] DB: Added import of generic CSV files [-] Encoder can hang in VirtualBox XP guests due to a bug in VirtualBox [+] Playlist items: New field "External ID" (can be used to store IDs or "cart numbers" from external software like music schedulers) [+] DB: New option "Use external IDs for import and export" [+] DB: Library sort column and order is preserved between sessions [*] DB: Updated schema to version 16 [+] New USB dongle licensing support based on SglW32.dll [+] New logging variables %U (internal/database ID), %V (external ID) Version 3.1.5 Build 889 (2011-02-02) [-] Audio not stopping when pausing Containers with Start Next cue points [-] REST: "Could not bind socket" message when turning remote off and on again [*] Better logging of exceptions in notification scripts [*] BASS buffer size can be set separately for each device and the encoder [+] DB: Ability to import and export hour template assignments [+] DB: Library columns can be rearranged and turned on/off [+] New commands: PLAYLIST x RECYCLE ALL, PLAYLIST x SKIPTOHERE [-] DB: Error message when closing Sync dialog with no folder selected [+] DB: Last/next use of each item displayed in library [+] Database browser and database playlist browser support "Refresh" button [+] Database browser and all playlist table views: Enabled incremental search [-] DB: SQL transactions not handled correctly [+] Scripting: Added IDMAXRemote.SetGoStatus(iFader: byte; iStatus: boolean) [-] Mixdown: Integer overflow error when processing long items [+] Support for reading album art (front cover) from ID3v2 tags [+] Static Text screen object: Added "execute command when clicked" option [+] Button screen object: Added font changes through remote commands [+] New commands: PLAYLIST x EDIT (opens Properties dialog for item at cursor), PLAYLIST x EVENTS (opens event scheduler) [-] ASIO Configuration: Range Check Error when no ASIO cards installed [-] REST passwords lost after restart [+] BASS config: ability to configure network connection and read timeout [+] Stream playback: stalling and interrupted streams are detected much better [*] DB: Template Assignment grid columns adjust when form is resized [*] DB: Library view is refreshed when Synchronization form is closed [-] DB: New folders are displayed twice after adding them [*] Icecast mount points can be specified with or without leading / character [-] Database playlist browser content can be edited [+] Added file import option: Import artist/title from filename if no tags exist [-] Freeze when using ShellExecute in scripts run from events [+] Updated BASS to version 2.4.7.0 Version 3.1.4 Build 854 (2010-11-28) [-] When removing a Quick Folder, it reappears in the config after restart [-] Playout window comes to front when a message dialog appears in the database management window [-] GUI may freeze when SQL logging server is unreachable [-] Some file tags not processed correctly [+] DB: Ability to import SAM4 metadata through CSV export files [+] DB (networked): New user level role "folder manager" (is allowed to create and delete folders and move items around) [*] Playlits item colors displayed in all text-based playlist tables [+] DB: Ability to display playlist item colors in library table; for items imported prior to v3.1.4, you might have to edit and save the item in order to make its color visible [+] REST: Support for multiple user accounts; anonymous access must be explicitly switched on now [-] Fixed memory leak in HTTP calls [+] Support for ID3 tags in MP2 files [-] DB: Possible Access Violation when adding new folders [+] Added support for changing item colors through Mass Edit [-] DHD RM4200D/Series 52: No data received when using TCP [-] DB (local): Storage description not updated when changing location [+] Introduced HTTP POST Log interface [+] REST: Encoder title update (POST /encoder/streamtitle, "title" parameter) [*] License Manager: Support for license activation based on Hardware ID Version 3.1.3 Build 831 (2010-10-25) [!] DB: Updated schema to version 15 [*] Debug Mode: Bug reports are automatically saved to data folder [-] DB: Attributes lost when saving customized item [-] DB: "Errors during initialization" displayed when opening database management window from the playout GUI [-] Pre-defined attributes not displayed in Edit Playlist Item dialog [-] VST Plugin parameters not restored from config [+] ReplayGain information in MP3, OggVorbis or FLAC files can be imported as amplification [*] DB: Synchronization dialog no longer modal [+] Support for importing Simian-style INFO tags from WAV files [*] Hotkey config: changed caption from "Key" to "Shortcut" for disambiguation in language files [+] REST: Added "Playlist read access" plugin [+] DB: Ability to store containers (built of other DB items) in database [*] DB: Edit item form no longer modal (to allow container editing) [*] Mini Scheduler: Increased performance when dealing with large folders [+] DB: Added Title Separation (for different items with the same title) [+] Database Search browser: Added search history dropdown [+] New browser option: "Keep search history" [+] New browser option: "Enable autocompletion for search history" [+] New log variable "%y" (year in two-digit format) [-] Time adjustment applied twice for various actions [+] Encoder connections: New option "Do not stream, only count listeners" [+] DB (networked only): Ability to import/upload files into storage and DB [*] Logging now takes place in a background thread so it won't affect playback [+] Scripting: New function _FindFiles(iPattern: string; iRecursive: boolean): IStrings; [+] DB: New dialog "Folder Properties". Ability to specify the ID of an opener and closer jingle which will be inserted by the Mini Scheduler each item an item from this folder is scheduler [-] Main window cannot be restored again after being maximized [+] DB: New Mini Scheduler options: "Abort scheduling when no matching item can be found for a slot", "Suppress errors and warnings for optional items" [+] DB: When the first character of an attribute filter value is "~", the Mini Scheduler will look for the remaining part as a substring Version 3.1.2 Build 798 (2010-09-20) [*] End Mon duration is now specified in seconds and can be greater than 32 [+] Improved "auto-truncate time" option. You can now insert a "!" character to specify the minimum number of characters to remain in the final string. If a "!" sign is used, the truncate function will not only remove leading "0" characters, but also ":" and "." characters. [+] Playlist: ability to specify separate time formats for ramp and EOF overlay [*] Playlist: Removed GUI option "Display a minimum of two digits when truncating time" [-] Browser: Refresh doesn't work for first open browser [-] Playlist: EOF Warning overlay not displayed in certain configurations [-] Non-infite stream items never reach EOF when faded out manually [-] Cartwall: No sound when restarting after fadeout (ASIO and software mixing) [-] Cartwall: Player doesn't accept drag&drop when paused [+] Ramp/EOF overlay: A 2 pixel white outline is drawn around the text to improve readability. The color and width can be adjusted through skin.ini (OverlayOutlineColor, OverlayOutlineWidth). This feature is mutually exclusive with the OverlayBackgroundColor setting. [+] Appearance of all list/tree-style browsers can be changed trough skin.ini: BackgroundColor, FontName/FontSize/FontColor/FontStyle, NodeHeight, plus several colors (TreeLineColor, FocusedSelectionColor etc.) [+] New option "debug mode". Turns on a detailed reporting of some errors that would usually only be displayed in the system log. [+] Notification scripts: Added procedure OnPlaylistChange(PlaylistIndex: integer) [-] SAS over IP: mAirList may freeze when network connection is lost [*] Notification scripts running in a background thread [+] Serial port transmission may freeze when used from events, actions or scripts [-] Database search: Stop button doesn't change caption back to "Go" when search is done (intermittent) [-] When "only one instance" is enabled, and you run the application icon twice, the main window cannot be minimized or closed anymore. [-] Access Violation when running Layout Designer with a detached Cartwall [+] mAirListDB local: Ability to specify a "synchronous" setting for increased SQLite performance (and increased risk of data corruption) [-] Encoder: Some VST plugin editors not displayed correctly [+] mAirListDB: New option "Show Database button in playout window". If enabled (default: yes), a "Database" button will be displayed in the mAirList main window which will open/close the mAirListDB management window which can be used as an "advanced browser". For the networked mAirListDB, the default login will be used. [-] Various lists: error message when moving multiple items below the end [-] VST plugins initialized twice on startup [+] Mixdown: Warning message if some items are not suitable for mixdown [-] mAirListDB: Cue Data not stored properly [-] mAirListDB: Added support for exporting to Raduga album and rotation files (Professional Edition only) [+] New commands: ENCODER LIVE ON, ENCODER LIVE OFF, ENCODER LIVE ON/OFF, ENCODER CONNECT, ENCODER DISCONNECT, ENCODER CONNECT/DISCONNECT [*] Updated BASS to version 2.4.6.0 [*] Updated BASSenc to version 2.4.7.0 [*] Updated BASS_FX to version 2.4.6.0 [*] Updated BASSmix to version 2.4.4.0 Version 3.1.1 Build 764 (2010-08-04) [-] "List index out of bounds" error may appear when trying to save playlist [-] Phantom items when dragging the same items from Database browser twice [-] GUI may lag behind when playlist is very long [-] GUI performan issues with long [*] Only the most recent 10,000 entries are kept in the System Log (value can be tweaked in mAirList.ini, section "SystemLog", key "Limit") [-] Screen object border color setting not written to config [-] Browser toolbar disappears when setting List=on in skin.ini [*] Improved import of Vorbis Comments (for OGG and FLAC files) [-] "Invalid floating point value" error may appear when loading playlists created on systems with different Windows locale [-] Cartwall position from layout.ini ignored when in its own window [-] Minor bugs in Mini Scheduler song selection algorithm [+] New file import option: "Import Date in Vorbis Comments as Year" [-] SAS: Access Violation in action properties dialogs [-] Mute/unmute mixer channel: Range check error in action properties dialog [-] Action list "Save" button does not work in various dialogs [-] Player reset button not hidden during PFL Version 3.1.0 Build 750 (2010-06-27) UPGRADE NOTICE: You can import your existing v3.0 configuration by copying all files from the root data folder (see "Data Folders" page in mAirListConfig) into the new v3.1 directory. Detailed upgrade instructions can be found here: http://www.mairlist.com/blog/2010/05/mairlist-3-1-beta-1-available/ Changes from mAirList 3.0 (pre Beta 1) [+] DB: Scheduler supports track and artist separation [+] DB: Non-database items can be added to playlists [+] DB local: Storage locations can be changed [+] DB networked: A local playlist cache is used in case of database failure [+] DB networked: Ability to import (m3u) playlist files created by external software [+] Notification Scripts: Added OnMidiMessage [+] Added HTML playlist export functionality [*] "PLAYER X-Y VOLUME xx" command expects a dB value now. Alternatively, use "PLAYER X-Y VOLUME xx%" to specify a linear value in percent [*] Scripting: All internal volume values now in dB [*] Improved Layout Designer [+] Encoder supports multiple server connections [+] Encoder supports VST plugins for sound processing [+] New "Button" screen object [+] M3U import: FIXTIME affects subsequent item rather than inserting a dummy [+] M3U import: "#mAirList COLOR " to set color of next item [+] New standard action list "When playlist runs empty during automation" [+] Re-enabled the database scripts feature from v2.2 [+] Encoder can write into MP3 or OGG files (Aircheck) [+] Encoder screen object: new option "Show audio level when offline" [+] DB networked: separate setup login for initial setup and upgrade [+] DB networked: multi-user capabilities with different user levels (admin, manager, DJ, studio, read-only) using PostgreSQL roles [+] DB: Internal playlist log (currently not accessible through GUI) [*] DB: Updated schema to version 12 [+] DB: Powergold import/export (experimental) [+] Notification scripts: redesigned configuration page [+] Notification scripts: Removed OnStartup/OnShutdown, added OnLoad/OnUnload [+] Shoutcast/Icecast encoder: ability to set public/private flag [+] Support for DHD RM4200D and Series 52 remote control via TCP or serial port [+] Main Window: New "Control Panel" dialog in the Action Button menu which can be used to configure the following parts at runtime: Encoder, Logging, Remote Control, Notification Scripts [+] Stream playback: ability to specify a timeout after which playback is stoppend when the stream connection has dropped and cannot be re-established [+] DB: Ability to change item type by drag'n'drop into the browser tree [+] New option "Use Outro marker for EOF warning" [*] Remapped shortcuts for Copy/Cut/Paste to Ctrl-C/X/V [+] DB: MusicGen import/export [+] DB: ability to export entire library, current view or current selection [+] Encoder: Support for joint-stereo MP3 streams [+] Encoder: ability to specify extra command line options for encoder process [*] DB (network): Slightly improved performance for slow connections [+] File import: ability to specify a default item type [+] Mass edit function in playlist and mAirListDB management application [+] The SOAP interface has been abandoned in favor of a more simple REST-style remote interface. [*] Scripting: Renamed ExecuteCommandRPC to RESTExecuteCommand [+] REST remote interface (work in progress) [+] DB: Item type displayed in browser [+] Mini Scheduler: Ability to import/export hour templates [+] Player: Added "Reset" button [+] DB: ability to import item data from a DRS2006 v3 database dump [+] Logging: Specify which items types are to be logged for each interface [+] New option: Enable remote interfaces in mAirListTag and mAirListDB [*] Browser: "Save within desktop files (.mld)" now enabled by default (Beta 1 to Beta 2) [+] Encoder: Item type filter for title update [+] DB: Added playlist export functionality [-] Event scheduler: Last execution time not recorded properly [-] Container playback: next item doesn't start at fade out in automation mode [-] Encoder title update sent even if logging is disabled [*] NoLogging flag set automatically for Hook Containers [-] Properties dialog: duration displayed in 12-hour format on English systems [-] DB networked: PostgreSQL exceptions when dealing with large datasets [*] DB: Improved performance when moving or deleting items [-] Error when automation is activated while all players are in LOADING state [-] "Load database playlist" etc. actions insert a dummy when playlist is empty and fixed time option is set [-] DB: Error message when manually adding items (streams etc.) to a folder (Beta 2 to v3.1.0) [-] REST command execution not working [-] Stream playback: Incorrect interpretation of the timeout setting [-] DB: permissions for mairlist_admin not set correctly [-] Play/insert stream actions: infinite/duration setting processed incorrectly [-] Fixed times not handled correctly across date boundaries [*] Optimized handling of playlist item icons [-] Fixed a few memory leaks in the GUI [+] New playlist context menu command: Skip to here [-] Mixdown: incorrect cue sheet syntax [-] IO-Warrior 56 may not be detected correctly [+] Scripting: support for file names relative to "RunScript" default directory [+] Scripting: support for include files: {$include filename.mls} [-] Desktop save confirmation not working [+] DB: Artist and title of playing item displayed in PFL player tool tip [+] Mixdown: Ability to specify item types to include in cue sheet