Fresh from the Lab

A look at promising software in development.
deco—Archive File Extractor (hartlich.com/deco)

deco is great for people sick of typing tar -zxvf, -jxvf and so on. According to the project's Web site, “deco is a generic archive file extractor that has a consistent command-line interface (deco 1.tar.bz2 2.zip 3.flac 4.rar 5.deb will just work) and consistent behavior (it never deletes archives after extraction, it extracts relative to the current working directory, and it extracts just verbosely enough, all unless explicitly requested otherwise). It provides automatic handling of extractor gotchas by creating an extraction directory if there is more than one file or directory at the archive top level and by being able to fix strange permissions. Dozens of archive file extensions are supported out of the box, and adding support for others requires very little work.”

Figure 3. deco is probably the easiest archive extractor I've used.

Installation

At the time of this writing, deco is available only as a source tarball; however, installation is easy and unlikely to cause any hassles. After extracting the archive and entering the new directory, doing a standard:

$ ./configure 
$ make
(if not root) $ su 
# make install 

worked with no issues, and probably will do the same for you, as it doesn't have a large amount of dependencies.

Usage

The general usage is simply:

$ deco filename.tar.gz

That's about all there is for most people—short and sweet. But, what tricks lie under the hood? There are all sorts of neat optimizations.

For instance, usually Linux projects are placed in a directory within an archive to keep source directories from becoming cluttered. Unfortunately, archives sometimes have files placed straight in them, without being placed in a directory. This fills up your source directory with all sorts of unwanted files that also may be overwritten. deco places an archive's extracted contents within a directory to keep things clean. Cleverly, if an archive already has its contents contained within a directory, deco extracts the archive as is. If not, deco places them within a directory named after the filename, minus its extension.

For example, if I had a file called tuesday-jam-session.tar.gz, deco would place the contents under the directory tuesday-jam-session.

If you want further control, such as deleting the archive after extraction and so on, this also is possible with a series of command-line switches, available on the project's Web site. Even if you're happy with the way it works already, it's worth reading the site to see some of the other options available, and also what neat tricks and shortcuts lie under the hood.

Something to keep in mind is that the deco project doesn't try to re-invent the wheel—it isn't monolithic. It's reliant on having the necessary external extraction tools available, such as unrar for .rar files and so on. However, this is the approach taken by most archive tools, so most people expect that anyway. Nevertheless, it wouldn't take a great deal of work to include all these external programs in one big package, so any enthusiasts of the project may want to do just that. Although it's currently available only via source, hopefully it will make it into most distro archives soon.

Overall, deco is a lovely little program that is likely to save many a tired, caffeine-fueled coder some midnight grief and make computing just that little bit nicer.

orDrumbox (www.ordrumbox.com)

orDrumbox is a small, Java-based drum-machine applet that runs on Linux, Windows and Mac OS X. Designed less for the drummer and more for the desktop DJ, orDrumbox quickly makes funky mid-tempo electronic tunes with beats and inserted samples. Developed using Java, this drum machine is highly portable and lightweight, which is ideal for DJ enthusiasts jumping between machines and showing their friends.

Figure 4. Surprisingly, just clicking randomly probably will make a halfway decent beat.

Installation

As far as packages go, the only Linux binary available is an .rpm (not handy as I have a Debian-based system). Source code is available, but it is zipped and for Java, and not everyone will have a compatible compiler. I downloaded the .rpm and converted it to a .deb using alien, which is not difficult; check the alien man page for more info. Thankfully, it converted and installed with no major issues. When I started the program though, it required a particular version of Java, jpackage-utils (see www.jpackage.org, also available on rpmfind.net). This had no Debian file either, so I had to use alien on this package too. Luckily, there were no complaints here either, and after these two steps, the program simply worked.

Usage

To start the program, enter orDrumbox.sh into your shell. If all goes well, the program now should be working. If you look in the top half of the orDrumbox screen, there should be a window called Pattern 0 (Edit)—this is where most of your work will happen. If you look to the right of the box containing a 4 at the top of the window, you'll see a gray and yellow box. Hover your mouse over it, and it will say, “create new track”. Press this a large number of times (14 and up for the default drum kit), as each line creates a new instrument with which to play. On the left of each line are the controls for each instrument, including volume and so forth. On the right is the Note Editor area.

With the Note Editor, double-click any of the boxes, and they will change from white or gray to green and red. The green tells you what note will be played, and you'll see there are two red sliding bars: one going from bottom to top, the other from left to right. The bottom-to-top slider controls the note velocity, and the left-to-right slider determines the note and octave played (or the pitch). It defaults to C2, but it can be tuned up or down accordingly. Click randomly in any of the boxes, then click the large play icon in the bottom center of the screen. A beat will start playing—probably a strange one. Try changing the pitch and velocity randomly, as well as adding new notes and removing old ones to see how it affects the beat. To remove any notes, simply right-click in the note's box and choose delete note.

This should be enough to get you started on beats, but you'll need the user manual to get more involved and create whole songs. Check the manual available on the Web site, and try out some of the custom drum kits available too. There are some limitations with the scalability of the program, and the biggest limitation is that it's limited to 120BPM. This is enough for most electronic and dance music, but it's unsuitable for genres like punk, speed metal and so on. The sounds that are provided with these kits really are geared for more electronic genres anyway and will sound strange with anything rock-based, so those into fast rock genres will want to stick with something like Hydrogen. Overall, this is a fun little utility that will find its way into the hearts of many a home DJ.

______________________

John Knight is the New Projects columnist for Linux Journal.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

If your system isn't covered

Cristiano's picture

If your system isn't covered though, the site includes a source tarball that contains a Python script, plus instructions on how to use it. There aren't any real obscure dependencies, so chances are the base package will install without any issues.

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState