The Music of Charles Booker

Error message

  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$field_skill is deprecated in field_attach_load() (line 661 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$rdf_mapping is deprecated in rdf_entity_load() (line 412 of /home1/tastawer/public_html/modules/rdf/rdf.module).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$_field_view_prepared is deprecated in field_attach_prepare_view() (line 1154 of /home1/tastawer/public_html/modules/field/field.attach.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$entity_view_prepared is deprecated in entity_prepare_view() (line 8296 of /home1/tastawer/public_html/includes/common.inc).
  • Deprecated function: Creation of dynamic property FieldCollectionItemEntity::$content is deprecated in EntityAPIController->buildContent() (line 587 of /home1/tastawer/public_html/sites/all/modules/entity/includes/entity.controller.inc).

You are here

The music of Charles Booker

Charles Booker is a friend of mine; we've played trumpet in a few ensembles together. Not only is he a fantastic trumpet player, he's also an amazing composer. The Pride of San Antonio Showband even got him to compose a piece for them as part of the City of San Antonio's Tricentennial celebration.

This site represents my first foray into using Drupal 9 as a development platform. It was a challenge and a learning experience to utilize all the new tools available to me in this new version of Drupal. The site features a few standard elements for self promotion sites: about section, news/blog, photo gallery. The real meat and potatoes of the site, though, is his catalog of works; he has written over 100 pieces of music in his career. 

His previous site featured a mishmash of pieces available through a custom built store on the site, as well as links to publisher websites. We decided early on we would streamline the process and only link to pieces via their respective publisher.

The previous site also had often incomplete information for his pieces, and in many cases, pieces were completely omitted. I used a list of pieces he provided to populate the initial catalog, and then added cover art, purchase information, and audio/video samples for nearly every entry in his catalog.

Designs were mocked up using Sketch, and Foundation 6 as a base grid for prototyping the HTML and CSS. Drupal uses Twig as its' templating language, so that's baked into the site as well. 

The site is fully responsive and scales well from mobile to tablet to desktop.

To make his site more user-friendly, I created a custom content type for his music entries so you can search for his music by title, grade, difficulty or by ensemble. In addition, each music entry features descriptions, cover artwork for the pieces, where to purchase and audio/video links to samples of the piece. There's even space for instrumentation and any additional information for each piece. It's really quite sophisticated.

In the near future, planned enhancements include refinement of the search filters for to make it more obvious that you can multi select by using checkboxes instead of the multi select list that currently appears. I just need to wait for the relevant module in Drupal to be ported to D9. I also have planned enhancements to the custom photo gallery to allow previous and next entries in the photo gallery. 

This project makes use of:

  • Sketch
  • HTML 5
  • CSS 3
  • Foundation 6
  • Drupal 9
  • Twig

More Views


About Page
Basic Page
Catalog of Works
Individual Music Entry
Individual Music Entry
Photo Gallery
Photo Gallery