Jump to content


Photo

Trout - A BASS-driven audio player written in AHK


  • Please log in to reply
117 replies to this topic

#1 skwire

skwire
  • Moderators
  • 276 posts

Posted 05 February 2009 - 03:47 PM

Introduction

Who: Trout
What: A small, simple freeware audio player written in AHK using the BASS audio engine.
Supported: 95/98/ME/2k/XP/Vista
Version: v1.0.3 build 275
Where: Installer or Zip

Description

My main audio player for many years has been, and will remain, foobar but there are some times when I just want a simple "load'n'play" type of player. An application that comes very close is Billy. It's a FANTASTIC little app that fits in with my preference in software...standard controls, no skins, etc. However, it only supports MP3, WAV, OGG, & FLAC and it also doesn't display tags. My audio collection comprises many more formats than that and I tag files religiously. So, with that in mind, I've always wanted to write my own simple player. k3ph and I have wrapped the BASS audio engine in AutoHotkey and I've written a player called Trout.

I orginally released Trout as part of the 2009 NANY (New Apps for the New Year) promotion on this thread at DonationCoder.com. I have been hesitant to post it here because I have no interest in releasing the source and I didn't want any potential thread to degenerate into a "decompiling flamewar" that I've seen in the past. Yes, I'm well aware that there is not much I can do against somebody hell-bent on decompiling it, but please respect my decision to keep the source closed. If you don't agree with my decision not to share the source, feel free not to try Trout, and I would ask that you not use this thread to discuss 'open vs. closed source issues.' That being said, one of my goals/challenges in writing this player was to only use GUI controls native to AHK and I'm happy to share how I've done anything in Trout.

Special thanks goes to k3ph, Titan, ChalamiuS, Rhys, Lexikos, SKAN, and app103 for their testing and feedback. Many thanks to all the authors of code snippets, from these forums, that I have modified and used within Trout. This includes, but is not limited to, SKAN, DerRaphael, Sean, majkinetor, Icarus, engunneer and wOxxOm. Finally, thanks to hamradio for Trout's icon.

Features

Current[*:wu99awj7]Supported audio formats (standard): AIFF, AIF, AIFC, MP1, MP2, MP3, OGA, OGG, WAV, MO3, XM, MOD, S3M, IT, MTM.
[*:wu99awj7]Supported audio formats (w/ plugins): FLAC, WMA, WMP, WMV, ASF, MID, MIDI, RMI, KAR, WV, WVC, AAC, MP4, M4A, M4B, M4P, APE, AC3, SPX, TTA, OFR, MPC, ALAC.
[*:wu99awj7]Basic freeDB support for audio CD track titles.
[*:wu99awj7]Support for internet radio streams.
[*:wu99awj7]Supported tag formats:
ID3v1, ID3v2.2/3/4
OGG/FLAC comments
WMA
APE, OFR, MPC, AAC (APE tags)
MP4/ALAC/AAC (not available under 9x/ME)
[*:wu99awj7]WinampAPI support for external control and display.
[*:wu99awj7]Commandline parameters for external control (/play, /stop, /prev, /next, /mute, /clipboard).
[*:wu99awj7]Extremely customizable hotkey system.
[*:wu99awj7]Basic custom string formatting (see Options screenshot).
[*:wu99awj7]Basic album art support (folder.jpg)
[*:wu99awj7]Horizontal/vertical "minibar" controls (see screenshots).
[*:wu99awj7]Toaster style popup.
[*:wu99awj7]Play modes (Play file, play list, repeat file, repeat list, random, shuffle).
[*:wu99awj7]Drag'n'drop to the playlist and minibars.
[*:wu99awj7]Playlist quick search function.
[*:wu99awj7]Simple tag editing (not available under 9x/ME).
[*:wu99awj7]Last.fm support. (Added 2009-01-22)Planned[*:wu99awj7]Equalizer.
[*:wu99awj7]Playlist saving in .m3u and .wpl formats. It currently reads these files just fine, however.
[*:wu99awj7]Lyrics viewer.
[*:wu99awj7]Auto updater.
[*:wu99awj7]More...
Changelog
+ added
* changed
- deleted
! bug fixed

Latest build:
v1.0.3 build 275 - 2010-01-29
    + Added "Remove dead entries on startup" option to the General tab.
      (Thanks, Target)
    * The "Remove dead entries" function no longer removes URLs.
    ! Fixed some GUI glitches when viewing the Options dialog on a system
      running 120 DPI.  (Thanks, Guest3456)

Full changelog:
v1.0.3 build 275 - 2010-01-29
    + Added "Remove dead entries on startup" option to the General tab.
      (Thanks, Target)
    * The "Remove dead entries" function no longer removes URLs.
    ! Fixed some GUI glitches when viewing the Options dialog on a system
      running 120 DPI.  (Thanks, Guest3456)

