Dafe has posted 1 posts at DZone. View Full User Profile

PartyBand: Repertoire & Gig Playlist Management on NetBeans

04.22.2012
| 3079 views |
  • submit to reddit

My name is David Šimonek (nicknamed Dafe), NetBeans commiter and supporter of the project from the earliest hours. For many years, I worked on the NetBeans team and contributed to the NetBeans core. While recently I shifted my main focus to modern web development, I'm still using the NetBeans Platform for my weekend project called PartyBand.

PartyBand is a repertoire and gig organizer for bands and musicians. Users can search for songs, and view & edit music resources such as song lyrics, chords, tablatures, play audio & video, group songs into play lists, print, export play lists, and much more. It is ideal either for music bands or solo musicians. PartyBand aims to save time and raise the quality of practicing and gig preparation.

I've found very few software projects for musicians aiming to help them in repertoire and gig playlist management. And I don't know of any similar project which would be open source and free.

Getting Started

Getting started with PartyBand is easy. First download and install (see http://code.google.com/p/partyband/#Download_&_Installation), then let PartyBand import music resources that you have on your discs, flash cards, etc. After importing, you are ready to use Partyband to view/edit/manage your music resources.

For details please see Users Guide: http://code.google.com/p/partyband/wiki/UsersGuide

NetBeans Platform

Being a long term NetBeans committer, the decision to use the NetBeans Platform was a given.

Generally said, the NetBeans Platform gives me the luxury to concentrate on my business logic and not spend 80% of my time writing boilerplate code and reinventing the wheel.

Specifically, I use the Maven version of the NetBeans Platform to nicely manage library dependencies like the db4o object database, the Window System to lay out the UI, of course, and SwingX integration with NetBeans's Visual Editor, and, last but not least, the great support for creating installers.

JavaFX

Frankly, I don't have much experiences with JavaFX. I remember I was not a fan of the original JavaFX script and I'm glad that JavaFX 2 has comeback with Java as its backing language.

Swing was really awesome a few years ago and a lot of other UI frameworks adopted Swing's ideas. However, over the years, being in more or less maintenance mode, I was worried what Swing's future will be. Now with JavaFX 2, the answer is there I believe.

As for JavaFX usage in PartyBand, I plan to give it a try when some documentation on integrating JavaFX with Mavenized NetBeans Platform comes available. JavaFX media and charting capabilities would certainly be interesting for the media player and the visualization of playlists in charts.

Conclusion

I have many ideas for future improvements. For example:

  • ability to change player tempo and pitch for practicing
  • visualizing of gig playlists based, for example, on song popularity and tempo
  • suggestions for songs to add to the repertoire
  • cooperation with online music services to analyze music resources and provide additional information
  • clients for smart phones
Well, the ideas are there, but the amount of spare time is unfortunately limited.

I would love to see people contributing to this project, that's one of the reasons why the project is open sourced from the start.

A small initial development guide exists at http://code.google.com/p/partyband/wiki/DevelopersGuide. The easiest way to become a contributor is to try to fix some small bug first, thus slowly creating the big picture of the existing code.

Don't worry, code is pretty basic, no rocket science :-) Areas for bigger contributions are listed above, but you can always come up with your cool idea and help it materialize, because, hey, it's open source!

Published at DZone with permission of its author, Dafe Simonek.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)