The Readme below is a little out of date, but is correct. Below that are some details of odd additions.
Download here.
This is all under the GPL, mainly as it includes many GPL/LGPL'd bits and it would be a chore to pull them apart.
Problem:
Odd message involving DSOUND.DLL
Solution:
Install a recent version of DirectX from http://www.microsoft.com/windows/directx/
Problem:
Odd message involving MSVCP60.DLL
Solution:
You probably have an older version of windows. Use this
file to install the needed DLL's.
This release if definitely transitional. I've come to the point where there's a great deal of sticky kludge in the app, and many things that should be exposed to users and friendly hackers arn't. This may take a little while.
So in the interim, I'm releasing this version to get changes to the UI and BPM algorithm out there, to collect feedback and evil mp3's. Many things, especially UI and speed, are not indicative of where I'd like the app to be.
Tune Mover originally started life as a tune moving app with features to help me organise my mp3's into appropriate folders. (this functionality is still included, see below). It's since grown and mutated into a testbed for some of my mp3 related ideas, mainly in the realm of BPM measurement. This release is intended to let me get feedback on the BPM algorithm, as well as to get some recent UI changes out into the wild.
First time you run the app a directory browser will appear. Point the app at a directory of tunes. Don't worry the app won't touch your tunes unless you tell it too. Now you have a list of tunes.
If you have a base directory that you put all your tunes under it's a good idea to use the Tree->Select DIrectory... menu option and select a directory. You should then have a tree representation with yellow icons in the left pane.
Now we have our two directories selected we can look around the UI.
There are four main parts to the UI. Working from top left to bottom right.
The UI can be in one of a number of modes at any time. To start with I'll describe the controls that work in any mode.
The mouse can be used to select songs in the main view (they will play automatically) and the seek within a playing song on the main play bar.
Most of the keyboard is devoted to selecting a folder using the tree view. If you look at the left view and see a folder you want to select, just press the key it's marked with and it'll be selected.
Other keys are as follows.
Key | Action |
---|---|
Space Bar | Play/Pause |
Up Arrow | Previous Song |
Down Arrow | Next Song |
Ctrl + Tab | Switch Mode |
Tab | Show or Hide the Tree View |
Ctrl + F | Find songs. Currently this always searches your full tree. |
Ctrl + S | Incremental Search. Hit Ctrl+S and start typing part of a song name. Ctrl+S again jumps to the next song that matches the current search string. |
Delete | Mark the current song for deletion. |
Ctrl + T | View the currently selected tree directory in the main view |
Ctrl + B | Used for the BPM clicker. This has no real purpose, it's just here for debugging purposes. It's currently not based off the audio clock, so it may be 1% or so off. |
This mode is designed for sorting a new directory of incoming tunes. To help with this task the list can be arranged in a few different ways (see the Tunes menu for some options). If the tunes are not named according to a regular scheme the "group by similar names" option is useful.
Key | Action |
---|---|
Enter | Mark song to be moved to the directory selected in the tree. |
Shift + Enter | As above but don't move to next unassigned tune. |
Backspace | Clear the intended move for the current song. |
Right Arrow | Fast Forward |
Shift+Right Arrow | Jump Forward 10s. |
Left Arrow | Fast Reverse (kinda) |
Shift+Left Arrow | Jump Back 10s. |
This mode is used to test automatic BPM analysis methods I've been working on. Expanding column widths will let you see the rough names I've given the various algorithms that are run over the stripes.
Key | Action |
---|---|
Left + Right Arrow | Rotate thru the BPM's to select one. |
Enter | Mark the song for BPM tag saving. |
Shift + Enter | Mark the song for BPM tag saving, and don't jump to the next unmarked tune. |
Ctrl + 1 | Mark the song for BPM tag saving using ½ the selected BPM |
Ctrl + 2 | Mark the song for BPM tag saving using double the selected BPM |
Ctrl + Enter | Does a Tune Mover mode enter. |
Shift+Left Arrow | Jump Back 10s. |
Jess my better half, and A.C. van Rijn for testing and support.
MAD - the GPL'd mp3 decoder used in this app.
FFTW - the fft libarary that I use in some parts of the app.
ActiveState Perl - Used to do the similar name sorting.
This is just a quick update to describe the cross-fading beat-locked seek feature.
I haven't put in any real effort towards optimisation.
If you have questions or comments this:
http://sourceforge.net/forum/forum.php?forum_id=239466
is a good place.
Stuff that works, or doesn't
Other notes
Last updated with Release 0.1
At first startup you will be prompted to choose a few directories.
You should now have a tree on the left and a list of mp3's on the right.
Ignore warnings about losing stored moves, we haven't decided on any moves yet.
Click on a song in the right pane. Playback should start. Playback control is currently:
Key | Action |
---|---|
Space Bar | Play/Pause |
Up Arrow | Previous Song |
Down Arrow | Next Song |
Right Arrow | Fast Forward |
Shift+Right Arrow | Jump Forward 10s. |
Left Arrow | Fast Reverse (kinda) |
Shift+Left Arrow | Jump Back 10s. |
Song frequency, playtime and bitrate are displayed. (This part of the app needs work!)
The next step is to set where the song will go. The majority of the keyboard is used to navigate around the tree. Using the keys shown in the tree view selects folders, opening them to reveal subfolders if appropriate.
If there are subfolders they too will have keys assigned you can use to select folders.
This probably sounds confusing, but if you fire up the app and experiment, things will become clear quite quickly.
The following keys are used in relation to where songs go:
Key | Action |
---|---|
Return | Mark Song to be moved to the directory selected on the left. |
Delete | Mark Song for recycling. (see below). |
Backspace | Clear Song's mark. |
NOTE: No songs are actuallly moved or deleted during this phase. That's what the big 'Do Moves!' button is for.
By default all songs marked for deletion are recycled. You can set a folder to send all unwanted tunes to in the menus.
The moves only happen when you press the big button. At the moment the windows shell actually does all the moving/deleting, so you'll see some very familar dialogs of there's a file name collision.
The Menus' not polished. There's many disable items in there. Most options should be self explanatory.
As a general rule of thumb, if the app ever seems to be ignoring you, click in the right pane. I know this is lame.
In no particular order
http://finalscratch.sourceforge.net
Help Forum:
http://sourceforge.net/forum/forum.php?forum_id=239466
Enjoy!
* Reads in beats per minute from acid, traktor or standard tags.
* Reads and displays the Traktor stripe tag.
* Bar-Locked seek option.
* Added a perl based grouping function. It uses activestate's perl extension.
* Rest of tree collapses when you open a branch.
* Moves not forgotten if move is cancelled.
Basic version of this doc.
First release. More of a prototype than anything else.
Hastily arranged shots.