v1.0.3 build 272 - 2010-01-25
    + Added playlist's total time (in hh:mm:ss format) to the statusbar.
      (Thanks, mohamedm)

v1.0.3 build 269 - 2010-01-22
    ! Fixed tray icon under Win 9x/ME/2k.

v1.0.3 build 261 - 2009-12-12
    + Added option under the View menu to show/hide gridlines of the main
      playlist.  (Thanks, Greybrow)

v1.0.3 build 258 - 2009-12-12
    * Trout will now unmute itself if changes are made to the volume while it's
      muted.  (Thanks, lanux128)

v1.0.3 build 257 - 2009-12-11
    * Made a change to how the main listview sorts accented characters e.g.
      "Édith Piaf" should now sort with "E" and not to the bottom of the list.
      (Thanks, Leif Larsson)

v1.0.3 build 254 - 2009-12-09
    + The "Add files" function now remembers the last selected file.  (Thanks,
      lanux128)

v1.0.3 build 249 - 2009-11-29
    ! If shell extension is not supported under a certain OS/service pack, the
      menu option won't even appear.

v1.0.3 build 243 - 2009-11-20
    * Yet more http://lyrics.wikia.com parsing fixes.

v1.0.3 build 240 - 2009-11-10
    + Added tooltip showing volume position when manipulating a volume control.
      (Thanks, SoggyDog)

v1.0.3 build 238 - 2009-11-02
    * Reverted the new "/add" and auto-play changes that were made until I can
      come up with a more reliable way to handle this functionality.  Apologies
      to those that made use of them.

v1.0.3 build 158 - 2009-10-30
    ! Help icons in the Option dialog weren't showing up properly.
    ! Lyrics weren't searched automatically if the lyrics window was opened
      while a track was playing.  (Thanks, lanux128)

v1.0.3 build 154 - 2009-10-29
    + Added album art to the bottom of the lyrics window.
    + Added code to try and prevent accidental unwanted double-clicks on the
      listview.
    + Lyrics window now handles a third format from http://lyrics.wikia.com.
      I wish they would just re-introduce the API.  Grrr.
    + Added a new command-line parameter: /add  (Thanks, tanis)
      Here's how it works now...
      1) If you pass a path to Trout on the commandline, it will clear the list
         before adding the tracks e.g.  c:\path\to\trout.exe c:\myMusic
      2) If you use the new /add parameter, it will NOT clear out the list before
         adding the new path e.g.  c:\path\to\trout.exe /add c:\myMusic

v1.0.3 build 105 - 2009-10-10
    + Playlist search now searches on filename (in addition to the previous
      artist/album/song tags).  (Thanks, srikat).

v1.0.3 build 103 - 2009-10-09
    ! More lyrics box matching and parsing tweaks.
    ! Drag & Drop not working under Vista fixed (?).  (Thanks, troutfan)

v1.0.3 build 69 - 2009-09-23
    * Recompiled Trout without UPX compression to avoid the false positives that some
      security firms spew forth.

v1.0.3 build 64 - 2009-09-23
    ! Took out an erroneously left in static hotkey (F12).  (Thanks, tomos)

v1.0.3 build 49 - 2009-09-04
    * Fixed the lyrics display again because of LyricWiki.org's migration to the Wikia
      family at http://www.wikia.com/wiki/Wikia.

v1.0.3 build 48 - 2009-08-27
    * AudioGenie library update to v1.0.5.4.

v1.0.3 build 48 - 2009-08-27
    ! The displayed result of an artist lyrics search wasn't formatted properly.

v1.0.3 build 44 - 2009-08-23
    + Added "Remember list position on start" under Tools, Options, General, Miscellaneous.
      This will make Trout highlight and scroll to the last played row without starting
      playback.  (Thanks, Ice_Tea)
    + Added an "Exit Trout" hotkey action.  (Thanks, Ice_Tea)

v1.0.3 build 43 - 2009-08-19
    + Added "Enqueue in Trout" shell extension option to the Tools menu.
    * Made the lyrics display window work properly with Unicode lyrics.

v1.0.3 build 40 - 2009-08-11
    ! Title display coordinates were borked because I can't add ten properly.  (Thanks, app103)

v1.0.3 build 36 - 2009-08-03
    * Slight changes necessary for lyrics display because of this:
      http://groups.google.com/group/lyricwiki-api/browse_thread/thread/733ccd919d654040
    * More slight graphical tweaks to the main interface.

v1.0.3 build 35
    ! Lyrics window sizing issue.
    * Minor cosmetic tweak to the album art display.

v1.0.3 build 30
    * Text-to-Speech option will now only announce tracks during playback, not
      from manual advancing.  (Thanks, mouser)

v1.0.3 build 26
    ! Fixed CD loading.  (Thanks, app103)

v1.0.3 build 25
    + Support for ASX/WMA internet streams and their tags (if present).
    + Added a second search button to the lyrics window.  Now, you can search
      an artist specifically without having to blank out the title field.
    * Improvements to playlist parsing routines for streaming URLs.

