§ September 13, 2022 – 2.10 (C++ Version) Added owner-draw color listbox items. Two new classes PlaylistHelper.cpp and FileCache.cpp. Changes and improvements to list drag-drop and overall behavior of file-caching and playlist functions. § September 5, 2022 – 2.08 (C++ Version) Fixed bug in SMList.cpp. During a list-sort, after deleting a song's cached file, the cache-number was not being set to zero. § September 2, 2022 – 2.07 (C++ Version) More tweaks to a list-form's popup menu. Fixed some things related to showing of flashing select-bar and how song-queuing shows in a list. § August 30, 2022 – 2.05 (C++ Version) Fixed issue with list auto-jumping to selected item. Added menu sorting options. § August 26, 2022 – 2.04 (C++ Version) Replaced custom directory and file-save dialogs with standard Windows dialogs. Discovered that calling the Close method for the custom file-open dialog was causing an exception to be thrown in some situations. Fixed. § August 25, 2022 – 2.03 (C++ Version) Improved custom multi-select dialog that selects both files and directories. (NOTE: still runs on old Windows XP, but the open-file dialog won't look pretty...) § August 19, 2022 – 2.01 (C++ Version) Improved Play-Preview feature described below... added change in FormOFMSDlg that includes InitCommonControlsEx from the Windows common controls DLL. § June 28, 2022 – 1.99 (C++ Version) Added a new feature, "play-preview". Click a song-list. Press and hold the CTRL key. As you move the mouse from song-to-song, it plays. Press the SPACEBAR to toggle checked/ unchecked status. Now you can click Player>Export Playlist. In the last dialog, select Checked Songs Only and a sub-list, perhaps a "best-of" list, will be created. Also, Options->Help now is self-contained. It does not link to my web-site. Instead it writes the html help file to your computer's temporary folder and then displays it using your default web-browser. (just in case this site goes away some day... Oh My!!!) § February 16, 2021 – 1.96 (C++ Version) Fixed bug in Export Song-Files and Lists. It was using the song's title tag from the list-box instead of the file's path which is now in an associated data-structure. § February 14, 2021 – 1.95 (C++ Version) Fixed bug when Cancel is pressed during Export Song-Files and Lists. It failed to cancel in the select-directory dialog. § October 31, 2020 – 1.79 (C# Version) Uninstall shortcut now prints a message with instructions on uninstalling via Windows Apps panel. § October 28, 2020 – 1.78 (C# Version) Rebuild and repackage. § September 25, 2020 – 1.93 (C++ Version) Updated to fix bug that appeared when time-from-end was reduced. Also added three right-click menu functions to the song-list windows. You can delete either even or odd songs. This is useful when you drag-drop an entire song folder to each player and want them to mix back and forth between players. Also added a menu function that re-sorts a player's list by the numbers at the end of similar file-names. § January 18, 2020 – 1.87 (C++ Version) Changed the web-site call in About.cpp and moved the Find-Song dialog box out of the auto-instantiation list. Rebuilt with C++ Builder RAD Studio Community 10.3.3. § December 14, 2019 – 1.77 (C# Version) Rebuild with rearranged main form components and border appearance. § October 27, 2019 – 1.85 (C++ Version) Added changes to FormOFMSDlg.cpp to allow it to work properly with Windows XP. § October 25, 2019 – 1.84 (C++ Version) and 1.74 (C++ XP Version) Added a search and uncheck feature and fixed a bug in the RAD Studio version that was preventing playback from stopping. § October 4, 2019 – 1.82 (C++ Version) and 1.73 (C++ XP Version) Put new song-randomization algorithm in the old Borland C++ version. In the RAD Studio C++ version, I did extensive change to the way media-faults are handled. It retries several times and tries the original file's path if the cached file fails - and if the song file has been deleted we force fade to the other player. And if the other player's songs have all played, we sequence to the next song on the current player. Getting all of that to work, harmoniously - is not so trivial! § September 22, 2019 – 1.81 (C++ Version) and 1.72 (C++ XP Version) More subtle fixes in subclassed file-open dialog (FormOFMSDlg). § September 19, 2019 – 1.80 (C++ Version) Put back filtering out of any file extensions except audio files. § September 16, 2019 – 1.79 (C++ Version) and 1.71 (C++ XP Version) Fixed some issues keeping program from working properly in old Windows XP = a flag in FindFirstFileEx(). § September 8, 2019 – 1.78 (C++ Version) and 1.70 (C++ XP Version) Extensive work on the custom file-folder and song-selection dialog. § August 12, 2019 – 1.76 (C++ Version) Added display of currently playing song's meta-tags when you hover the mouse over the elapsed-time panel. Also have posted a new Borland C++ Builder version that still works with Windows XP,7,10 (but does not have disk-caching). § August 8, 2019 – 1.75 (C++ Version) Folder drag-drop across local-area-network shares now works (and includes local-computer disk-caching!) § July 1, 2019 – 1.74 (C++ Version) Again, a lot of work. Fixed one glaring problem - the song-position timer was being stopped when one of the main song-list forms was closed - so the playing song would end but no mix to the next player was being initiated. Fixed. I've also redone the song-randomization and have added appropriate calls to seed the random number generator. More work on the new copy-files code. Files are copied to the cache asynchronously which required some care. When a song-file is submitted to be written to the disk-cache, I mark its cache-number -1. After the file is successfully written, its cache-number is properly written. So that serves as a write-pending indication. I also found that I didn't like the old behavior when a playing song's list-checkbox was unchecked. The next song in the same list started playing. So now, unchecking a playing song starts a fade to the queued song on the other player. Lastly, I've fixed the behavior when you try to scroll a list using the up, down, left or right keys. It works now by temporarily entering edit-mode, which permits scrolling without actually queuing up any songs. After you release the key for 2 seconds, it reverts back to normal operation. § June 27, 2019 – 1.73 (C++ Version) Lots of sundry work - a lot of attention to new file-copy threads for Options->Export Song-Files and Lists. § June 19, 2019 – 1.72 (C++ Version) More bug-fixes and a rewrite of the drag-drop moving of songs between lists. Better, stronger, faster! Also added web-url file-caching and ability to enter a web-url for a song into the main file-dialog's file-name box. Added failsafe loading of file at original path should cached file fail to load. And if a file can't be found that's in the list - it will be unchecked and the next song is started. § May 24, 2019 – 1.70 (C++ Version) Added disk-caching. Disk-caching allows SwiftMiXeR to pre-load several songs from an external drive into the user's AppData area on Windows 10. That prevents the external drive or network drive from sending small pieces of the song as a stream to the media-players. Instead, the entire song is available on the local drive when needed. § May 31, 2017 – 1.67 (C++ Version) Ported to a new development platform: RAD Studio 10.2 (Tokyo). § May 31, 2017 – 1.74 (C# Version) Repackaged with new self-signed code certificate. § March 17, 2017 – 1.74 (C# Version) Fixed a problem with drag-dropping music-folders onto a playlist. Changed Installer from NSIS to Windows. § August 10, 2016 – 1.65 (C++ Version) When I began saving the current player-volumes in the Windows registry I overlooked a problem that could write 0 as the volume - the net effect was that the sound on one player would go silent until you specifically set the volume again. Fixed! § August 9, 2016 – 1.73 (C# Version) Repackaged SwiftMiX 1.73 C# using the new 3.0 version of the NSIS installer. § July 27, 2016 – 1.64 (C++ Version) Shortened gap between buttons in my custom file-open dialog to fix a button drawing problem when running on Windows 10. § July 27, 2016 – 1.73 (C# Version) Updated playlist import/export in the C++ version and ported all of the new playlist import/export file-types into the C# version (at long last). Added the ability to add a URL from the web to a playlist. In the C++ version you just copy a link from your web-browser then paste it into the Open File box. In the C# version there is a new edit-box at the top of the file-selection dialog where you can paste a web-link then click the Add button to its left. Unfortunately, I was not able to get the Windows Media Player controls used in SwiftMiX to accept an HTTPS link to Google Drive... Hopefully Microsoft will add this protocol to WMP. In both versions you can drag/drop a playlist file onto one of the media-players to add its songs. SwiftMiX supports:
*This is from Microsoft's own people:
I've released SwiftMiX for 64-bit but am not positive it will *always use some libraries - the libraries SwiftMiX builds are all 64-bit for this distribution but the libraries visual-studio imports and copies possibly are still 32-bits - not sure as of this writing. What I am sure of is that the 64-bit version WON'T run on a 32-bit computer or operating system and the 64-bit version WILL.§ July 23, 2014 – 1.45 (C# Version) Fixed a problem with duplicate icons in Add/Remove Programs for both TunesFiX and SwiftMiX. Also, the program was throwing an exception on 64-bit machines when it tried to use Interop.IWshRuntimeLibrary... found out the project MUST be built using x86 as the target-platform (not "Any CPU") or the wrong DLLs get loaded. (I can rebuild all sub-projects SwiftMiX uses and target x64 - but I don't think the performance would be improved and then I'd need to manage two distributions.) § July 22, 2014 – 1.44 (C# Version) Modified my project MediaTagSharp and so have updated the SwiftMiX DLLs for the song-tag reader. § July 15, 2014 – 1.43 (C# Version) Changed the installer to NSIS and built SwiftMiX with Visual Studio 2012 Express for Windows 7. § October 26, 2013 – 1.42 (C# Version) More changes to the media-tag library... § October 26, 2013 – 1.41 (C# Version) Released with a new version of the library I use to read song-tag information and the internal code to use the library. § May 11, 2013 – 1.40 (C# Version) Added a better song-info dialog. When you right-click a song in a playlist and choose "Song Info", a box will pop up with the song's pertinent details. I also modified the software used to retrieve song-tag information from mp3 and wma files. It can now display the "Lyrics" field for wma songs and the "Comments" and "Lyrics" fields for mp3 songs.
Also fixed a problem in the algorithm used to compute the size required by each list. The byte-sizes are all reported in GiB, MiB, KiB, etc. reflecting the fact that a Killobyte (KiB) is actually 1024 bytes, not 1000 bytes.§ October 13, 2010 – 1.49 (C++ Version), the new edit mode was kicking out as soon as a song-list window lost focus. We want to stay in the edit-mode and have the freedom to click either song-list, dragging/dropping songs between lists, without exiting the edit-mode. Fixed. § October 8, 2010 – 1.48 (C++ Version), added ability to drag/drop multiple selected songs in Edit Mode, either between lists or to a new point in the same list. § September 30, 2010 – 1.47 (C++ Version), no bugs found... added programmatic computation and positioning of all controls in SwiftMiX's main form - so it will all re-size itself based upon the default size of the Windows Media Player's ActiveX control. § September 24, 2010 – 1.46 (C++ Version), added the features to sort a list and eliminate duplicate songs, to copy selected songs to the clipboard, to randomize a song list - and in-general I cleaned up the look and feel of the GUI (The progress meter operates now when adding song files recursively, etc.) § September 22, 2010 – 1.45 (C++ Version), added a feature. Right-click in a song-list and click Edit Mode. Now you can select multiple songs in the list by holding down CTRL and left-clicking them one at a time or by selecting one song and then pressing SHIFT and then another song to select the entire range... Then right-click again to bring up the pop-up menu and select Delete to delete all of the songs from the list, or click Move to insert all of the songs in front of the selected song on the other player's song-list. The ESC key exits Edit Mode.
I found that I needed this feature in the making of my own mix DVD. I put my entire collection of music on List-A. Then I used List-B to drag-drop songs from List-A that I wanted in my final mix-set... Then I deleted all songs from List-A. Now I wanted to select particular songs from List-B to move to List-A for the final dual-player mix. So - I had to create the ability to select and move more than one song! (This turned out to be tricky because I had to derive my OWN component check-list-box to allow multiple file-selection...)§ September 19, 2010 – 1.44 (C++ Version), complex re-work of the import/export playlist classes to allow them to handle UTF-8 variable byte-size characters in a Windows Media Player playlist. The C++ version does not support UTF-8. But now song file names that have "extended" ASCII characters (such as the French è) will work. Other Unicode characters will not work, such as Chinese characters. § September 14, 2010 – 1.43 (C++ Version), found a bug in the Import playlist function that was filtering out special ASCII chars from a filename. § September 12, 2010 – 1.42 (C++ Version), Changed the Export/Import playlist classes to store the complete file-path, or optionally, the file-name only, or the relative path without the drive letter. This already works correctly in the .NET version.
Also re-wrote the files/lists Export feature (in the Options menu). It now works more robustly... and I added a feature to compute the disk-space needed by each list and the total space needed - to facilitate editing song-lists prior to exporting them to fit on a DVD.§ September 9, 2010 – 1.41 (C++ Version), still an exception thrown when deleting a playing song from the end of the song-list. Fixed. § September 8, 2010 – 1.40 (C++ Version), fixed problems deleting items from the song's list-box (when you press the DEL key). Also added a (right-click) popup-menu item to delete the selected song. § September 8, 2010 – 1.39 (C++ Version), When you added music directories recursively, the new "root" directory for the file-open dialog was not being preserved for the user - Fixed. The time displays now read in hours, minutes and seconds like the C# version. § September 7, 2010 – 1.38 (C++ Version), FIXED an ActiveX control sizing problem that has been around for a long time and I was just too busy to tackle the issue. Now its working fine AND - the C++ version now is FREEWARE, the license key will never expire. E-Mail: firstname.lastname@example.org for comments/questions. Thanks! § June 18, 2009 – 1.29 (C# Version), Some essential DLLs were missing from the .msi installer. § May 29, 2009 – 1.28 (C# Version), Added dockable-window functionality similar to WinAmp thanks to an excellent open-source DLL by Bentley Wolfe on http://dockableform.sourceforge.net/ § February 13, 2009 – 1.27 (C# Version), 1.37 (C++ version) – New changes to license software. § February 5, 2009 – 1.25 (C# Version) – Same changes as for C++ version, also I switched development to a different computer and updated the trial license keys (30-days). (Got to make a living people!) § January 30, 2009 – 1.35 (C++ Version) – License Key Software Modified...
I now disallow a key to be written if it is older than the currently installed key and the "ForceKey" flag is set internally. Also, if the computer name was changed the key should no longer be valid and must be re-installed - the program would keep operating, however.§ November 21, 2008 – 1.34 (C++ Version) – License Key Software Modified...
New License Key feature that lets me post a key that expires relative to the install date rather than just the key's creation date. (incorporated into all products) - but the trade-off is that I am shortening the trial-period... Also major re-working of key-encoding algorithms.§ October 22, 2008 – 1.33 (C++ Version) – New features added...
1) Added shuffle-play (random song mode) (this was in the .NET version, not in the C++ version).
2) Added a right-click popup menu to each song-list as is in the .NET version - here you can clear the list, check/uncheck all songs, and alpha-sort the list.
3) You can now drag/drop a selected group of song-files onto a list to add them. (Before you could drag/drop to move songs only.)
4) Updated the Help-file on the web-site.
5) Clicking an item that is playing will display the Artist, Album and Song Title now.
6) Many other internal improvements to the code.§ October 21, 2008 – 1.32 (C++ Version) – Occasionally, if the player was running songs from one list only, songs would stop sequencing. This was caused because the software used a 1-second timer to measure when 1 second remained, then sequence the next song... The problem is that sometimes the phase of the timer relative to the actual time left caused the player to stop, and fail to continue queuing music. Solution was to use the state-change "8" "end of song" event to set a flag which is then checked when the WMP fires a "stop" event. The stop event checks this flag and if its set, sets a timer-event to set up the next song and begin playing it. (tricky because you can't start the player from within a state-change event-handler).
Delete now works rapid-fire - you can click a song and keep hitting DEL key and there is no timer or scrolling delay.
Also, when you exited the player and songs were playing, an exception was being thrown from time-to-time... hopefully, that is also fixed. Now I need to make these changes in the C# version for .NET. - Scott Swift§ October 16, 2008 – 1.31 (C++ Version) – Two Bugs Fixed...
1) If songs were in only one player's list and the other player had run out of songs, the remaining songs in the player which still had unplayed songs... would not play them.
2) Import Playlist was working for Player A but not for Player B.
Also changes to license-ley software for both C++ and .NET (C#) versions... Trial keys of 90 days also installed.§ August 15, 2008 – 1.30 (C++ Version) – Bug in player B's elapsed-time readout. FIXED.
Enhansed the drag/drop moving of songs... can now move a playing song within its own play-list and also you can re-queue the currently playing song to play again.§ August 13, 2008 – 1.28 (C++ Version) – A lot of changes... re-wrote all the check-list-box software... it should work smoothly now to queue new songs, double-click to play a song, single-click to queue a song to play after this one... click the check-box to de-queue or disable or re-enable a song.
Also "Next-Track" will work properly going to the next user-queued song.
Other diverse changes...
Lost KNOWLEDGE: the delete key will delete any song and if the song is currently playing it will start playing the next song in the list.
More lost knowledge: SHIFT+DELETE will delete all the "un-checked" (already played) songs in a list.§ January 30, 2008 – 1.25 (C++ Version) – Added "Send Timing Telemetry" to Options menu. So now the old simple C++ .exe version can send song info to YahCoLoRiZe also. In YahCoLoRiZe right-click in the main window and select "Process SwiftMiX Song Title". § January 28, 2008 – 1.20 (C# Version) – When you click Options->Send Timing Telemetry, SwiftMiX can send song info and play elapsed time. Added album info to that... we now send Album Artist, Song-name and Album Title. Presently this info is available to YahCoLoRiZe when you click The Options Tab and check the SwiftMiX Sync box - or when you Right-Click in the main window and click Process SwiftMiX Song Title in the pop-up menu. § November 11, 2007 – 1.19 (C# Version) – Released both C# and C++ versions. Changed support e-mail to: email@example.com § March 10, 2007 – 1.24 – Still Freeware but made some small changes to the licence-key software to reflect updates in other products. § March 10, 2007 – 1.23 – Fixed major bug -- if files for only one player present, the songs would not sequence. Converted to a freeware edition. Enjoy! § December 13, 2006 – 1.22 – Added full drag and drop between lists for original C++ version. § December 5, 2006 – 1.21 – Did some more work on the original version written in C++ (instead of C#). Some internal re-organization, fixed bug of checkmark not appearing for Stop-mode, fixed bug of check not turning off after clicking NextTrack when no more songs were queued. § December 5, 2006 – 1.19 – Did some work on the original version written in C++ (instead of C#). Releasing it with a free 1-year license. Works with Windows Media Player 10 and 11. (The c#/.net version is nice, but few people can use it right now!) § October 21, 2006 – 1.19 – Checked for functionality with WMP 11. Added Media-Error handlers. (Trial key update). Installer no longer requires un-install of old version. § July 21, 2006 – 1.18 – Add telemetry of timing info to YahCoLoRiZe. (forgot to change revision :-)) § July 21, 2006 – 1.17 – Add "alphabetize list" and "randomize list". § July 14, 2006 – 1.16 – Fixed some problems in flashing the currently selected song. § July 12, 2006 – 1.15 – Add feature to equalize the number of songs between the two playlists. Add prompts during export to save embedded file-names with no path, a relative path or with a rooted path. § July 7, 2006 – 1.14 – Add feature to equalize the number of songs between the two playlists. Add prompts during export to save embedded file-names with no path, a relative path or with a rooted path. § July 5, 2006 – 1.13 – Change name to SwiftMiX. § July 3, 2006 – 1.12 – Add the features: Invert List, Delete Odd Indices, Delete Even Indices, Remove Duplicates, Find, Check All, Uncheck All, Album Info. § June 29, 2006 – 1.11 – Fixed scrolling bug. Added fetch of song's artist and album title. Added check for 1/2 of a DVD/CD. § June 29, 2006 – 1.09 – Add F12 and pop-up menu feature to compute the size of all of the files in a list to facilitate make a list that fits a DVD or CD. § June 29, 2006 – 1.08 – Add "Random" mode. Fix bug in drag-drop or paste of an item into a list in which all songs had played. A new song would not automatically queue. Cut/Paste now works from the item the mouse points at, not from the "selected" item. § June 28, 2006 – 1.07 – add drag-and-drop to move items between song-lists. § June 26, 2006 – 1.05 – Revision the same. Fixed problems with drag-drop move and with delete. Also changed the File Export to a background process and am now locking out operations that are unsafe while moving large song files. § June 24, 2006 – 1.05 – Added feature "Export Files" in the Options menu. This is powerful. It copies all of the files in the playlist to a directory SwiftMiXeR creates... at a location the user specifies. In addition, both Player A and Player B play-lists are saved in the new directory, but with relative path-names. The resulting directory can then be burned onto a CD-ROM. The CD-ROM can used on any computer. When Import play-list is invoked, the play-list names are created by adding the relative path to the path name of the play-list file being imported. Hence, a DJ can create a mix... and export it to a CD -- but the mix happens "live" and the DJ can modify it on-the-fly. So you can envision a "library" of mixes on CD-ROM that can be taken to any gig. § June 23, 2006 – 1.04 – Bug with songs that have an "&" in the title is fixed. § June 22, 2006 – 1.03 – Fixed Delete and delete all un-checked items. Added delete to list pop-up menu. Add Cut/Copy/Paste to allow moving items from one list to another. Fix problem where if you unchecked an item... the next song did not queue. § June 17, 2006 – 1.02 – Fixed Double-click play from a de-activated play-list window. Changes to minimize file-list windows when main window is minimized. § June 16, 2006 – 1.01 – Double-Click to play fixed. Drag-Move songs fixed. Add Directory now remembers last directory opened. § June 7, 2006 – 1.00 – CHANGED TO MICROSOFT .NET WITH A FULL INSTALLER... RESET REVISION. § June 6, 2006 – 1.17 – Security fix... § March 30, 2006 – 1.13 – Add Files now comes up showing all files, not just .wma, some changes in the Options Menu... changed the highlight-scroll delay to 50ms -- was takeing forever for a huge list of songs. § March 23, 2006 – 1.10 – High-priority processing was not working... fixed. § March 20, 2006 – 1.09 – 1) Press CTRL and double-click now adds a directory and all the songs and songs in all of the subdirectories. 2) Auto mode is not more automatic and Manual mode is now more manual. With Auto turned off, new files will not start by themselves you have to press the play button. In Auto mode, the fader will begin moving from wherever it happens to be... before it had to be all the way to one side or the other. In Auto, pressing the Play button of an idle player will force a fade to the new player. 3) Added a new "10%" Volume setting - useful when you have audio streams coming in from other sources besides SwiftMiXeR and want background music. § March 16, 2006 – 1.07 – Refinements to license-key manager. § March 13, 2006 – 1.05 – New Version with a license-key manager. § March 10, 2006 – 1.04 – A) Delete key now deletes all un-checked songs. B) Hold Shift down to delete individual items. § March 9, 2006 – 1.03 – A) Added mute when changing to a new song. I was hearing some player digital noise occasionally. B) View-lists had a bug that opened them off-screen if the main window was moved near an edge of the Desktop. C) Added the ability to move play-list items by drag-dropping them - a lot of work to get it working both with an idle player and one that is playing... D) DEL key will remove a selected list-item E) The Title-Bar of a song-list window now displays either the Queued or "next" song (Q) when you select the window, or it shows the playing song (P). It fits in the last part of the file-name to the size of the window title-bar. E) Added the ability to change the song pointer in a list for a player that is currently playing. (Single-Click) § March 6, 2006 – 1.02 – Added "Repeat" function. Changed player names and time-displays to read PlayerA/PlayerB instead of Player1/Player2. Converted to a system that uses double-clicks in a song-list dialog to start playback rather than single-clicks. Single-clicking now will change the song-pointer. This lets you select any song as the next song to fade to from the other player.