Help

Woof Moo
Server API powered by KenzoDB, written by Ken Garson Systems LLC

SEE ALSO: Frequently Asked Questions

Overview

This app is designed for two main purposes: listening to the live streams provided by WFMU, and accessing the archive of recently broadcast episodes. In service of this, a queue of episodes can be created, and played sequentially. Episodes can be downloaded for offline listening. Shows can be subscribed to, allowing for reminders to be set for when a broadcast begins, or when episodes of a show are archived.

It is important to first define some terminology. Hierarchically speaking, a show contains episodes, and the episodes consist of tracks. The archives contain recent episodes, grouped by their show. A stream is the sequence of episodes being broadcast live, before being archived.

Sections

The app has 2 main operating modes, depending on whether the playback controls are collapsed (shown as a small strip at the bottom of the screen), or expanded (occupying the entire screen).

When the playback controls are collapsed the app is split into sections, each of which are accessed via the menu button in the top-left corner of the screen (also known as the Hamburger Menu). Each section represents a major function of the app.

Note: You can quickly access this menu by dragging from left to right, starting at the left edge of the screen. If your version of Android is recent it may already use this gesture to navigate back and forth across apps. In this case, drag from the bottom of the left edge of the screen to override that gesture.

  • Home

This is the section shown when the app is first started, and it is divided into 3 parts (top, middle, and bottom). The top contains an Image Carousel. Some images may also link to videos or web pages. Tap on the image to navigate to it. The carousel is paginated (can be swiped left and right), to enable access to subsequent images.

Below that is the Stream Summary. This is also paginated, It represents the stream’s name (eg: Give the Drummer Radio), the show currently broadcasting on that stream (if any), and the title & artist of the track currently playing. The image on the left is the artwork for the current track, or the stream’s logo. The Loudspeaker button to the right is the quickest way to listen to the stream. (For more details of how this works, see the Queues section later).

Press and hold (aka Long Press) anywhere on the summary section to display a menu, allowing you to view the tracks played on the show so far (if they’re being supplied), or details about the track currently playing, if available. A single tap on the left-most image is equivalent to showing the information about the current track. To select between stream bitrates (influencing the sound quality), long press on the Loudspeaker button.

At the bottom are the Information Tabs. These contain general news items, and various related web pages, such as Twitter pages.

  • Now Playing

A summary of the tracks currently playing on all available streams. This is the same information that is displayed in the Schedules section.

  • Schedules

This section contains a schedule for the next 7 days for each of the streams, grouped by the stream’s name, and grouped by day. Each item represents an upcoming Episode of a show, and displays the show’s name, the DJ name (if available), and optional notes for the specific episode. The icon contains a unique 2-letter code for the show, which it fills in the manner of a pie chart as the show progresses. The right-most text displays the local time the episode starts, and some additional icons, depending on the status of the upcoming episode (eg: a fill-in, or whether the show is in your bookmarks). An episode shows the LIVE icon if it is currently being broadcast. The Dual Arrow icon indicates a fill-in, and a Bookmark icon means the show is in your bookmarks (see later).

The Loudspeaker button at the bottom-center of the screen serves the same function as that in the Home section.

Tap on the show to see more information about the show, including a list of archived, playable episodes of the show (detailed later in the Archive section). Tap & hold the show for further options, including opening the show’s web page, or adding the show to the list of bookmarked shows.

  • Archives

The archive section contains 2 main parts: Recently Archived Episodes, and Archived Shows. The archive is a list of Shows, with each show containing a number of Episodes.

A Recent Episode is an episode of a show that has been added to the archive in the last few days. These are displayed in order, the left-most being most recent, along with a description, and how long ago it was archived. This list can be scrolled to access subsequent episodes. Tap an episode to get information about the tracks played, and the comments submitted to it. Tap & hold the episode to access information about the show that it’s part of, to play it (either now or after what’s currently playing), or to bookmark that specific episode.

Below is the I’m Feeling Lucky button, which selects a random episode from a random show in the archive (which may or may not be recent). Otherwise it functions just as an item in the Recent Episode section.