v1.0.3 build 11
    ! Fixed the lyrics window not showing on startup properly.  (Thanks, lanux128)

v1.0.3 build 7
    ! Fixed toaster not disappearing on click when set that way.  (Thanks, app103)

v1.0.3 build 6
    ! Fixed (hopefully) lyrics window position saving bug.

v1.0.3 build 4
    + Added a basic lyrics display.  Lyrics are provided by http://www.lyricwiki.org so, 
      to make use of this feature, you will need to have "Allow internet access" enabled
      under Tools, Options.  Once you have that done, choose "Show lyrics window" from
      the View menu.  Some notes:  
      1) The lyrics window will even work for streaming music sites that send
         the artist/title info.
      2) The lyrics window also can function in a stand-alone manner.  Simply enter
         the artist and track title and click the search button.
      3) If you do a search on just an artist, a list of all songs that LyricWiki has lyrics
         for will be returned.

------------------------------------------------------------------------
Version 1.0.2 ----------------------------------------------------------
------------------------------------------------------------------------

v1.0.2 build 269
    + Added a Text-To-Speech option to the "New track notification" options.  (Thanks, mouser)
    + Added an option so you can choose what happens to the toaster popup when you click on it.
      Currently, you can make it stay on-screen until it loses focus or you can make it disappear
      immediately.  Tools, Options, Toaster tab.  (Thanks, app103)
    * Improved the "Repeat file" mode to do gapless looping.  (Thanks, superboyac) 
    ! Add URL GUI showed up incorrectly under Windows 7 Beta.  (Thanks, temp01)
    ! Album art showed up incorrectly on startup if Trout was installed on the
      root of a drive.  (Thanks, temp01)

v1.0.2 build 257
    + Added "Add paths from clipboard" to the File menu.
    * Made Trout save the current list after adding/deleting files.  [Thanks, Deozaan]
    ! Fixed a logic bug when entering/checking Last.fm username/password data. [Thanks, apfel]

v1.0.2 build 251
    + Added an option to autopause after "x" minutes of user idle time.  [Thanks, app103]
    + Added a delete hotkey button to the hotkey options dialog.  [Thanks, drugwash]
    + Added an option to allow single or double-clicking the tray icon to bring the main
      window to the front.  Tools, Optoins, General, System tray section.  [Thanks, brotherS]

v1.0.2 build 245
    ! "Do not show toaster popup while main window is active" wasn't saving properly.
      [Thanks, Deozaan]
    ! Ampersands were not displaying properly in the Toaster popup.  [Thanks, Deozaan]
    ! Double-clicking the album art launched it twice.  [Thanks, Hezzu]

v1.0.2 build 236
    + Added "Enable/disable Last.fm" to the playlist's Last.fm context menu.
    + Added Last.fm icon to the statusbar.  Single-clicking on it will toggle between a red
      icon (Last.fm enabled) and a grey icon (Last.fm disabled).  Right-clicking it will
      bring up the same Last.fm menu as above.
    + Added an option for a configurable number of seconds to rewind when resuming from
      a pause state.  Leave it set at zero (0) to turn it off.  [Thanks, brotherS]

v1.0.2 build 220
    + When the minibars have focus, the wheelmouse will control volume.  [Thanks, Deozaan]
    + Double-clicking the album art now brings it up in your system's default viewer.
      [Thanks, none exist]
    + Added "Show toaster popup after resuming from a pause state" option under Options,
      Toaster dialog.  [Thanks, Deozaan]
    * Changed up the album art logic slightly to better handle newly added folder.jpg files.
      [Thanks, drugwash]
    * Rearranged the Options, General dialog to accomodate future settings.
    * The Last.fm "Love Track" button is now an option under the Options, Last.fm dialog.
      [Thanks, Deozaan]
    ! Fixed Trout's alt-tab icon to use the proper size.  [Thanks, lanux128]
    ! Fixed (hopefully) the tracks-playing-out-of-order issue.  [Thanks, drugwash]
    ! Fixed a tray icon issue where it wouldn't show if the user didn't have "Always show
      tray icon" checked but DID have "Minimize to tray on startup" checked.  [Thanks, Deozaan]

v1.0.2 build 211
    + Made it so the numpad's delete key will work like the regular delete key.  [Thanks, mouser]
    + Added handling for media keys on Logitech keyboards (Play/pause, Stop, Next,
      Prev, Vol up/down).  [Thanks, mouser]
    + Added "Enable media keys by default" option to the Options, Hotkeys dialog.
    ! Fixed an HTML decoding issue on WPL files.  [Thanks, app103]
    ! Fixed a TR/TE display issue with the toaster popup.  [Thanks, Deozaan]
    ! Fixed a sizing issue when restoring from the tray/minibar if "Minimize on startup"
      was checked.  [Thanks, Deozaan]

