AmiModRadio / 2015-08-30 10:27:13

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? This is the purpose of AmiModRadio...

 

Essentials

AmiModRadio is composed essentially of five 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;
  • A process to monitor the status of the player and warn AmiModRadio when the module(s) are over and new modules must be downloaded.

 

Downloads

AmiModRadio is open source. Its source code and binaries are available on SourceForge and BitBucket ! Manual and other resources are available on its Web page. 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 AmigaAmp, DeliTracker II, EaglePlayer, HippoPlayer, or MultiPlayer must be in the path or 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.)

 

MUI User Interface Usage

Since v0.91, a MUI user-interface is now available! It should be quite self-explanatory (Although, as of v0.91, it is not complete yet but usable.)

 

Tips and Tricks

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

If a supported player is in the path, AmiModRadio will start automatically a player to play modules if none is already running.

AmiModRadio now implements a continous-playing mode: it downloads new modules automatically when the player stops playing. The player must be configured to detect and stop playing endless modules, see the player documentation. (MultiPlayer does not support continous-layer mode.)

 

Timeline

2015/08/30: More refactorings and bug fixings. More tests and increased robustness (for example, if the player is closed during playing, during loading... or if a inexisting directory is set as root). This version also implements a continuous-playing mode It includes bug fixes for #5, #14, #15, #16, and #17.

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 fixes 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.
  • 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 under CC BY v3.0, thanks!