Music Features for Drupal

zirafa's picture

In this thread the question is asked if a music distribution or separate modules is the best way to achieve turn key functionality needed for a music site. The answer, I believe, is an alternative path.

The alternative path is to abstract things out into an application layer, with Features. There is lots of info about Features on the project page (and it shares some ideas with the now defunct Patterns module), but conceptually this graphic sums it up best:

Having had some experience working with Features this year, I can tell you it is pretty raw. A Feature has hooks and functions to turn on and off things on your site. At its simplest, it will turn on a few modules and change a few defaults. At its most complex, it will need to manually override database variables. It's messy development and takes time. But the real beauty is that it allows developers to focus on functionality instead of technicality. It also allows independent development of features that, combined, can achieve something that looks like a distribution. And for the user, they don't need to know how it works, they just need to know what it can do.

We are lucky, since we have already identified some useful features needed for an art & music Drupal site / mobile application, and perhaps the next step is to refine and prioritize the list.

1) Standard theme, optimized for touch screens & mobile devices.
A Drupalized jQuery Mobile theme would probably work fine.

2) Contact/booking info for band

3) News updates
Page with news updates, pushes out to other sites (facebook, twitter).

4) Tour updates
Page with tour dates and locations, pushes out to other sites (facebook, twitter).

5) Capture Contact information.
Fans, Venues, Booking contacts, Friends. Lightweight CRM basically.
Ability to search & email blast regionally.

6) Discography / Listen
Create a song, associated with an album and other metadata. Audio attachment or link can be associated with the song.

7) Store feature(s)

8) Members only feature(s)

I prioritized things from the perspective of a band or tour manager traveling to gigs, needing an application to easily push out updates to social websites as well as capture contact information on the run. (Items 1-5)

Items 6-8 are equally important but also more complex...things to keep thinking about. File handling and payment processing can get complicated real quick.

Comments

good post

Dublin Drupaller's picture

hi Zirafa,

interesting post. As a tip, it's worth looking at the patterns module as well. when discussing this before: http://groups.drupal.org/node/21648#comment-75535 I was thinking of using patterns alongside features to make it easier for devs to pull down their required code. Around the same time I remember piecing together a simple discography feature and it's relatively easy to approach each element that way.

As an aside, it's over a year since this topic was raised. Do you have any ideas on how best to actually move this forward? I notice the kendra hub guys are still waiting for funding. Would be a shame to see it slip again...drupal is perfectly poised to be a platform for artist/band websites.

dub

Hey Dub

zirafa's picture

I remember Patterns was suggested, but looking at the project page it seems to have stalled (no proper 6.x releases). If anybody has more info about it, that'd be great but for now I'm assuming it is pretty dead. That being said, using Features and tweaking it in code can do a lot. Bundled with an install profile or drush it pretty much gets us there. Drush especially automates a lot of setup/download.

The reason I also suggest Features is because it will allow asynchronous, agile-style development of smaller parts of a larger, somewhat intimidating and hard-to-pin-down project. If someone is motivated and would like to develop they can get started on a small independent piece and can just post here in the art-music group about their work or even host it on a public features server.

My short term goal is to identify key features and a common framework for developers to hack at this thing all at once, maybe some nice how-to instructions. Beyond that I'd rather not make any assumptions about how it might/could/should move forward or trying to task out things.

I am interested in working on a decent mobile theme first. I think it'll help simplify a lot of the other steps and I like the idea of this thing as an app.

If anybody is interested in learning more about Features let me know - I'll try and help as much as I can.

Features seems like a great approach...

gusaus's picture

I put together this wiki awhile ago (http://groups.drupal.org/node/21903) and I believe most of the distributions use features. Would make a pretty good case for doing something similar for an artist, label, or related solution.

Per Dub's last point - Drupal already has proven to be a solid platform for artist/band websites. Releasing and maintaining a solid, freely available solution on drupal.org is a bit more of trick...less daunting if there was a way to fund such an effort.

This is one variation of such an idea (http://groups.drupal.org/node/21648#comment-295454) and what we'd need to make yet another go.

Simply put - I think we should treat it like a client gig - let's scope it out and see who'd be interested/available to develop and design. For this type of project, I still believe raising enough funds to move forward would not be difficult.

Ready to jump back in, Dub!?! Zirafa?

Gus Austin

Hey Gus, I do have some

zirafa's picture

Hey Gus,

I do have some limited availability and interest atm, here and there. I'm approaching this whole thing with cautious optimism. The itch I'd like to scratch may not be everyone's itch...or as itchy, or prioritized the same way.

I just read up on the jQuery Mobile theme stuff and it looks like it should get a proper release early next year, it's still a moving target. Right now I'm going through how it works and it's pretty interesting stuff, but somewhat of a break from the existing Drupal theme convention.

Will keep ya posted.

Updated priority list

zirafa's picture

I've updated and re-prioritized the above list for my ideal feature set / distro:

1) Simplified, standardized theme
A Drupalized jQuery Mobile theme is the goal. For now a simplified one column layout should work just fine. Easy to tweak, easy to use.

2) Contact form