The main section is the Show Archives, which is grouped by the show’s initial letter. This is every show currently in the archive, and each show contains a list of their Archived Episodes, grouped by month and indexed by date of that month. Most (though not necessarily all) have been archived in the last month. Tap the item to open the episode (or Tap & Hold it to play it, or add it to a queue.

An episode’s details dialog show 2 tabs: Playlist and Comments. The playlist, AKA the Accu-Playlist, is the chronological list of tracks played, grouped by Set. Each item shows the track’s title, and also the artist (if available). Tap the track to get further information on the track, or to search for further details of the track on last.fm, Discogs, Spotify, Google, or your default search engine. (Note that Spotify support requires a spotify account). Tap * Hold on the track to also have the option to start playing the episode starting at that track (if it was timestamped), or add it to a queue (also starting from the track).

  • Queues

This section lists the 1 or more queues that form the structure of the player. A queue (as distinct from a Playlist, AKA Accu-Playlist, which is the list of tracks in an Episode of a Show) contains the episodes or streams to be played, one after the other.

There is always at least one queue, called the Ad-Hoc queue. This can’t be deleted, and is mostly managed automatically by the app. It is the implicit, default queue when listening to a stream or an archived episode. For example, when you tap the Listen button in either the Home or Schedules sections, you are actually replacing the contents of the Ad-Hoc queue with just that single stream (a queue can contain episodes or streams), and then playing that queue.

Similarly, when you choose Play Next from a menu, you’re actually inserting the episode directly after what it currently playing in the queue. The important thing to note about the Ad-Hoc queue is that the app can cleared it at any time, so if you want something more permanent you need to create a queue for yourself.

When you create a queue, you can add specific episodes to it. An queued episode (or stream, although in terms of a queue, a stream is an episode that never ends) retains its last known position, and can also be reordered in the queue. It can also be Downloaded for offline access (explained in more detail later).

Each entry in the queue has a playlist, accessible from a single tap on the item. Note that tapping on the icon is equivalent to selecting it, which is how entries can be reordered, or multiple entries can be deleted or downloaded.

  • Downloads

This section shows the episodes that have been downloaded for offline access. It’s important to note that a download is only possible, and only remains present, for items that are also present in a queue. When the entry in the queue is removed, any associated download is also deleted. This is why it can be precarious to download something in your Ad-Hoc queue. It might accidentally be removed it at any time, when that queue is itself also cleared.

The section mainly serves as a summary of the queued entries that are downloading or have been downloaded. Downloads are always initiated from the Queues section, but can be managed from either section. Whether a download proceeds only if WiFi is available can be chosen in the app’s Settings page.

  • Bookmarks

Bookmarks enable quick access to specific shows, or specific episodes of shows.

It’s important to state that bookmarks are not the same as stars or favourites, and are not related to the stars you can place beside tracks on the WFMU web site. Indeed, there is no concept of a ‘favourite track’ in the app. Think of a bookmark as you would of your web browser’s bookmarks. They’re simply a shortcut to access something.

The section is split into 3 tabs.

A bookmarked Show summarise the show’s name, image, description, and when it was last broadcast, but also enable further functionality, in the form of Subscriptions. Tap the subscribe button to subscribe to a show. If subscribed, you now have the option of setting an alarm for when each new episode starts broadcasting live, or receiving a notification when an episode of the show is added to the archive. If you have subscribed to Archived Episode notifications, you can also choose an Archive Queue. When episodes are newly archived they will also be appended to this queue. I recommend you don’t choose the Ad-Hoc queue, for the reasons detailed in the previous section. Instead, create a dedicated queue for these episodes, and choose this as your Archive Queue.

Bookmarked Episodes are similar in functionality to Recent Episodes in the Archives section. They can be removed with a long-press on the item, followed by selecting Remove Bookmark.

Bookmarked Tracks reference the show they were part of when the bookmark was added, and if the corresponding show is still in the archive, they can be played again by Tapping and Holding the track and choosing Play Now.

  • Recent

This section contains a list of every episode or track you’ve listened to, both streamed and archived.

Each track, as it does in a show’s playlist, shows the track’s title and artist (if available), and also, depending on the grouping style, the time it was played. Items are by default grouped by Date, meaning each group defines the day it was played, and the right-most text defines the time in that day it was played. You can also group by Show, where the group defines the name of the show the track was played on, and the broadcast date of the show. If you listened to the show live, as part of a stream, the LIVE image is displayed, else the Broadcast Tower image denotes the day it was originally broadcast (not when you listened to it). In either case, and also when grouping is disabled, the right-most text defines the time you listened to it, relative to now (Twitter style).

If the track was part of an archived episode, and that episode is still available, you can play that archived episode, starting from the time the track started, via the track’s context menu. Access that, and other options, by Tapping & Holding the track.

Player

As previously mentioned, the app also has playback controls, in either a collapsed state (tucked away at the bottom of the screen), or an expanded state (occupying the entire screen). To toggle between these modes, either drag the player up, or tap the upward-pointing Double Chevron button.

Collapsed

When collapsed, the player displays the currently playing track’s title and artist, and a play button. The track’s text is constrained to its available space, but a single tap will scroll the text to make it fully readable. Tap & Hold the text to show further options, including showing further track information, or rewinding to the start of the track. The track display is contained in a pager, meaning it is paginated, so you can scroll back and forth to navigate the episode’s tracks. You can also double tap on the left or right half of the track’s title to skip back or forth a few seconds within the track.

There is also a play/pause button. When paused, the button flashes, indicating that even though it appears you’re “stopped”, you’re actually just paused. So if you were listening to a stream, you’re still building up a buffer of that data in the background (in case that, should you resume, you continue where you left off). If you’re sure you want to stop instead of pause, long press on the button and choose Stop instead. The stream will automatically stop after 10 minutes of buffering.

Also note the 2 pie charts behind the button, a red outer chart, and a turquoise inner chart. The red chart indicates your progress through the entire episode (aka Episode progress, if it’s possible to calculate), where a fully red chart indicates the end of the episode. The turquoise chart indicates progress through the current track (aka Track progress), where a fully turquoise chart is the end of the track. Episode progress works whether listening to a stream (because the schedule defines it), or an archived episode, which always has a definite length, but Track progress can only be known when the archived episode defines the start position of all tracks (or at least subsequent tracks). The app will however try to use the buffer to ‘look into the future’ and know when the current track will end.

Expanded

On expanding the player, the entire screen is replaced by more information, and further playback controls. These are split into 3 pages.

  • Comments

To the left is the comments page. This shows a chronological list of comments for the episode, ordered from first to last when the episode is an archived episode, with the timestamp representing the corresponding local time the comment was posted, or from most to least recent when listening to a live episode (Twitter style). In that case, the timestamp represents the duration between now and when the comment was posted.

To post your own comment, if possible, tap the red button. Note that, because you can’t sign into your account from the app, your comment is not linked to your WFMU account. Even if you use the same name as your account, it won’t appear to come from your account. If you need to post from your specific account, a link to the web page for the episode is present at the top of the comment submission form.

To keep your screen on while live comments are being updated, choose Keep Screen On from the menu.

  • Playback Controls

Located in the middle, this forms the main page of the player, and is where you’ll spend most of your time. From top to bottom, excluding the title bar, first there is the Timeline. This shows your progress through the episode (in red), and the points along the timeline where a new track starts.

Progress through the episode is also represented by the text in red below the time line, in the format “hours, minutes and seconds since the episode’s start”. The right-most text shows, by default, the length of the episode. Tapping on the text shows toggles between showing the episode’s length in different formats, and the time remaining. Icons to the right of this text show whether the player is actually playing (the Loudspeaker icon), whether what is playing is a live-streamed episode (the LIVE icon), and so on. If the sleep timer is active it will also be represented here (see later).

Below that, if defined, are specific notes about the episode being played.

Next is the main part of the page, the Dial. This represents and controls the position in the episode, and also houses the playback control buttons. As with a normal clock, each tick mark around the dial represents a minute of the current hour, where the top-most tick is always the start of the episode. Inside the ring of tick marks are a ring of dots and green dashes. A dot represents a track within the current hour. If the dot is hollow it has yet to be reached. If it is full it has been reached. A green dash (actually a pause icon) defines a Set Break, meaning a new set will start when this break ends.

As the episode progresses, a thin red line as drawn around the outside of the dial, indicating progress within the current hour. Any part of the line past the current position in the episode is the buffered position, meaning this part of the show is loaded into the app but not yet played. The space between the start of the current track and the start of the next track is represented by a thick gray line, and the amount of that line that the current track has played is represented by a thick turquoise line. Thus, as with the collapsed player’s pie chart, it represents the Track progress. When the turquoise line completely fills the gray line, the track is complete. Moving inside the dial, there is another thick gray line, and a thick red line. Once again, this represents the Episode progress. When the red line fully occupies the gray line, the episode is complete. Note that the bar starts at the top for archived episodes, but at the corresponding hour for the current episode of a live stream.

Moving closer to the center, there is now a single red dot. This is the control handle of the dial. It points to the current position within the hour. It can be dragged to change the position within the episode. If it can’t be dragged (for example, with a live stream), it will be hollow.

At the center of the dial is the play/pause button, which works the same as for the collapsed player. However, tapping the space around the button (inside the dial) shows a secondary set of buttons, allowing you to quickly skip backward or forward a few seconds, skip back to positions you’ve recently skipped from (aka undo), and stop playback. Note that, for the skip buttons, repeatedly tapping the button increases the amount skipped per time (e.g: 5 seconds the first time, 6 seconds the next, etc). Also, as a shortcut, you don’t need to show the secondary buttons to skip. Just double tap the left or right half of the dial at any time. The tilt animation will indicate the gesture has been recognised. To change playback speed, and thus skip forward with more precise control, tap to display the secondary buttons, then tap and hold on the play/pause button, and drag either left or right. This will decrease or increase playback speed respectively, and tilt the dial, until you release your finger.

Finally, at the bottom of the page is the current track title & artist display. As with the collapsed player, it is paginated, so scroll back and forth to navigate between tracks, and long press on it for further options. Above it is the index of the track within all the episode’s tracks, and the time the track ends. As with the track progress time discussed earlier, tapping on the time text toggles between showing when the track ends, and how long it has to run.

  • Playlist

To the right is the playlist page. As with the playlist of an archived episode, this is simply a list of the tracks of the episode. If this is a live stream the list will grow as the episode progresses. The track currently playing displays a Music Note icon next to its timestamp. Tap on the track title to get further information about the track, or tap on the track’s icon to skip to that track in the episode. Further options are available by tapping & holding on the item.

In common with the Comments page, the tracks are listed from first to last when the episode is archived, with the timestamp representing the time within the episode the track starts. When the stream is live, the top-most track is the most recent (current) track, and the bottom-most the least recent. The timestamp represents the duration between now and when the track was started.

Miscellaneous

  • Sleep Timer

A sleep timer function is provided by the Expanded Player, on its menu (the button at the top right corner). When activated, the time will count down in the player, and which point playback will be stopped. When active it is indicated by the “zzz” icon next to the episode duration text.

  • Chromecast

Chromecast is supported, with caveats. To use it, choose the episode or stream to play, then select the Chromecast icon as normal. You can now listen on your Chromecast device, and control it from the app. Currently, queues are not supported, meaning when the current episode ends, the next episode in the queue does not play (though with a live stream this doesn’t matter, as a live stream never ends).

  • Android Auto / Google Home

Both are supported to the extent that I can test them, as I own neither a car or a Google Home device. But as far as I can tell the Android Auto interface matches closely with that of the main app sections, and voice control seems OK in most situations, although speech recognition for certain show titles can be a problem.

  • Streaming vs Downloading

In general, streaming means listening to an archived episode or a channel (aka a live stream) without having downloaded all of it beforehand. Therefore the default way to listen to an archive episodes is to stream it. Channels are always streamed, with a buffer of between 5 to 10 seconds, and archived episodes are streamed in chunks of approximately 10 to 15 minutes. A channel uses approximately 16 kilobytes of data per second.

Known Issues

  • Comments sometimes do not successfully post.

    This is an ongoing issue, due to many factors, mainly the fact that it’s intermittent, possibly not my fault, and I can’t post thousands of test messages to the comment boards for each potential fix. But it is being actively worked on.

  • Some interrupted downloads can’t be restarted, especially if a recently archived episode.

    No known workaround. (Issue is due to the way Android checks that the file can be resumed, and the lack of support for this on WFMU’s servers).

  • Scrolling stops working on the Comments (left-most) page of the Expanded Player, causing a swipe down to drag the player down instead.

    The workaround is to choose “Reset Player” from the options menu. (Note that this may already be fixed, but it’s hard to verify

  • If a Chromecast session is started for another app is still broadcasting, the app’s playback controls doesn’t accurately reflect the status of the Chromecast device (i.e. is says it’s paused when it isn’t).

    The workaround is to either stop casting the previous app beforehand, or to restart the WoofMoo app. The easiest way to do this, strange as it seems, is to rotate your device so the screen rotates. It should then catch up.

  • “Follow System Setting” and “Follow Battery Saver” themes are unreliable.

    The workaround is to choose a specific theme instead.

  • Occasionally, playing an archived episode results in a 404 error code.

    This code means the associated file was not found. It usually implies the file has been removed from the archive in the time between adding it to your queue, and it actually being played. This usually occurs after 28 days.