New Projects - Fresh from the Labs
Open Cubic Player (OCP) is a text-based audio player that runs in various incarnations on Linux and Windows, and there's even an older DOS version. First appearing in late 1994, the original program was a binary-only freeware version called Cubic Player (running primarily in DOS). It had a reputation for being one of the best module players around, as it supported a great deal of soundcards as well as audio formats. As Windows grew more popular and people demanded GUI-based software, popularity and support for the program died off, as did the project itself.
Eventually, the source code was opened up to the public in the hope that someone would find it useful, and in late 2003, developer Stian Sebastian Skjelstad started playing around with it, attempting to get the source to compile and run under Linux. After a great deal of tinkering around, Stian eventually got something working, and today, it's available in beta form. And quite frankly, it's a little ripper of a player!
Binary packages are provided for Debian and Ubuntu, as well as some specific information for installation on other systems, but if you're not using the basic .deb packages, you might as well install OCP from source. Grab the latest tarball from the Web site, extract it, and open a terminal in the new folder. As for strange requirements with the source, I had to grab the development files for both ogg and vorbis, which were liboggz1-dev and libvorbis-dev, respectively. Being a wacky console program, you probably need the ncurses development libraries too, but I already had those on my system after compiling htop (see above).
When it comes to compiling the source, documentation is sorely lacking, but thankfully, compilation is a simple case of the usual:
$ ./configure $ make $ sudo make install
When the compilation is over, run the program by entering:
Although I'm still coming to grips with the basic controls, playing singular files is a simple affair, as is exploring the program's many functions. When you enter the OCP screen, your first encounter is with the file browser, where you can select your songs, append them to a playlist and so on. I'm not too sure how to operate the playlist functions confidently enough to explain them (you can work out the contents of the manual yourself), but playing a single file is easy. Simply search for the file you want with the up and down arrow keys. Entering directories or playing a file is done by pressing the Enter key.
When a track is playing, this whole project comes to life, and the point becomes clear—you instantly have full visualizations of your music along with neat power-level indicators and all manner of tinkering functions. This is designed for control freaks—seriously. On screen is a load of information, right down to file size, frequency and format information, and so on. However, it's the functions that are the meat of the program. You can alter the panning, balance, speed, pitch, amplification and more. You even can turn on a surround function—not bad for a text-based player!
These functions are mostly spread over the function keys, but the coolest feature (although admittedly a little gimmicky) is actually pausing a song. Press P, and your song winds down and dies like someone has just pulled the plug on an old reel-to-reel player. Unpausing winds it back up to life again. It's really cool and adds genuine charm to the player.
Working your way around this program is initially unintuitive, and the documentation feels as if it's written more for other programmers than new users, but the charm of this program is unavoidable. The beautiful spectrum analyzer patterns rendered in real-time ASCII are enough to bring a tear to any geek's eye, and the advanced controls one expects only of complex, resource-intensive GUI applications will entrench this player firmly in the heart of many a technophile. Awesome stuff—if you can work your way around it!
John Knight is the New Projects columnist for Linux Journal.
- Give new life to old phones and tablets with these tips!
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Linux Systems Administrator
- Memory Ordering in Modern Microprocessors, Part I
- Senior Perl Developer
- Technical Support Rep
- Tech Tip: Really Simple HTTP Server with Python
- UX Designer
- Returning Values from Bash Functions