AmiModRadio / 2015-12-23 17:16:25

1 Did you know that, as of today (2015/06/02), there are more than 20,000 packages in the mods directory on Aminet? Yes! That's more than 20,000 modules to play and enjoy! So, why not have a program that could automatically download one module at-a-time, extract it, and play it using your favorite player? This is the purpose of AmiModRadio...

 

Essentials

AmiModRadio is composed essentially of four parts:

  • A small FTP client to access Aminet and download archives containing modules;
  • A XAD client to unarchive the downloaded archives;
  • A ARexx command-and-control system to gently ask players to play the module;
  • A MUI interface to control the various parts of AmiModRadio, in particular to permanently saved desired modules as well as pause/play and skip modules.

 

Downloads

AmiModRadio is open source. Its source code and binaries are available on SourceForge and BitBucket ! Manual and other resources are available below . AmiModRadio binaries are available here:

 

Command Line Usage

You can start AmiModRadio at any times from a Shell but RexxMast and a supported player must be availabe for options 2. or 6. to work: RexxMast and either EaglePlayer, HippoPlayer, or MultiPlayer must be running for options 2. or 6. to work .

After starting, the CLI-based interface looks like this:

where:

  • Source server displays the name of the current source of modules.
  • Root directory displays the current FTP root in which AmiModRadio will look for archives containing modules to play.
  • Current directory displays the FTP directory in which the current file has been found.
  • Current file reports the name of the archive that AmiModRadio randomly picked.
  • Current modules displays the names of the modules (and other files) in the archive, which are being played (if possible!).
  • Last message is a simple message to explain what is happening in AmiModRadio.
  • Status reports the state of the player.
  • 0. Quit AmiModeRadio is self-explanatory, isn't?
  • 1. About AmiModRadio reports the current version and date of the running AmiModRadio.
  • 2. Play the modules tells the player to play any loaded module or, if none, will trigger option 6 (see below).
  • 3. Replay the modules attempts to replay the modules from the beginning of the player allows it.
  • 4. Pause the modules instructs the player to pause the current modules.
  • 5. Remove the modules empties all modules currently loaded in the player.
  • 6. Fetch other modules is the work-horse of AmiModRadio: it connects to Aminet via FTP, randomly downloads an archive, extracts it content, and asks the player to play any modules.
  • 7. List banned directories will display the currently-banned directories, which AmiModRadio excludes from its search. (Not yet implemented.)
  • 8. Ban this directory adds the Current directory into the list of banned directories.
  • 9. List banned files will display the currently-banned files, which AmiModRadio does not consider while searching. (Not yet implemented.)
  • a. Ban this file adds the Current file into the list of banned files.
  • b. Save these modules will save the Current modules into some directory chosen by the user. (Not yet implemented.)
  • c. Set root directory as current directory allows playing modules only from the Current directory, for example to explore an artist's other songs.
  • d. Set/Reset root directory manually is quite self-explanatory
  • e. Choose source allows changing the source of the modules displayed as Source server. Currently, three sources exist: Aminet, ftp.modland.com, and modules.pl. (As of today, only Aminet and ftp.modland.com works because both use the FTP client, while modules.pl will require a HTTP client.)

 

A FTP directory should start with a "/" as in "/mods" (the default root directory) while all the files are saved in "T:".

 

MUI User Interface Usage

Since v0.91, a MUI user-interface is now available! It should be quite self-explanatory . Essentially, it will behave like the CLI version by downloading archives from a chosen source, extracting all the files, and instructing a player to play any modules for you!

 

v0.91 AmiModRadio MUI v0.91
v0.95 AmiModRadio MUI v0.95

 

Timeline

2015/12/07: The revamped MUI uses new icons and some interesting code to launch automatically players if in the path. It also include some user preferences, although they are not yet accessible from the UI. As a consequence, putting AmiModRadio in the WBStartup drawer will start AmiModRadio, which will launch the first player recognised in the path and play some music immediately! In addition to some refactorings and clean-up, this version also fixes bugs #13, #19, and #23.

2015/11/29: This version has a more complete MUI implementation. Now, it is possible to change the source and the root directory and to save the playing modules on a local disk! It also improves logging by not displaying the log page (tab) systematically but by using the bottom log bar. It finally includes some minor bug fixes and refactorings. 

2015/08/16: This version include lots of refactorings intended to share code between the command-line and the MUI user-interfaces. The MUI user-interface is now usable althrough not complete. It also includes bug fixues for #6, #7, and #8.

2015/08/02: This new version supports multiple sources of modules: currently Aminet and ftp.modland.com but eventually local disks and modules.pl. It also include an improved implementation of the FTP client and some bug fixes.

2015/07/28: Didn't plan to take so long between two releases but this intermediate release has all the features implemented. It also adds support for AmigaAmp and prepare the way for the next round of features, including the MUI user-interface!

2015/07/19: First complete, CLI-based version! I have been extensively using and testing it for a week and there do not seem to any memory issues left! Added EaglePlayer. Completed the implementation, including recursion and blacklist.

2015/07/12: After a momentary lapse of reason , the development resumed to implement a better text-based user-interface, separate the text-based from the MUI-based controls, fix some memory leaks and, overall, improve the usability of AmiModRadio. Next steps: finish implementing the text-based user-interface, in particular to allow baning directories and–or files .

2015/06/20: Improved the implementation of the ARexx client. Also started to work on the MUI user-interface, including its artwork. Changed the makefile to manage the data.

2015/06/14: Fixed several small bugs, added a simplistic CLI-based user-interaction, added support for HippoPlayer, improved the speed of the download.

2015/06/11: All the pieces are working together! Only MultiPlayer is supported, no CLI, no GUI.

2015/06/10: The ARexx client is working and can interact with AmigaAMP as test.

2015/06/07: The XAD client is working and can extract LHA (and any others!) archives.

2015/05/29: The FTP client is working and random archives can be downloaded automatically.

2015/05/20: Start of the project using the great Cubic IDE and vbcc.

 

Roadmap

Feature on the work are, in no particular order:

  • Saving user preferences, like the selected source server, the root directory, the directory in which to save the modules, etc.
  • Having AmiModRadio use multiple players depending on the type of the modules: e.g., AmigaAmp for MP3s and HippoPlayer for modules.
  • Adding a "auto-play" feature for AmiModRadio be notified when a module is over (if supported by the player) and downloading the next module automatically;
  • Making AmiModRadio starts appropriate players automatically if they are not already running;
  • Integrating with modules.pl in addition to Aminet as soon as I can access its APIs;
  • Adding a rating system to rate the files (some modules are great... others are... less so );
  • Making AmiModRadio work on AmigaOS v4 and Amiga NG hardware;
  • Making AmiModRadio work on MorphOS and non-680XX and PPC hardware (AROS).

 

Links

About FTP:

 

1 Icon by Rob (here) under CC BY v3.0 and Javier Ospino (jospinoj) (here) under CC BY-NC-SA 3.0, thanks!