v1.0.2 build 196
    + Loading a data CD with the "Load audio CD" menu entry will now add those files to the
      list.  [Thanks, daonlyfreez]
    + Added "Show toaster popup" as a hotkeyable item.  [Thanks, k3ph]
    * Changed the "Explore here" menu option to "Open file location".  [Thanks, alooper21]

v1.0.2 build 192
    * The default 'Explore here' option (Windows Explorer) should now highlight the selected
      file.  [Thanks, app103]
    ! Fixed 'Remove track after playback' functionality broken in build 186.  [Thanks, app103]
    ! Fixed sizing issue on startup.  [Thanks, brotherS]

v1.0.2 build 188
    + All Play Modes are now hotkeyable items.  [Thanks, genmce]
    ! Trout will now remember if it was maximized and will properly set itself on startup.
      [Thanks, Hezzu]

v1.0.2 build 186
    * Search/jump now highlights the top row automatically.  [Thanks, Hezzu]
    * 'Resume playback on start' option now remembers play/pause state.  [Thanks, brotherS]

v1.0.2 build 178
    + Added two checkboxes to the Options, Toaster tab:
      1) Enable toaster popup.
      2) Do not show toaster popup while main window is active.
    * Improved the seek and volume bars:
      1) A single mousedown session cannot affect both controls.  [Thanks, brotherS & SoggyDog]
      2) Letting go of the left mouse button outside of the seekbars will now work.  This should
         allow for dragging the seekbar all the way back to the start of the song or all the way
         to the end of a song.  [Thanks, SoggyDog]
    * Clicking on the toaster popup will keep it open as long as it's the active window.

v1.0.2 build 176
    * Random mode now does a basic check so that the same song isn't played twice in a row.
    * Changed "Play track/beep between tracks" to "Audible notification on new track".
    ! "Audible notification on new track" wasn't working properly on Trout startup.  [Thanks,
       brotherS]

v1.0.2 build 172
    + Added a play button to the "Play track/beep between tracks" option so you can preview the
      chosen sound file.  [Thanks, brotherS]
    + Added a checkbox on the Options form to enable/disable the "Play track/beep between tracks"
      function.  [Thanks, brotherS]
    + Added another hidden config.ini setting under Settings: Update_Method=zip
      Setting this will allow the DcUpdater app to work with Trout's portable zip file as opposed
      to the installer.

v1.0.2 build 153
    + New option under Options, General.  You can now set how the listview behaves when dropping
      files on it (or the minibars).  Choices are:
      - Never clear the existing playlist (Default/current way)
      - Always clear the existing playlist
      - Always ask me what to do
      [Thanks, mouser]
    + Created a new "List" menu entry and moved the "Remove track after playback" option to it.
    + Added a "Play track/beep between tracks" options.  This is mainly for listening to audio
      books so you can be alerted to chapter changes, etc.  You set the options under Options,
      General and toggle the functionality using the List menu entry. [Thanks, brotherS & mouser]
    ! Fixed a seeking issue where Trout wouldn't behave properly if the elapsed time was smaller
      than the user-set seek interval.  This also cropped up if the remaining time was less than
      the seek interval.  [Thanks, brotherS]

v1.0.2 build 149
    + Added a "Remove track after playback" option to the View menu.  This will make Trout act
      in a sort of queue mode.  [Thanks, app103]
    + Added Last.fm "love" functionality to the minibars.  Currently, this will take you
      directly to the track's page on Last.fm so you can mark it as loved.  Future plans will
      be to make this button "love" a track automatically.  [Thanks, app103]
    ! The $time_r/$time_e tokens now update in realtime.  Putting those tokens in the titlebar
      string may result in flickering.  [Thanks, brotherS]

v1.0.2 build 146
    + Another hidden config.ini setting: WinampAPI_Titlebar_Fix=1
      What this does is add a " - Winamp" to the titlebar text.  The reason is that some WinampAPI
      driven front-ends will actually crash if that text isn't there...even though they eventually
      strip it for display.  The mind boggles.  [Thanks, hollow87 & app103]
    + Column orders are now saved.  [Thanks, app103]
    ! Removing files from the listview should be much quicker (back to the way it used to be).

v1.0.2 build 129
    + Added a hidden setting for more aggressive listview refreshing.  If you're
      experiencing listview painting issues, add the following entry to the Settings
      section of your config.ini:  Force_Listview_Refresh=1
      [Thanks, daonlyfreez]
    + Added an option to specify the seek jump interval in seconds.  Default is a jump of
      one second.  Tools, Options, Miscellaneous section.  [Thanks, brotherS]
    * The statusbar track times (TE: & TR:) now update while a track is paused.  [Thanks, brotherS]
    ! Fixed 'Remove dupes' and 'Remove dead entries' broken in build 119.
    ! Fixed the list search broken in build 119.

