REVISION HISTORY -------- ARSuite 3.0.0 ------------------------------------------------ (general) - Updated installer script for OS 10.5 through 10.6 only support. OS 10.4 or ealier is no longer supported - Recompiled, and relocated in the arserver directory, libdbi library components for Intel (FAT 32/64 bit addressing) and linked agains libmysqlclient re-entrant library - Old libdbi libraries still kept until ARStudio and ARManager can be recompiled (arserver 2.0.0) - Compiled for Intel 32 bit addressing. Tested to compile in 64 bit addressing too, but sticking with 32 bit for release - Fix all (more than I can count) OS 10.6 incompatibilities. - elimintade inode file location ability... OS 10.6 no longer supports it. This will get re-writen at some point in the future. - new Varispeed phase lock loop used for all device syncronization: AIX player, Input Player, Slave Output Devices. - Remote Feed auxillary channel for cue monitoring and talkback to the studio implemented. - Eliminated all QuickTime API usage. All audio file playing and recording now handles by CoreAudio ExtAudioFile API. - Reworked launching algorithm to deal with some new OS related bugs. - Corrected endian handling for floating point notification packets. (ARStudio and ARManager unchanged) -------- ARSuite 2.9.6 ------------------------------------------------ (general) - Installer check OS version to perform the proper user/group creation method. - For OS 10.5 only, a new version of the libdbi library and mysql driver is installed which properly supports database access in concurrent threads. (arserver 1.9.6) - Fixed countless, major, OS 10.5 incompatibilities. - Fixed handling of audio devices that have UID names with spaces and tabs. - Fixed (recompiled apple script) ServerStartup Enable and Disable scripts. - added m4a (AAC) audio file recording capability. - Reworked IAX VoIP system: can now require authentication to accept calls - Reworked IAX VoIP system: added supports AAC coded for high quality mono and stereo VoIP feeds. (NOTE: VoIP is now broken under OS 10.4: Sorry, I have no plans to fix it) - Fixed a URL text encoding problem that caused files with non-ascii text in their file path to not load. - Fixed a bug where the default player bus settings were ignored with Monitor and Main always being used. (ARStudio 3.1.1) - OS 10.5 compatibility related bug fixes - Uses database mount, MD5, and inode properties to find file URLs when copying/draging between applications. - Added arserver m4a file recording User Interface - Added a "Stash" window to locally store (drop/paste) items you browse across and want to put (cut/copy/drag) in the playlist queue or a play later. - Fixed an Effects window bug: Selecting a new effects stack now clears the old control from the window as soon as the new stack is selected. - Added UI for ARServer VoIP authentication settings - Added a "Remote Feed" window and VoIP subsystem to "call-in" to an ARServer instance via a network connection with bi-direction, high quality, mono or stereo AAC encoded. The connection can be either via the IAX protocol, or via a tunnel (to get through firewalls) through the existing ARStudio to ARServer control connection. (ARManager 3.1.1) - OS 10.5 compatibility related bug fixes - Uses database mount, MD5, and inode properties to find file URLs when copying/draging between applications. -------- ARSuite 2.9.4-5 ---------------------------------------------- Unreleased development versions - mostly OS 10.5 compatibility fixes -------- ARSuite 2.9.3 ------------------------------------------------ (arserver 1.9.3) - Major low-level changes in support of AudioUnit effects related to GUI support in ARStudio and fixed problems found while testing. - Added system processor load metering for use in the ARStudio Effects GUI. - Reworked player lock system such that each player has it's own lock allowing for more responsive realtime player control. - Fixed a "savein" and "saveout" command bug which caused a crash when the in/out name field of the command was blank. This bug revealed itself in ARStudio when saving and renaming a newly created input or output group in a single step. - Added support for reading .m3u and .pls formated play list files to the existing AudioRack native .fpl file format - changed the default core mixer buffer size from 1024 to 512 samples... more than 512 samples causes problems with some with some audio hardware when the core mixer is running at less than 96 ksps. You can use the -d pre-config option in your startup.conf file if you would like to make the buffer size different from the default. (ARStudio 3.0b8) - Added a user interface for AudioUnit effects. - Fixed an initialization bug that caused a startup crash under OS X 10.5 - Made automatic connection to last used arserver and option at startup. - Second arserver session connection implemented for non-blocking player commands: more responsive realtime player control for things like control surface faders, starting, stopping, etc. (ARManager 3.0b4) - Added support for importing .m3u, .pls, and iTunes .xml formated play list files to the existing AudioRack native .fpl file format - Fixed an initialization bug that caused a startup crash under OS X 10.5 -------- ARSuite 2.8.2 ------------------------------------------------ (arserver 1.8.2) - Finished and tested support AudioUnit effects. There is no GUI support for this yet in ARStudio; AU effects must be manipulated through an arserver control session (The Console in ARStudio). See the new AudioUnit section at the end of the arserver commands in the appendix of ARGuide documentation, or by typing "help" for a command list in an arserver control session. - Re-worked the recorder/stream encoder for AU support and to fix a mp3 stream lockup bug. - Fixed a long standing, but previously unknown stream encoder bug where two encoders running at the same time interfere with each other. - Fixed a bug that caused an entire rotation to be added to the automation queue where a certain database error is encountered, rather than adding item from the rotation one at a time as needed. (ARStudio 3.0b7) - Fixed a MAJOR bug that prevented the arserver settings panel from editing arserver outputs properly. - Fixed a bug that caused ARStudio to crash when items are dragged out of a Program Log. - Fixed a minor Browser search field bug. (ARManager 3.0b3) - Added the "File Location Syncronize" tool. This is a user friendly, GUI based version of the dbSync command taht used to be available only in an arserver session. - Fixed a Item Save bug that set an empty script to "0" instead of being empty. -------- ARSuite 2.8.1 ------------------------------------------------ (arserver 1.8.1) - Started adding code to support AudioUnit effects, although it's undocumented and incomplete at this point - Added a OID (output ID) property to output distributers in support of the above - Modified UID generation limiting it to the lower 24 bits of a 32 bit intenger, again in support of AudioUnit code - Added mount list searching to the URL portion of the Library file location algorithm. - Fixed ID3 tag reader to handle UTF16 encoded strings (ARStudio 3.0b5) - Fixed a recorder bug where mp3 sample rate other than 44.1ksps were ignored - Modified the arserver interaction code to handle the OID property added to support AudioUnits (ARManager 3.0b2) - Added the ability to set custom properties to albums, artists and categories as well as items. -------- ARSuite 2.8.0 ------------------------------------------------ (database structure) - Now uses innoDB MySQL table types for ACID compliant (transaction safe)editing of the database. This ensured that if data entry or modifications can not be partially completed - either all data is added/modified or the original data is left unchanged. - Added a added date field to the category_item tables to stamp when an item was added to a category. - Added some new, useful saved queries to the default list. - moved the file_mount_list property from arserver into the database info table so ARManager can access/use the same settings as arserver. (arserver 1.8.0) - Forced all category, folder picks to use the ar_logs_time index: faster - Fixed folder pick crash (GetFileMetaData() -> SetMetaData() -- NULL error??) - Add expand command to expand a playlist - file:/// no longer resolve Fingerprint and MountList if the file is in the database too - crashes when no database is available - Store recorder default directory in settings - dbinit now checks for [!loc-id] and [!prefix] converting them into [loc-id] and [prefix] rather than expanding them - Changed watchdog timer: now lives in launcher fork and uses "kill(child, SIGKILL)" - time-out items no longer remain in metalist blocking automation filling. - Added Silence watch-dog timer - Change MD5 file ID algorithm so silence at start doesn't create duplicate (non-unique) signatures. Note: old library databases should have dbsync run on them to update the MD5 signatures. (ARStudio 3.0b5) - Fixed null appendString (trapped) for Name property on listManager - Fixed memory leak (on player deallocation) - Prevented sending of duplicate queued commands - Fixed Hangs (with 1MB/second memory increase) on GetInfo from List's history - Fixed Queue time non-zero for empty queue. - Fixed Browser item property loading thread has no autorelease pool in place! - Fixed History and Log drop is ignoring ID. - Fixed drag-in/paste-in to cueue: check Fingerprint NOT db name - Recall recorder default director from arserver settings - add UI to auto_live_timeout arserver setting - Add checkbox option to start arserver if server is local - Fixed PlayerFade/hang nib deallocate (ARManager 3.0b1) - First stable beta release: no known bugs that would corrupt library data, etc. - Several planned management functions have not yet been implemented, nor the use of databases other than MySQL. -------- ARSuite 2.7.8 ------------------------------------------------ (arserver 1.7.8) - Added expand command to expand a playlist - Added restart command - Multiprocessor crash fixed - Recorder playlists were logging items ahead of time record start bug fixed - Manager won't insert new fills when a finished item is at the top of the list fixed - Change StartupItems disable by renaming arserver file to .arserver - rmutex locked & recorder stop sending... although timer keeps running bug fixed - Added iaxstream undocumented command for tunneling upd IAX packets through an arserver tcp control session (SSH tunnel too if used)... this is a step towards adding live feed capability to ARStudio. Check out IAXtunnel project for an experimental application to redirect on the remote end. (ARStudio 3.0b4) - sync tasks broken into segments - Added Server Log view - Hangs on arserver change some times when using SSH bug fixed - Log not always clearing on arserver change bug fixed - SSH tunnel closes after each SQL query connection close bug fixed - Slow load of item properties bug fixed - Added delay control window - Added script views - Added Browser history - server-sync and triggered updates in thread off of main - Copy & drag from library crashes on remote with SSH only bug fixed - Input settings: not saving Mute Group Checks bug fixed - Recorder set up time limit and bus set incorrectly bug fixed - Can't uncheck output channel selection (input too) bug fixed - Control surface faders slam down bug fixed - Not remembering if the Queue and Browser window is hidden bug fixed - Database change: Item Properties and Categories doesn't clear bug fixed - Server Prefs: Output and Input delete button doesn't work bug fixed - Why no sync right after connection bug fixed -------- ARSuite 2.7.6 ------------------------------------------------ (arserver 1.7.6) - New VU meter system: more network efficient with recorder meter support. - VoIP player crashes on reload fixed. - VoIP player meters stuck when stopped fixed. - Volume range in MIDI doesn't match actual value fixed. - "Playlist Start" log error fixed. - Added "lock/unlock" to recoders to prevent user changes. - Added optional script execution via "sys_log_script" setting to running an external program when ever item starts playing. - Added "file_mount_list" setting to specify multiple places to look for disk mounts when doing a file search. Added /Networks/ to the default search path. - "daemon" mode now works with StartupItem support to run arserver outside of a user account at system boot time. (ARStudio 3.0b3) - Hour colon missing on some timer displays fixed. - SSH tunnel lockup fixed. - Cue reload/sequencing bug fixed in Library Browser. - SSH tunnel now handles "localhost" for server MySQL setting. - Added recorder/stream encoder interface with VU meters. - Added Program Log viewer with drag and drop functionality. - Added "Target Time" to viewable queue item properties. -------- ARSuite 2.7.5 ------------------------------------------------ - ARSuite now uses the new 0.8.2 release of libdbi and the libdbi MySQL driver library! This libdbi update has statically linked MySQL drivers, so the MySQL client libraries are no longer needed and will not be installed. There are also a bunch of bug fixes by the libdbi team, and it works fine with MyQSL 5.x! - I have included a second beta of the new Cocoa/Objective-C based user interface: ARStudio3.0 beta 2. The installer places it in the Application folder along with the AudioRack2.7.4. This new UI has fully implemented the playlist control with drag/drop/cut/copy/paste/run/automation/timer ability, new library browsing, playlist saving, and midi control surface support, and in this beta most of the mixer functions, including vu metering. You can also edit song information by double clicking items in the queue or in the mixer. Editing will effect how the item lists in the log and stream tags, but does not change the items information in the library or file meta data. I also added the ability for connections to a remote arserver to be tunneled via an SSH gateway. This allows you to use an SSH account on a machine that is accessible through a firewall to bridge both the arserver connection and the database connection through the firewall with encryption. For this to work, the SSH account must be able to see both arserver and the database, and the database settings on arserver must be set up such that the settings result in a reachable database connection from the SSH account: Don't use "localhost" as the database host address unless the SSH account, arserver, and the database server are all running on the same machine. I have not yet added support for the broadcast delay, recorders, logs, and such but this is a work in progress! I would appreciate any feed back on the user interface as it is a bit different and recommendations from users are easier to implement now that later once I get further along on the porting. (See my email address at the end of this file.) - More changes to arserver's notification system in support of SSH tunneling: all notices are not multiplexed into the TCP/IP control connection stream. - arserver can now have the player count and output bus count set at run time via -i (matrix stereo input count) and -o (matrix stereo output count) parameters or in the pre-configuration section of the starup config file again using -i and -o flags... this used to be set at compile time. - Fixed a few more memory areas that needed to be mlocked that I had missed previously - helps eliminate virtual memory related audio drop-outs. -------- ARSuite 2.7.4 ------------------------------------------------ - I have included a beta of the new Cocoa/Objective-C based user interface: ARStudio3.0 beta 1. The installer places it in the Application folder along with the AudioRack2.7.2. This new UI has fully implemented the playlist control with drag/drop/cut/copy/paste/run/automation/timer ability, new library browsing, playlist saving, and midi control surface support. I have not yet added support for the mixer, broadcast delay, recorders, logs, and such but this is a work in progress! I would appreciate any feed back on the user interface as it is a bit different and recommendations from users are easier to implement now that later once I get further along on the porting. (See my email address at the end of this file.) - More changes to arserver's notification system in support of the above. - added endian checking to arserver in expectation of getting a universal binary version out soon. - Fixed a bug in AudioRack which prevented playlists from being edited. -------- AudioRack 2.7.2 ------------------------------------------------ - Added "event notification" for deleted items in support of a new client application. - Fix handling of "Bad playlist data" to prevent crashing. - Fixed a Firewire audio interface slave synchronization problem. - Added an "attach" command: same as execute, only i/o is directed to the tcp control port that issued the command. - split command child now inherits priority level from parent. - Shoutcast encoder now check for connection prior to posting track information. - arserver command type task now accepts multiple commands separated by CR. - Request table now has ID field and index for faster queries. - Located another multi-processor support bug: this time in Apple's CoreAudio DeferredRender AudioUnit. A bug report had been filed with Apple, and until it is resolved, multi-processor support for audio rendering has been disabled. -------- AudioRack 2.7.1 ------------------------------------------------ - Added "event notification" support for input and output VU meters in support of a new client application. - Fixed a bug where closing a recorder that is waiting for a timed start causes arserver to hang. - Added support for dividing the audio mixing workload across multiple processors, if available, on a player by player basis using Apples Deferred Render AuadioUnit - previously, mixing would only make use one processor. This feature is only enabled if more than one processor is detected on the host computer. - Added GUI for setting up the IAX telephone. - Fixed a bug causing IAX telephone callers to only be in the left channel. - Fixed a "double memory free" that _sometimes_ caused a folder pick to fail. - Fixed the outnames and innames functions for getting audio device channel names if the device supports it. AudioRack now uses these names in the arserver input and output settings panel if an device makes them available. - Fixed the problem where you had to wait a minute after shutting down for the control port to clear before that port could be reused by running arserver again. -------- AudioRack 2.7.0 ------------------------------------------------ - arserver no longer crashes if you try to access a file on disk that is not mounted (if you forgot to mount your remote audio disk for example) and then mount the disk and try to access it again. - Bug fixed where AudioRack would sometimes hang after launching arserver (parent would not always disconnect after arserver forks). - Added a "Re-run last played" option for folder pick tasks - Added AudioRack GUI options to force joint-stereo, and normal-stereo encoding for MPEG 1 - layer 3 recording and streaming. - Scheduling behavior change: Priority > 5 will now override other scheduled items of a lesser priority, not just get scheduled to play ahead of them. - Bug fixed where split items (used internally to replace a pick-task in the playlist with the actual picked item) would lose fade-out times. - Bug fixed where opening database playlist tasks would no get deleted from the task list when finished. - New Notify event system implemented in preparation for developing a new GUI client. Notify events now include changes in meta-data, recorder status, playlist items, etc. This eliminated the need for a client application to poll arserver for status changes of any kind. Instead, arserver will notify client when a change has been made and the client can then request request updated information via new 'pstat', 'rstat', or stat commands. The old polling approach is processor and network expensive! The old 'status' command has been kept for backward compatibility with the existing AudioRack GUI. - Re-wrote the MidiClient control surface program to make use of the new arserver notification events. I expect this program to evolve into a new GUI. - Added new 'segnow' command which forces the currently playing playlist item to fade out and the next playlist item to start playing. - New IAX VoIP player. This adds a multi-line VoIP phone system to arserver for placing callers, interviewing phone guests, and remote events on the air. The IAX phone player includes an automatic mix-minus feed back to the caller from any of the arserver output busses. See the 'Telephone' readme file for details. - Created a nifty little EAS Logger program to meet FCC (in the U.S.A.) requirements for logging Emergency Alert System tests and event. This program logs EAS events received from an EAS system through a serial port into the AudioRack logs. - Discover why I can't compile as a universal binary: libdbi library needs to be universal binary too. Since libdbi is not an Xcode project, this could be a bit more work then I want to take on, so Intel Mac folks will have to run audiorack in emulation, which I hear works fine, until I get an Intel Mac. -------- AudioRack 2.6.3 ------------------------------------------------ - Added a new option to folder picks allowing sequential pick's to start over again when they reach the last file in the folder. - Fixed a few small UI mistakes (labels in the wrong place) in AudioRack. -------- AudioRack 2.6.2 ------------------------------------------------ - Fixed a bug where SOME audio input devices would SOMETIMES return a negative sample time number the first time they pass sample to arserver. This would crash arserver. I now check and handle negative numbers accordingly. - Added associated play list support back in and created an option for recorders to create the associated play list as they record to files. Associated play lists are file play list that go along with an audio file (audiofile.mp3.fpl for example) such that arserver will log all the songs that were played in the audio file as they play. - Added Fill Spillover schedule deletion: If, due to a user stopping the play list for example, items are filled past the end of there fill time, they will be deleted and replaced with fill items from the correct rotation for the time. - Added direct monitor support and a UI to set it up for audio devices that support it. Note- This has not been tested since I don't have any such devices, but as soon as I get one it SHOULD work... And I want one really bad for zero latency mic monitoring in headphones! This feature should be used with the monitor mix minus feature such that the device is set up for direct monitoring if the desired input to the headphone output and the headphone output is set up to mix-minus the desired input from it's mix. arserver would then pull just that input from the headphone output and let the device itself mix it in via direct monitoring. -------- AudioRack 2.6.1 ------------------------------------------------ - Redesigned the mixer system: no longer using CoreAudio's MatrixMixer, allows for mix-minus and runs about 40% faster than previously! - Added "Pass-through" mixer mode where player outputs are pass directly through the mixer to a corresponding output bus. - Added independent Monitor Mix-minus of any/all inputs for each output definition - used to remove any line inputs from a particular outputs monitor mix with out effecting the monitor mix as a whole. - Added support for reading ANY file meta-data (mp3, mp4, m4u, aif, etc.) supported by QuickTime 7 using the new QT7 metadata API. - Redesigned the File Player engine to use the new QT7 audio extraction API: Breaks the old 64 ksps, 16 bit limit! - Added "Intro" time property to database and AudioRack, with associated MegaSeg import ability. - Fixed an mlock problem with the master mixer buffer... it now locks and won't drop out when memory gets tight. - Modified the handling of program logs in the database for more efficient storage size and less confusing structure. - Added a new "split" command to arserver allowing a task to add an item to the playlist while inheriting the tasks schedule properties. - Fixed an AudioRack TCP session connection to server timing bug that rendered it useless on some computers. - Fixed a few automation and schedule insert bugs. - Added an independent default seg-out time property for folder pick tasks, which can be set differently for each folder. - Changed the handling of mutes: now performed in outputs audio render thread. - Fix an input source recorder bug that some times would crash arserver due to turning on the input source prior to the render variables being fully initialized. If the source callback was just happened by chance to be called prior to finishing the initialization a crash would occur. -------- AudioRack 2.5.5 ------------------------------------------------ - Fixed another MegaSeg import bug which caused all the segue times to be off by 60x! - Fixed a bug where time scheduled items longer than 10 minutes would get faded. - Root user support still experimental! -------- AudioRack 2.5.4 ------------------------------------------------ - Fixed a mutex/lock bug that caused a weekly lockup... had to write my own locks since pthread rwlocks on OS X used write before read causing my deadlock problem. arserver is now stable and out of beta. - Attempting to switch to universal binary format (still only createin PPC code for some reason), and compiled with optimizations turned on for smaller/faster code. - Checks for a script file