3) Discography / Listen
Create a song, associated with an album and other metadata. Audio attachment or link can be associated with the song.

4) Status updates
List of status updates, pushes out to other sites (RSS/Atom, Facebook, Twitter). Pulls in updates from friends as well for more interaction. Should hook site into real-time social web. Status can be a short update, image, link, or a longer text (blog-like) entries. Input can understand user intent through context and format the data appropriately (i.e. if a link is to audio, show a player and pull in a thumbnail).

5) Basic page
Ability to add simple pages to add to the site, for biography, about, special rant, campaign, etc

-- Design principles --

  • Optimized for a single administrator.
  • Minimal design & feature set, with a back end user interface focused on usability and speed.
  • Very few (ideally zero) third party modules (depend on core and configuration as much as possible).
  • Extendable and customizable for all of the above reasons.

I believe the challenge for a good distro is to focus on the out-of-the-box user experience over customization, as well as to try and keep things lean by quickly and continuously eliminating unnecessary or outdated functionality. As developers, we must shift focus away from Drupal as a platform/product itself, and learn to think of Drupal as an engine powering a great website or webapp.

I've begun some preliminary work on this and hope to have something to share sooner rather than later.

Upcoming version of the Open Publish distro

gusaus's picture

Just saw this post about some of the lessons learned from the folks behind the Open Publish distribution (and the current maintainers of the Features module) - http://www.agileapproach.com/blog-entry/sneak-preview-get-ready-new-open...

Good read that definitely reinforces the lightweight, features driven approach described in this post. Also brings up another interesting question. Should we focus our attention on Drupal 7?

Gus Austin

Great read. I definitely want

zirafa's picture

Great read. I definitely want to focus on Drupal 7 right now. One thing I'm not sure of is how much customization to give to a user out of the box for layouts. It's tempting to try include Panels or something like OpenPublish's drag n drop interface, but at the same time I'd rather lock down this kind of customized functionality (at least out of the box) for the first version. It seems better to focus on making it easy to swap out backgrounds, header graphics and colors vs. actual position and # of elements.

Possibly some common features and functionality?

gusaus's picture

In addition to lessons learned, there are probably common features and functionality between Open Publish and a music distribution. All the more reason to keep pushing this forward.

This group I previously set up on DrupalKata.com (built on another Drupal distribution) may also help us organize and collaborate - http://drupalkata.com/music/

I also set up a sandbox on WebEnabled - http://drupal7media.sandbox.drupalkata.com/

Let's do this!

Gus Austin

Where does Pushtape fit in?

gusaus's picture

Farsheed - congrats and thanks for posting about Pushtape! http://www.chapterthree.com/blog/farsheed-hamidi-toosi/pushtape-music-pu...

Pardon me for being confused (I'm very good at it!)... but I'm having a hard time figuring out where Pushtape fits in. Will Pushtape essentially be the 'Discography/listen' module/feature that you describe in the above posts? Or will the discography be the first part of a suite of features that would make up the 'Pushtape' publishing platform? It's looking like it will be more than a module? http://drupal.org/project/pushtape

Any additional info on the project and how people/companies can contribute would be great!

Gus Austin

Hey Gus, Thanks for the nod

zirafa's picture

Hey Gus,

Thanks for the nod about the post :) I spoke pretty generally in that blog post since I didn't want to get too technical.

