Current projects
If you're interested in contributing back into the xwax project but unsure of where to start, then there are some current projects on the go.
Main ideas
Record library interface
The record library interface is great if you know exactly what you're looking for. But for the DJ without the memory of Google, it can be difficult to just scan through and look for things.
So, the main aim right now is to test out some better ways of working with the record library. Multiple crates or playlists has been implemented but there's both minor and major improvements which could be made.
At the moment, xwax is entirely keyboard controlled. Rather than opting for mouse control, it would be nice to consider MIDI and other hardware control; mice aren't the most convenient input devices to use in a DJ environment.
Some ideas and experimentation needed here, so new developers are encouraged to have a go!
Record library searching
Proper word indexing of library and listing to make word searches more efficient on large libraries (see library.c).
More accurate and stable timecode control
Always room for improvement here.
Smaller tasks
Tasks which might just be a good way to start exploring the code. Each of these could probably be done in an afternoon, even if you've never seen the code before. It would be great to receive patches for any of these.
Update the xwax_import script
A good one for someone who doesn't have C programming knowledge. Add in support for the major decoders. If it's possible without adding overhead, perhaps it could detect the best decoder to use from those available on the system.
Make use of const char*
Lots of places where this could (should) be used, and it isn't.
Font locations
At the moment it does a bit of guesswork to find fonts already on the system. This is complicated by the 'standard' fonts supplied on a system moving from Vera to DejaVu — visually the same font, but with a different name. Can font loading be improved, or should we just give up and supply fonts with xwax?
Ideas for experiments
Some ideas that could be worked on, but not the focus of the main development just yet.
- Configurability using the interface rather than the command line flags. This will have to be achieved before xwax is able to reach a wider (and less technical) audience.
- Pitch-independent time stretching (like 'Master Tempo' on Pioneer). How to implement as well as present this in the interface. Pitch and speed could just be entirely independant — scratch pitch with vinyl as well as speed?
- Core Audio support would possibly be the only (but quite significant) thing needed to make this thing run on Mac OS X.
- A minimal xwax live CD. Perhaps based on dyne:bolic or SLAX.
- Timecodes from different vinyls — always going to be lots of these around. Fun to investigate for understanding even if it's not worth implementing them.
- Skipless mode, but still with absolute positioning — detect the difference between the needle skipping (eg. during over-enthusiastic scratching) and the needle being lifted to a new location.
- Make reconnecting the turntable control compensate for pitch as well as the absolute positiong which it does right now.
And obviously if there's any more you can come up with, sign up to the xwax-devel mailing list and let us know.
