Partyman: A nifty frontend for DerMixD
This page is not maintained anymore, since Partyman has been integrated
into a tool collection called SLART. Please update your bookmarks and
links to http://svolli.org/software/slart/.
About:
Partyman is a simple double-deck audio player that keeps on
playing as long as it's running. If it finds entries in its own
playlist, these are played, otherwise random tracks are chosen. It
also crossfades between the tracks automatically. The main purpose for
this program is providing some background music for a party,
respecting requests. It is based upon
Qt4 (needs Qt 4.2 or better)
and uses DerMixD as a backend.
Download:
Current Version is 0.7.1
- The current version is available as a part of SLART.
News:
- 2008-02-22
- Development of Partyman has not stopped, but the integration into
SLART takes it's time, as well as the time needed
for developing the other applications. So, there's still no release,
but you can check out the current development version via git. Just
check the SLART page for details.
- 2008-01-27
- New release (V0.5). Boy, this one was only planned as a minor facelift
with the settings dialog as the only real feature. But, one thing led
to another, new ideas arose, and now it's the biggest update in the
short history of Partyman. Most notable changes are:
- configuration dialog
- removed all commandline parameters
- command line arguments now have a complete different impact,
see docs
- several small interface improvements
- splash screen replaced with database load progress
- DerMixD is now startable via Partyman
- external logger interface
- normalization of audio (at least DerMixD svn #399 or the just
released Version 1.4 needed)
The biggest change is almost not notable: an extensible UDP interface
for interprocess communication has been implemented. I'm also
working on some other programs, like a frontend for
libparanoia and libvorbisenc to
rip cds and encode it into OggVorbis files, and a tag editor. These
will also communicate over the same interface. The current cdripper
prototype can already enqueue newly ripped files into the playlist
of Partyman. This collection of tools will be called
"SvOlli's Little Audio Related Thingies"
or "SLART" for short. All tools will be
named after songs. I'm not sure about the distribution though, but
it looks like Partyman will be also additionally be available as a
single download.
- 2008-01-15
- New release (V0.4)
- new way of displaying track name
- pause function
- reworked player logic with improved DerMixD connection handling
- 2008-01-08
- New release (V0.3)
- double click now works like right mouse button
- improved random code
- new tab with usage help
- loading of a track is now displayed
- dropping now also works with galeon
- 2007-12-31
- There's a new release (V0.2) that fixes the following bugs:
- resizing of controlpanel now correct
- scrolling of filename label changed from not always
working scroll-to-end to always working scroll to center
- relativ filenames in m3u should now work
- "leftover" tooltip of playlist is now gone
- reworked behaviour of lists: delete now only deletes
entries in searchlist, return moves them to playlist
- a function introduced with Qt 4.3 was used
(QLayout::setContentsMargins) this has been encapsulated with
a version check, so the code compiles on Qt 4.2 as well
It also introduces a new feature: the playlist/browser/search
area now accepts drops, so the playlist can be filled also from
konqueror for example. The best part about this is that files
which are not in the database are also accepted.
Commandline options for DerMixD hostname & port, crossplay time,
and displaying communication with DerMixD have also been
implemented.
- 2007-12-30
- A mailing list has been created. To subscribe send a mail to
minimalist |at| svolli |dot| dynxs |dot| de with the subject
"subscribe partyman" (without the quotes of cause).
- 2007-12-29
- Inital release.
Screenshots:
Please note that the size of the images just reflect my typical
usage, the window is fully resizable.
Hello Mr. Piracyhunter, all OGGs in the Screenshot above have been
encoded from my own CDs.
Usage:
You need to have DerMixD up and
running. Then you can start Partyman with
./Partyman list1.m3u list2.m3u ...
There are also commandline opions that are introduced by calling
"./Partyman -h".
So you start Partyman with one or more m3u-files.
All command line parameters that were valid until V0.4 have been
removed!
Just start Partyman and off you go. If Partyman can't find a m3u
database,
the settings dialog will pop up at start so that you can provide one.
This settings dialog can be brought back up again by clicking on the red
"Settings" link on the "About" tab. The m3u file is used as the primary
database. Relative filenames will be resolved to the position of the
m3u file. If you've got no m3u file you can create one yourself
simply with
find /path/to/music -iname \*.mp3 -o \*.ogg > all.m3u
Once the program has been started there are three areas of interest:
- On top there are the two players.
- In the middle there's a playlist.
- On the bottom there's a browser and search applet.
Press the "Connect" button to connect to DerMixD and after a
successful connection, Partyman will start playing automatically. If
the playlist is empty, it will pick a random file from the database.
10 seconds before that track ends, the other player kicks off. You
can also switch to the other player instantly by pressing the
"Next"-Button.
To fill the playlist just browse the database with mouse or
keyboard. The enter key, double clicking or pressing the right
mouse button will add the track to the bottom of the playlist. If
it's a folder all contents and sub-contents will be added. Double
clicking, Pressing delete or the right mouse button will delete all
selected tracks in the playlist. Click and hold an entry to move it.
For using the search just enter a substring of the desired track
name, the full pathname will be searched. Pressing enter will start
the search, wildcard searching using "*" is supported. Found entries
can be moved to the playlist by selecting them and double clicking,
pressing enter or the right mouse button. Pressing delete will
remove them without moving into the playlist.
A track from a player can be unloaded by pressing the right
mouse button on the "ready" label.
Complete tracknames will be displayed as tooltips, if the ones
inside the fields are truncated.
The "About"-tab also holds some links to external references as
well as the settings.
Settings:
The settings screen is available via the red link on
the about tab. It will also pop up automatically if
the m3u file containing the database is either not set
or not found.
DerMixD Parameters:
- Start/Stop via Partyman:
- Check this if you want DerMixD to be started
during the initiation of the connection.
- Command:
- The command to run DerMixD.
- Parameters:
- The parameters to start DerMixD with
(Note: "-c" and "-p port" will be always added.)
- Hostname:
- The name of the host DerMixD runs on.
- Port:
- The port DerMixD listens on.
- Log communications to stdout
- Write the communication of Partyman and DerMixD
to stdout (mainly used for debugging purposes).
Partyman Parameters:
- Connect On Startup
- Check this if you're too lazy to press the
"Connect" button.
- Crossfade Time:
- The number of seconds both player should play
at the same time.
- Use SLART UDP Communication:
- Partyman is part of
"SvOlli's
Little Audio Related Thingies" or
"SLART"
(external links) for short, which can use UDP for
communicating with each other. It can be also used
by Partyman for communicating with itself (see also
Command Line Parameters).
This switch activates this communication.
- Normalization:
- DerMixD, starting with svn version #399, can
analyse the volume of a track, either by peak or
by a power algorithm. Using this feature, Partyman
can automatically set the volume, so that each track
is player at the same volume level.
- External Logger:
- Each action like playing a track, stopping, pausing
and skipping can be logged though an external application.
Here it can be specified. See the
below
for a more detailed explanation.
- Database File:
- The m3u file used as the database of all known
audio tracks.
Command Line Parameters:
-
If SLART UDP communication is activated,
all parameters from the command line are added to the playlist,
if these files exists and an instance of Partyman is already
running.
External Logging:
If the feature has been activated by providing an execuable to handle
these information, it will be called with one or two parameters:
- one of "play", "pause", "skip" or "stop", which explanes the
action
- if the first one is "play", the second one is the complete path
of the file being played.
So, a shell script for external logging could start like this:
#!/bin/sh
action="$1" # should always get one of "play", "pause", "skip" or "stop"
file="$2" # empty if action is not "play"
# do something with "$action" and "$file"
echo "[$action] $file" > /tmp/Partyman-Playlist.txt
This is just a short example to give you an idea on how to start your
own logger. Yes, it's just that simple.
Building:
First of all make sure that you've got
DerMixD on your system. Also note,
that for playing mp3s you'll need mpg123, as mpg321 will not work.
Also make sure, that you've got the needed qt4*-dev packages are
installed on the system you want to compile Partyman on.
Building is straight forward: just run qmake of Qt4 and make after
that to get a running binary.
I do it slightly different like this:
.../Partyman$ mkdir Linux;cd Linux
.../Partyman/Linux$ qmake-qt4 ../Partyman.pro
.../Partyman/Linux$ make
This way, I've separated all generated from all selfwritten
code.
And that's how I build DerMixD:
.../dermixd$ make SNDFILE=yes VORBISFILE=yes gnu-alsa
(And, again take note that you need th libsndfile-dev and
libvorbisfile-dev packages on the system you want to compile the
code on.)
Known bugs:
Feature Requests:
request |
status |
comment |
remove dependancy for m3u-list as commandline parameter |
planned for V0.5 |
Use QSettings for remember last m3u-list, pop up a dialog for
specifying one, if none's available. Also include the option
of generating one. |
This software is free software and distributed under the
license terms of the GPL.
Enjoy, SvOlli
|
|