So far, I've released 6 major versions of tappr.tv, with each release having a specific theme:
- Wands = the basic input-output architecture
- Loops = recording and playing back tracks
- Dances = recording and playing back in time with a song
- Community 1.0 = publish dances and subscribe to favorite artists
- Effects and Inputs = symmetry mode and audio in
- Live 1.0 = dynamic BPM-based loops, network IO for real-time multi-device input
I'm working on a 6.2 release that modernizes the code, fixes some critical bugs, and addresses a few minor UI needs, but otherwise doesn't offer any significant new theme.
After that, I've got several big themes to tackle. In no particular order beyond the first:
- Remix
- Playlists
- Wands
- Community 2.0
- iRadio
- Apple TV
- 3D
- Web
- Live 2.0
Remix (v7)
Allows a user to dynamically "join" a dance in the Theater, and auto publish a remix
Allows a user to manually remix a dance = make a new dance by including tracks from other dances (to the same song)
When remixing a dance and user is original publisher, user is asked whether to prepare a new version or a remix
Before publish, check that all the tracks are NOT by just one dancer
On activity (publish/rating/sharing), send a push notification to each included dancer
Theater grid cell must be updated to expose the dancers
Theater dance (grid cell and/or stage) must have a details view
Dance versions = user (or admin) can publish a new version of a dance with changes to song or track list
When updating subscriptions, handle updated dance versions
Add minimum app version info to published dances
Playlists
Need a new UI that allows for many lists
Lists can be manual or smart
Manual list = user can add and remove specific dances
Smart list = user can define predicates that query the server, can remember last date to automatically get deltas
Lists can be published and subscribed
All new users create and publish a list, e.g. name = "deeje's 4 star ratings" dance, where user = user, rating >= 4 stars
All new users get subscribed to "deeje's 4 star ratings".
Published lists generate smart push notifications when going into background, e.g. "deeje's 4 star ratings list just got 4 new dances"
All the lists in Theater become pre-defined playlists
Studio is also a set of lists. Can Studio and Theater also be combined into one?
Wands
wand maker UI = expose many of the properties of wands for user editing
Wand single-touch behavior property = point, line, circle
User Wands Playlist = each user gets a
Non pro users only allowed 3 new wands per week, 12 total. All pro users can create as many as they want.
Non pro users get local push notifications for 4 weeks.
Community 2.0
Builds on Playlists and Wands
Tags = allow user to add tags to a dance
Followers?
ADN?
Newsletter? need to add UX to first launch and settings
Twitter Cards?
iRadio
Add support for iRadio, Rdio, Deezer, Grooveshark
Incorporate into artist subscriptions
Rework the first launch UX for this
Add support for whatever Apple does
Fall back to these services for song thumbnails
AppleTV
A version of the tappr.tv UX that works within the AppleTV SDK.
It wouldn't have the studio interface, but it would have the theater auto-remix feature
And it would have the network IO so that users could pull out an iPhone, put it into Wand mode, and dynamically join the dance
And it would hopefully have iRadio
3D
Wands now include a z parameter, normalized just like x and y
Inputs can be configured to route their inputs to specific wand attributes.
Composite touch pads = combine 2 or more inputs, e.g. two touch pads to control 3D, or several touch pads for a drum kit.
Tracks can also bounded and oriented within the 3D space
Web
Implement the playback engine using WebGL
Use RESTful versions of Rdio, Deezer, Grooveshark, et al for the dance song
Allow visitors to rate and share, optionally becoming members
Home page would have a radio-like experience
Live 2.0
Allow Live dance stages to be persisted and published
OSC input = allow external OSC masters to trigger specific loops
WIST support = allow master to synchronize BPM and timing