v1.0.2 build 119
    + Made the following keys available for hotkeys: - = [ ] \ ; ' , . /
    + Added a "Preserve file modification time when saving tags" options under Tools, Options,
      General.  [Thanks, badmojo]
    * More Win9x/ME compatibility fixes.
        1) Font selection size should now work properly.
        2) Hotkeys should work now.  However, mouse-button hotkeys under 9x are sketchy at best.
        3) Text display bits should be more compatible with themed progress bars.
    * Added 'Options' back to the tray menu.  [Thanks, lanux128]

v1.0.2 build 106
    + Added "Explore here" option to the Edit/context menu.  [Thanks, apfel]
    + Added an option for specifying a custom file manager in regards to the 'Explore here'
      feature.  It's under the Tools, Options, General tab.  You use the $file_p token for
      the path.  I use Altap Salamander as my file manager of choice so I have the
      following specified:

      C:\apps\file\Salamander\salamand.exe -L "$file_p"

      This would open Altap Salamander with the left pane at the path of the currently
      focused song.  If a custom file manager is not specified, the path is simply "run"
      and Windows Explorer will most likely display (unless you have some other file manager
      specified as default on your system).
    * Cut the tray menu back down the basics as it was getting out of hand.

v1.0.2 build 103
    + Added website button to the About dialog.  [Thanks, Darin]
    + Playlist block selections are now movable via ctrl-up and ctrl-down.  [Thanks, majkinetor]
    + Added the following as hotkeyable items: Add files, Add folders, Load playlist,
      and Add URL.  [Thank, tomos]
    + Added DonationCoder DcUpdater compatibility.  [Thanks, lanux128]
        If you would like to use this functionality, do the following:
        1) Download and install mouser's DcUpdate application from here:
           http://www.donationcoder.com/Software/Mouser/Updater/downloads/DcUpdaterSetup.exe
        2) Download this and extract dcuhelper.exe to your Trout folder:
           http://www.donationcoder.com/Software/Mouser/Updater/downloads/dcuhelper.zip
        3) You will now see the new option under the Help menu.
    * Updated to latest BASS format plugins.
    * Updated to latest BASS library.  [Thanks, k3ph]
    ! Added code to prevent duplication of hotkeys.  [Thanks, SoggyDog]

v1.0.2 build 91
    + Added code to support Win9x/ME systems.  Thanks to Drugwash and app103 for testing.
      Notes:
       1) Win9x/ME users will get the older slider controls for volume and seekbars.
       2) Tag editing has been disabled under Win9x/ME.
       3) freedb.org for CDs appears to work.
       4) Last.fm appears to work as well.
       5) Copy-to-clipboard functions do not copy in unicode.
    ! MIDI soundfont playback fix.
    * Fixed text display for 120 DPI systems.  Hopefully.  [Thanks, majkinetor]

v1.0.2 build 64
    + Added "/clipboard" as a commandline parameter.
    * AudioGenie library update to v1.0.5.2.
    ! Further freedb.org parsing improvements/fixes.
    ! Fixed a nasty "remember position and auto-play" issue.  [Thanks, ChalamiuS]

v1.0.2 build 48
    + Added 'Scroll left' and 'Scroll right' as hotkeyable actions.  [Thanks, tomos]
    + Added 'Clear playlist', 'Remove duplicates', & 'Remove dead entries' as hotkeyable
      items.
    + New option: 'Remember last playback position & auto-play on start'.  [Thanks, Rhys]
    * Moved the 'Fonts & Colors' options to its own tab.

v1.0.2 build 45
    + Added 'Remove duplicates' and 'Remove dead entries' to the Edit menu.  [Thanks, app103]
    * Tag edit GUI doesn't display the missing tag string in the edit fields.  [Thanks, app103]
    * Made the "Update tags" button default now so you can simply press 'Enter' when
      you're done editing tags.
    * All Last.fm data should now be properly handled in utf-8 format.
    * Edit, Copy path/URL should now copy in unicode.

v1.0.2 build 38
    + Added a Last.fm entry to the edit/context menu.  You can go directly to the
      artist/album/title on Last.fm's website.  [Thanks, app103]
    + Added the Edit menu to the minibar's menu.
    ! Further fixes to the Last.fm submit checks.  [Thanks, app103]
    * Changed up the 'Minimize to tray on startup' routine to be more
      reliable.  [Thanks, app103]

v1.0.2 build 6
    * Fixed volume control issues introduced when I did the listview response
      changes.

v1.0.2 build 4
    + Added 'Minimize on startup' to the Options dialog.  [Thanks, app103]
    * Fixed the "Rescan tags" function in the edit menu.  Sheesh.  =]
    * Fixed Last.fm sending when artist/title tags are missing.  [Thanks, app103]

v1.0.2 build 3
    * Fixed the "Select all" function in the edit menu.  [Thanks, nogojoe]