Pardon me for being confused (I'm very good at it!)... but I'm having a hard time figuring out where Pushtape fits in. Will Pushtape essentially be the 'Discography/listen' module/feature that you describe in the above posts? Or will the discography be the first part of a suite of features that would make up the 'Pushtape' publishing platform? It's looking like it will be more than a module? http://drupal.org/project/pushtape

The latter - the discography is the first part of a suite of Features that will hopefully all get wrapped up with a theme. Whether that final product ends up being a drush .make file or install profile or something, I'm not sure just yet. So to answer your question more specifically, right now the plan is to have one custom module for general UI/Form improvements, with 3-4 Feature modules that handle a portion of the functionality (i.e. discography) and a mobile friendly theme of some sort down the line.

Any additional info on the project and how people/companies can contribute would be great!

Definitely, right now this is just a project I'm doing in my spare time and putting more fuel behind it sounds like a potentially exciting prospect. Not sure how that would look at the moment, but open to ideas and suggestions.

This might be a stretch...

gusaus's picture

Do you see Pushtape as something that could evolve into (a working version of) Backstage or MD4D, but with a the lightweight, features driven approach similar to other distros such as OpenPublish.

If not, what am I still missing?

Gus Austin

Yes! That's exactly the idea,

zirafa's picture

Yes! That's exactly the idea, you've got it. The goal is to create a lightweight, features driven music distribution for Drupal, one Feature at a time. That could (hopefully) evolve into a packaged and hosted solution down the road.

At this stage, focusing on solving some of the most common issues involved with discography publishing is the goal. Things like creating a track, associating and arranging tracks into albums, and creating useful views and listings to browse albums and tracks.

How are things progessing?

gusaus's picture

Hey Farsheed - just checking in to see if there's any progress or better yet, any way the music loving Drupal community can help?

Gus Austin

Hey Gus, I'm aiming for early

zirafa's picture

Hey Gus,

I'm aiming for early to mid August to setup a demo site running some code to create tracks and albums. This would allow non-developers as well as developers in the Drupal community to see ongoing progress and capture some feedback about the user experience without getting too caught up in installation hiccups.

If you don't see me post something by mid August, start nagging me! ;)

F

awesome

Dublin Drupaller's picture

that's great news zirafa....looking forward to it.
dub

Let's take advantage of the d.o. project too

gusaus's picture

Great to hear Farsheed. Makes total sense to have a presence outside of this scary, confusing, political space known as Drupal. Should we assume http://pushtape.com/ will be the goto site for the demo?

As there are others (including those speaking in this thread) already contributing towards similar features, I think we should take advantage of the project space you already set up. http://drupal.org/project/pushtape

There's at least one other fool already posting feature requests there (;

Gus Austin

Yep, the demo will probably

zirafa's picture

Yep, the demo will probably somewhere on the pushtape.com domain or a Pantheon instance.

Creeping towards late August

gusaus's picture

Is it time to start nagging (: Actually, as you know I'm interested in helping move http://drupal.org/project/pushtape along. Would be especially a good time to have something to show with all the cool kids converging in London next week!

Gus Austin

Demo site up

zirafa's picture

Demo site: http://test.pushtape.gotpantheon.com/

Thanks for the reminder Gus. Check out the demo site and try out the workflow! Right now you should be able to add a new track and a new static page. In particular I'm curious where you get caught up, frustrated, or confused with the UI.

Notes:
- Music uploading/file uploading is not supported.
- The workflow treats track creation as the primary task, and album creation as a secondary task.

Some immediate things I'm working on:
- Deleting an album node orphans its tracks
- Track info not actually inheriting album info when left blank
- The track node and album node view needs work - in particular the Track URL display.

Other notes:
Modules: pushtape, features, ctools, filefield_sources, panels, pathauto, references, token, views. I'm reaaaaaallly trying hard to keep the module count low. This project is an exercise in restraint and trying to leave out as much as possible. :) The goal is to setup the basics so its easy to modify/extend.

not working for me

chrowe's picture

Seems like a great start!

I like the track centric approach when I am adding a single track.
Is there a way to add a track that is not on an album?

It would be great to enable adding multiple tracks at once to a single album.

Hey Chrowe, Did you get it

zirafa's picture

Hey Chrowe,

Did you get it working? (in reference to the title of your comment)

Is there a way to add a track that is not on an album?

Definitely, this is a valid scenario. Where would the loose tracks display, maybe a list view of all tracks on the side of the front page?

It would be great to enable adding multiple tracks at once to a single album.

The album view still needs a way to sort tracks. Possibly using a noderef field to update the associated tracks would allow sorting as well as adding/deleting multiple tracks at once. I could use some help/pointers in overriding the D7 default noderef field, since the UI could use some improvements and there will need to be a bit of custom code to update the Track->Album relationship on save as well.

Great start!

gusaus's picture

So great to see this! I went ahead and x-posted this to the relevant issue on the Pushtape project page.

Gus Austin

Let's band together!

gusaus's picture

It would be great to see more individuals and companies band together and push this forward. @dub - are you listening? Looks like we have a fresh start on this! http://groups.drupal.org/node/21648

Gus Austin

I'm listening

Dublin Drupaller's picture

heya Gusaus..I'm definitely listening. great to see things finally coming together. am in london at the moment but will try and find time over the next week or two to contribute. dub

Trying to piece everything together

gusaus's picture

Hey Dub! As you know, there's a been a lot of blood, sweat, and code already put into this effort. We're starting to use http://drupal.org/project/issues/pushtape to prioritize features and look for overlap with other people and projects.

Of course things could blow apart in dramatic fashion anytime, but I like how things are lining up!

Cheers

Gus Austin

I'm not much of a coder, but

glarsch's picture

I'm not much of a coder, but I was just browsing around for this sort of functionality and was pumped when I saw this thread. I can definitely help test. I'm glad to see something like this in the works.

Get your feature requests in!

gusaus's picture

I've pulled some more feature ideas predominately from the following places -
http://groups.drupal.org/node/111789
http://groups.drupal.org/node/21648

See anything we're missing so far? Add a feature request -
http://drupal.org/node/add/project-issue/pushtape

Gus Austin

Music Apps!

gusaus's picture

From the Apps project page -

First there were modules, then there were Features, and now there are Apps. Apps is the next generation of extensibility and interoperability for Drupal. They provide a much better user experience of extending your Drupal site by providing facilities to download modules and all of their dependencies in one easy step.

Much more detail here and here.

Instead of debating about what features to include in Pushtape, we should take a look at Apps that already exist or might be in the works for other distros and see if/how we could collaborate. There might be some overlap with Open Public (Events app) and Drupal Gardens already.

Gus Austin

Music

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week