Ingredients for an Album/Track page

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!
gusaus's picture

This wiki is an attempt to explore the various options we have to build an album page with the ability to play individual tracks as well as the complete album/playlist. Ideally we'll get input/advice from some of those who have built and/or implemented this type of solution.

Examples

Drupal site examples

Drupal driven sites with album/tracklist players.

Non-Drupal examples

For inspiration and ideas,

Key functionality

  • Allows you to "preview/listen all"
  • Allows the user to click to play another song and automatically stops playing the previous song, if another one is clicked.
  • When a song finishes playing it automatically moves to the next song.
  • Volume, pause and play control
  • Option to 'pop-up' player

Options/Ingredients

Attaching audio

  • Audio module - http://drupal.org/project/audio
    • allows users with proper permissions to upload audio files into drupal.
    • Each audio item is created as its own individual audio node.
    • uses the getID3 library to read and write ID3 meta-tag information to and from the audio file.
  • Media Field - http://drupal.org/project/mediafield
    • CCK fields for storing audio
  • Embedded Media Field (http://drupal.org/project/emfield)
    • This extensible module will create fields for node content types that can be used to display video, image, and audio files from various third party providers.

External audio

  • Sony BMG - http://drupal.org/node/241344#comment-795344
    • Tracks are their own nodes with a node reference to the album and a cck field for the track url which is then served up through a custom player.
    • The actual track is hosted on a third party server so we just reference the location within the node and let the player deal with serving up the actual track itself.
    • Node creation of Albums and Tracks is automated through a custom module that uses the Amazon API to generate the nodes. You could use the Amazon services module for something like this.
  • Embedded Media Field and XSPF playlist? - http://groups.drupal.org/node/8757#comment-32596
    • Per athurf (http://groups.drupal.org/user/630) - XSPF Playlist is just building playlists off data that is defined from nodes. It shouldn't be hard for me to create an option to save an XSPF file in the db for retrieval- potentially, I see a mapper for FeedAPI that takes XSPF playlists and then saves them.

Creating playlists

  • XSPF Playlist - http://drupal.org/project/xspf_playlist
    • generates a XSPF playlist from files that are attached to a node.
    • It was designed for Jeroen Wijering's flash player, though it should work with other flash players.
    • The admin interface allows the administrator to select what node types it works on, choose a default thumbnail file to use, and forthcoming support for CCK fields.
    • It also supports multiple file types (audio, video, flash) that are supported by the flash player.
  • Media Mover - http://drupal.org/project/media_mover
    • a suite of modules which can convert content to FLV and then can be integrated with XSPF Playlist

Flash Media Players

Controlling the player

Login to post comments

hi

illSleepWheniDie - Tue, 2008-04-22 03:22

last.fm?


Audio module as multi content type

slipxnot's picture
slipxnot - Sun, 2008-05-04 22:34

hey i was wondering if it can be done to create a new content type of music album that got album image and multiple fields of the "Audio module - http://drupal.org/project/audio " and also got few fields in place of submiting every audio in single node and then join them


check this out.`

philk - Thu, 2008-05-08 09:44

You can use views to group all the album tracks together and add in the album artwork that way. check this out:

http://groups.drupal.org/node/10869


That's what is described

thomas23's picture
thomas23 - Wed, 2008-06-04 00:28

That's what is described above under "Controlling the player":

The Four of Us (example by dublin drupaller here - http://groups.drupal.org/node/10869) - The audio player is controlled using a mix of mainly prototype and soundmanager2. It's a fairly heavy set of js at the moment but the plan is to trim it down and either create an add-on .inc for the audio.module (if there is enough interest) or integrate it into views, so it can be used for any drupal playlist.


how do you group the tracks

davebv - Tue, 2008-06-03 15:15

how do you group the tracks with views? may you point to some example? I didn't find any views filter/field in which I can select album name.
thanks!


The album names come from

darkbrewery's picture
darkbrewery - Wed, 2008-09-24 00:50

The album names come from the id3 tags, which aren't very reliable anyway.
There is a nice way to do this with Node Reference Fields within an "Album" Content Type.
Then each Track/Song Can be chosen at the create album screen, referencing a new custom view on a per track basis
(single table row in the final list-view).

I'm trying to do this on a multiple-artist site and passing arguments is giving me a real headache.
Single-artist sites should be much easier.


Album names as taxonomy terms

dwees's picture
dwees - Wed, 2008-09-24 04:56

Why not Album names as Taxonomy terms? Then each artist becomes a top-level term in the vocabulary, and each next level term is an album, and each song has an album term associated with it, as does an Album node type.

Then you can leverage existing views to view artists, etc...

Dave


Nodes & Content types = A proper ALBUM

xaccrocheur-gdo's picture
xaccrocheur-gdo - Sun, 2008-11-02 20:36

Wow, Darkbrewery, you ignited a spark in my foggy brain. Thank you about that. Could please elaborate a little ? I too am setting up a multi-artist site, and I'd like to know :

I already created an "album" content type, how can I create "Node Reference Fields within it" ? Using the taxonomy module ? Or the CCK one ?

What I'd like to do is
- allow reg. users to create albums
- Attach cover artwork
- upload audio files
- attach them to the said album(s), and then use getid3() to write user-entered tags to the audio files,
- create a playlist on the fly per album, so that the

Then anonymous users will then be presented albums, not audio files, and will be able to listen the whole XSPF playlist through a player that knows how to handle them, then (possibly, this is not even prototyped) download the whole album properly tagged and gathered into a nice zip, along with the aforementioned playlist.

I tried various setups, had a go at taxonomy but got lost. I know I have to learn and master the drupal node concept, but I wiew this challenge as a way to do just that.

So my question really is : How do one start to create a full-featured "Album" object ?

Excuse this long introduction in a poor 2nd grade english but I wanted to present myself a bit to you guys.

Now I'd feel bad if I would not say : Drupal rules. Every core, optional, module developper and every person working on this wonderfully elegant and powerful tool deserves my total admiration.

Hope to hear from you soon


demo music shop

Phillip Mc - Tue, 2008-11-04 18:08

worth mentioning on this page the demo music downloads shop by dublin drupaller that's being used to showcase a new payment module that allows ppl to pay for stuff using their mobile phone.


You'll want to use CCK

darkbrewery's picture
darkbrewery - Wed, 2008-11-19 05:45

Well at least this is where I've had sucess (CCK)- http://www.discoverrock.com/album/style

I actually have 3 main content types: Artist Album Audio
Where audio content type has been created by the Audio module.

Each content type references the next as below:
Audio references the Album and Artist it belongs to (select list)
Album references the Artist it Belongs to (select list)
Artist doesn't contain any node reference fields

So to add an album node, one must first have an artist node to reference.
Then to add songs to an album you must have an album node to reference.

I believe that the best way to format the album pages is as a view:

  • Name: album_tracks
  • Description: Table of Track Info for album panels
  • URl: track-table (won't be used anyway)
  • View Type: Table View
  • Title: Track Table (overwritten later)
  • Pager: None
  • Provide Block: Yes
  • View Type: Table View
  • Nodes Per Block:100

Fields:

  • Audio: Tag track
  • Node Title
  • Audio: Play count
  • Audio: Length
  • Audio: Player link/flash

Arguments:

  • Node Reference: Album (field_album_reference)
  • Default: Display All Values
  • Argument Code: $args[0] = arg(1);

Filters:

  • Node:Published Equals:Yes
  • Node Type: Is One Of:Audio

Sort Criteria

  • Audio: Tag track
  • Order: Ascending

In the link I've given above I'm using the block we just created in a "node override panel".
This is used on every album page to separately bring in the album cover and artist reference.
More about this site at: http://drupal.org/node/279043

Hope this helps.


What is the player do

adrianmak - Thu, 2009-03-05 11:34

What is the player do Daughtry and sony mplay used ?


Soundcloud Integration?

cookiesunshinex - Wed, 2009-07-15 22:54

Has anybody used Sound Cloud with a Drupal site?

I would like to build a site that uses artist, song title, ratings of the songs, but host my audio files at Sound Cloud (http://soundcloud.com/)

Any ideas of how best to do that?

They have an API here - http://soundcloud.com/api

Would it be possible to create a custom CCK field type for sound cloud. I know there are custom CCK field types for Media (video - youtube, and images - flickr, and audio) so this must be possible.

Thanks