v1.0.2 build 1
    + Added basic Last.fm support. Trout's support of Last.fm is limited to the
      following:
          1) A track must be longer than thirty seconds to be considered for submittal.
          2) Artist and title tags MUST be present.
          3) "Now playing" information will be sent ten seconds into track playback.
          4) For a track to be "submitted", it must have played at least 240 seconds
             OR half its track length.
          5) Trout does NO caching of tracks.  It's pretty doubtful I will add this
             capability in the future unless there is some huge need for it.
          See the following URL for more details: http://www.last.fm/api/submissions#subs
    + Mousewheel over the main window's volume control now changes the volume.
    * Re-arranged the Edit menu a bit.  There is now a "Selection" entry with several
      sub-entries.  'Invert selection', 'Remove from list', and 'Rescan tags' have been
      moved to this submenu.  There is also a new entry that will allow you to delete
      the selection to the Recycle Bin.  If a file can't be deleted to the bin, you will
      be warned of such and allowed the option of deleting the file directly.
    * Tried to improve the responsiveness of the listview when switching tracks by
      double-clicking.

------------------------------------------------------------------------
Version 1.0.1 ----------------------------------------------------------
------------------------------------------------------------------------

v1.0.1 build 96
    - Reverted the tooltip changes from build 95 until I can make them work more
      reliably.

v1.0.1 build 95
    + Added sections in Options for custom colour choices for new slider controls.
    * Completely changed up the volume and seekbar sliders.  They now use standard
      progress bars.
    * The minibar toolstips now pick up their colour from the volume colour settings.
      I will add a separate colour option if there is call for it.  [Thanks, app103]
    * Shortened up the Options dialog a bit to (hopefully) fit certain laptop
      resolutions.  [Thanks, Controller]
    ! Tray menu "Stop" action didn't function properly.
    ! Clicking cancel on colour dialog would improperly reset the control.  [Thanks,
      Controller]

v1.0.1 build 84
    + Added "Rescan selected" as a hotkeyable item.  This should make it easy
      to highlight files and quickly rescan their tags.  [Thanks, tomos]
    + Added "Edit tags" as a hotkeyable item.
    + Added "Filename" column.  [Thanks, Tomos]
    * Revised the main GUI a tiny bit (slimmed down the side borders).
    ! Random mode will start with the currently highlighted file.  [Thanks, tomos]
    ! Fixed the "skip over unplayable tracks" behaviour.  [Thanks, apfel]

v1.0.1 build 80
    + Added "Rescan tags of selected files" to the edit menu.
    + Added BASIC tag editing capabilities to Trout.  There are some caveats.
      You can only edit one file at a time.  By default, the following
      tag types will be written to the following file types:

      mp3   ID3v2 tags
      aac   ID3v2 tags
      wma   WMA fields
      ape   APEv2 tags
      flac  Vorbis comments
      ogg   Vorbis comments
      mp4   Not implemented yet
      wav   None

      You can TRY to force ID3v1, ID3v2, and/or APEv2 tags by checking the
      appropriate boxes.  This does not work for all file types.
    + Added another section to the statusbar that shows the total number of
      tracks in the playlist as well as whatever row is focused e.g. 2/12.

v1.0.1 build 79
    + Added "Play CD in drive ?:" as a hotkeyable item.  This should work
      dynamically for any number of & letter of CDROM drives.  [Thanks, nogojoe]

v1.0.1 build 77
    * Changed the freedb.org parsing routine to handle CDs that return multiple
      matches. [Thanks, nogojoe]

v1.0.1 build 73
    + Added option for a custom string display when tags are missing.  The
      default string is "<missing>" but you can change it to whatever you'd
      like.  Tools, Options, General, Tags section.  [Thanks, app103]

v1.0.1 build 71
    + Added much more comprehensive error-checking and user notification to the
      CD play and freedb.org routines.

v1.0.1 build 59
    + Added EXPERIMENTAL support for GTalk/GoogleTalk's "Show current music
      track" option.  Enable it under Tool, Options, General tab. [Thanks, Mike]
    ! Attempted to fix a potential race condition bug sometimes resulted in
      two handles being played at once.  [Thanks, apfel & nogojoe]

v1.0.1 build 32
    ! The list search window wasn't set as owner properly which resulted in an
      unwanted taskbar button.
    + Added keyboard control to the Find Track dialog.  Up/down/enter now affect
      the listbox as one would imagine.

v1.0.1 build 26
    + Added "View changelog" entry to the Help menu.
    + Added tooltip when hovering over minibar icons.
      It will use the titlebar formatting template.  [Thanks, app103]
    + Added a find-as-you-type search feature under the Edit menu.  [Thanks, apfel]
    * Moved "Justify columns now" entry to the View menu.

v1.0.1 build 20
    ! Canceling the save playlist window saved the file anyway.  [Thanks, apfel]

v1.0.1 build 17
    + Double-clicking the minibar icon shows the main Trout window.
    ! Track advance fix.
    ! MOD file tag reading fix.

v1.0.1 build 7
    ! Font display issue when changing fonts for the seekbar text.


Screenshots

Main interface
Posted Image
Posted ImagePosted Image
Minibar controls
Posted ImagePosted Image
Options dialogs
Posted Image
Posted Image
Posted Image
Posted Image
Posted Image
http://skwire.dcmembers.com/apps/trout/img/Trout_Options_06.png
Toaster popup
http://skwire.dcmembers.com/apps/trout/img/Trout_Toaster_01.png

#2 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 03:59 PM

Sorry, bro...
I guess I'll be the first to not respect your wishes...
This is a learning forum, not [just] a showcase to boast your abilities.

I find this sort of post offensive...
''Look at how good my software is and, oh yeah, I'm a Code Nazi."

By your own admission, your code would not even have been possible
without the help from SKAN, DerRaphael, Sean, Icarus, engunneer
and wOxxOm. Good thing they post their code, huh?

If you're going to make a statement like "and I'm happy to share how
I've done anything in Trout," then just suck it up and release your code.

Until you do, I won't be bothering to even download this app, let alone
run unknown code and risk damage to my system.

#3 skwire

skwire
  • Moderators
  • 276 posts

Posted 05 February 2009 - 04:26 PM

SoggyDog, thanks for your feedback; I'm sorry you feel this way.

#4 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 04:53 PM

SoggyDog, thanks for your feedback; I'm sorry you feel this way.

Thanks, skwire -
I was hoping you'd take it that way...
I have nothing against you and your app looks like it should be a winner.

Peace.

#5 Petru

Petru
  • Members
  • 236 posts

Posted 05 February 2009 - 05:20 PM

Sorry, bro...
This is a learning forum, not a showcase to boast your abilities.

I find this sort of post offensive...
''Look at how good my software is and, oh yeah, I'm a Code Nazi."

I agree with SoggyDog. And I come here to complete his sayings:

1. Pride is a huge sin.
2. Not helping your comrades is a sin.
3. Helping your comrades is a laudable thing.
4. You won't make anybody happy if you only post the executable.
5. If you release the code, we will surely give credit for your work.
6. I know I won't determine you to release the source BUT
7. I'll pray for you so you may change your mind.

Yes, I'm Christian.

#6 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 05:50 PM

@skwire

See...
Now you've gone and done it...

I couldn't resist...
It just looked too good...
I had to DL it and try it and now...

I wish I had the code because I already want to see how you did some things and I already want to make modifications!

Grrrr!!!!
I shoulda stuck to my guns and not downloaded it.

Nice work, by the way...
Just as I suspected. :wink:

#7 Petru

Petru
  • Members
  • 236 posts

Posted 05 February 2009 - 06:09 PM

I couldn't resist...
It just looked too good...
I had to DL it and try it and now...

I wish I had the code because I already want to see how you did some things and I already want to make modifications!

Grrrr!!!!

Me too... :cry:

#8 danalec

danalec
  • Members
  • 223 posts

Posted 05 February 2009 - 06:10 PM

Yo. Thanks for posting this thread on AHK forums, Skwire.
I was the responsible to ask for it and I want to clarify some information for the community, please consider to read that before posting offensive replies.


Before beggining with a long boring reply, I want to inform the community this is the first collaborative project written in real time at AHK IRC.


As the IRC community knows, Skwire have been supporting very actively, helping a lot the AHK community since last year. Since the IRC community has been very active (thankfully by Titan's IRC based system: a very useful bot to link documentation, pastebin, the forums, msdn etc), Trout and other projects were growing very fast as developed in real time by different coders.


Trout collaborative code gathers works from me, derRaphael, majkinetor, Lexikos and, obviously, Skwire. This project was born as opensource initiative but because some Trout's new features (specifically: Audiogenie, please read the history section for more details), Skwire had to close the source. Closing the source doesn't means Skwire is damaging the mentioned authors licenses.

Trout has never damaged any license.
Trout has never stolen anyone work.
Trout will NOT damage your system.


If Trout was an unreliable software, the people mentioned would not allow such thing being posted with their own nicknames and names.
If Trout was damaging people's work, they would not allow such thing being posted with their own nicknames and names.


___
[ history ]
The history of Trout begins when I've finished wrapping BASSMOD, when Skwire's contacted me asking if I had interest in wrapping BASS Library. I had no much interest on it but after talking with Skwire, he have been a very good friend and IRC active users knows he is a very good person, he convinced me to wrap it.

As far I know, Skwire's player was his personal project and initially was based in Jballi's MCI Library.
After releasing my first "beta" code, including functional examples, Skwire began to modify his code and I've called it 'AHK Amp' because I was a Winamp user since 90's and since NULLSOFT was sorta disbanded, I've been frustrated with its ealier versions, then I've start to contribute to his player with the objective of my personal use. Since then, I've focused in writing examples of BASS usage and direct optmizations to 'AHK Amp'.

AHK Amp didn't received many fans initially, none would give faith for an AHK based song player. So Skwire decided to show his ideas in donationcoder forum to ask people what they think about it, asking what should he implement on it. Suddenly it gathered a bunch of people interested in sharing their thoughts, surprising Skwire and me, giving us another reason to continue the projects.

I don't know in details and maybe I'm too romantic. Although BASS TAGS Plugin supports a bunch of formats, it hadn't enough features for what donationcoder people asked for 'AHK Amp'. So Skwire's researched a bunch of tags readers and faced with SKAN post about AudioGenie. He took interest on it and suddenly bought a license key. After implementing it, he announced officially the change of the name of his project to 'Trout' and closed the source to keep on his AudioGenie license.

A worry become to grow on Skwire's heart, maybe that's one reason he didn't posted earlier Trout on AHK Forums. He knew people would bash him, like me, like I do with closed source projects. So, he came to talk with me, again, worried about keeping the project alive etc. Well we re-analyzed all licenses and we talked about R. Stallman (I doubt everyone knows but the GNU guy prefers freewares over opensource), concluding that Trout development could stay alive.

Everybody who knows Skwire, knows he is sorta these guys who are addicted to help people. But since that episode, I felt Skwire became a real addicted person, filling all donationcoder requests, extending Trout capabilities to 'wtf last.fm! zomg so cool!'.


If you are interested in coding your own player or sound player related projects, take a visit at: BASS Library. Feel free to poke me @ IRC.

** edited: irc link, fixed minor mistype, added last paragraph

#9 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 06:36 PM

@k3ph

No one said Trout damaged any license, stole anyone's work or damaged their system.

What WAS said is that Trout would not exist in it's current state without the code of others and that,
regardless of the contributors, there could be malicious code in the EXE.

YOU know skwire. I don't. For all I knew, he could've been ticked off at the AHK community and
planted a big ol' bomb in his executable.

So, though I appreciate your defense of skwire and his application, I'm not so sure it was warranted.

skwire does not appear to be offended and those of us that have voiced our displeasure
with his lack of source code have still tried the app and have given our praises.

#10 Petru

Petru
  • Members
  • 236 posts

Posted 05 February 2009 - 06:39 PM

Ok, now that's an enlightment, k3ph, thank you.

Then if the addition of "special" components was the reason for closing the source, then simply remove them or mask them and leave the rest of the source code open; maybe we'll manage to reconstruct the missing features on our own...

#11 danalec

danalec
  • Members
  • 223 posts

Posted 05 February 2009 - 06:40 PM

@k3ph

No one said Trout damaged any license, stole anyone's work or damaged their system.

my reply is not for you, its for the thread.
sorry if it confuses you.

If you are feeling lonely and wants to talk about ahk, just come visit us at IRC :D just open in your browser the following link:
http://autohotkey.net/talk

c u there :D

#12 Petru

Petru
  • Members
  • 236 posts

Posted 05 February 2009 - 07:03 PM

SoggyDog, please log in, I'm lonely there and no one's going to listen to me. :(

#13 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 07:03 PM

my reply is not for you, its for the thread.
sorry if it confuses you.

Since Petru and I are the only ones to post so far, we ARE the thread, so yes, that was a bit confusing.

I just needed to be clear that I was in no way making any accusations, rather just voicing my desire to see source code and why.

Anyway... I've said enough, if not too much already.

Bottom line-- It's a great app, it scans clean and if skwire changes his mind, I'm sure he'll post the code.

#14 SoggyDog

SoggyDog
  • Members
  • 803 posts

Posted 05 February 2009 - 07:10 PM

SoggyDog, please log in, I'm lonely there and no one's going to listen to me. :(

Sorry, bro...
I'm at work and I'm blocked.

It sounds like it's the place to be, though, so I'll start connecting when I'm at home.

#15 majkinetor !

majkinetor !
  • Guests

Posted 05 February 2009 - 07:20 PM

What WAS said is that Trout would not exist in it's current state without the code of others and that,
regardless of the contributors, there could be malicious code in the EXE.

I strongly disagree.

Its one thing to create code snippets and some functions and entirely another thing to design the programm and put it into the shape. It requires much more effort then casual code eimition from individuals and that gives every right to the man to announce the work as his own property.

Even if the post sounds like you felt, the man has every right to be proud on his work, and every right to express that at his own post and every right to not realse the source code, even if there is code of others in it (thats GNU). Your comments about malitious code simply doesn't stand becuase, its the same with any programm you can download. Even if you see the code, it can be obfuscated in such measure that it can do malitious things even with you reading it carefully before that.

Talking about app, it looks very nice and everything works OK apart from visuals that are somehwat disordered when your DPI in the system is different then default. Its pitty there is no source code, with it, I imagine it would be much more popular. By limiting access to the code, you limit yourself. When you share your code with the world, it starts improving others, and others start improving you, and all that is improving the world.