Three For O

The O is for October, harvest time here in NW Ohio USA. A beat-slicer, a book review, and a milestone release compose this trio of reviews for the Fall season in Linux audio fashion.

Smasher

When I profiled some recent audio projects at SourceForge I collected a variety of interesting and relatively unknown applications. After the article was published I was reading the Csound mail list and came across a message from developer Andres Cabrera in which he mentioned a Csound-based program called Smasher. That message jogged my memory, and sure enough I had already downloaded and installed Smasher, but I had never gotten around to testing it. I intend now to amend my forgetfulness with this mini-review of the program.

What It Is

Smasher (Figure 1) is a beat-slicer, a utility dedicated to cutting up a soundfile and reordering its parts in new combinations. A beat-slicer is an indispensible tool for anyone composing with audio loops (see my articles on loop composition for more information regarding that topic) and is especially valuable if the composer is working with drum loops. However, Smasher will happily process any valid soundfile, regardless of its content.

Figure 1. Smasher

Install/Configure

It's unlikely that Smasher is available in your usual repositories, so you'll probably need to build and install the program yourself. You'll need the Smasher source code and a stellar variety of dependencies. Whole or in part you'll want the GStreamer development framework, the wxWidgets packages, the X11 headers and libraries, and a full-featured set of audio support components, including the development packages for Csound (with PortAudio support), libmad, and the OGG/Vorbis audio system. You'll also need the liblo library for OSC support. Your kernel's ALSA system provides Smasher's MIDI capabilities, including the virtual MIDI module (snd-virmidi) so helpful for machines with no MIDI hardware.

A further note regarding Smasher's employment of Csound: You'll need a version of Csound compiled for double-precision, versions compiled for floats will not work with Smasher. My Ubuntu Jaunty repo contains a libcsound64.so, which is indeed the version needed by Smasher. The 64 in the library name indicates a double-precision build, not a version built for 64-bit hardware. If your distribution repos include such a file, it's the one you want. Otherwise you'll need to consult the Csound home page to learn how to compile and install Csound yourself.

Smashing Sound

Smasher is very easy to use, just follow these simple steps:

  • Load a soundfile (WAV, AIFF, MP3, FLAC)
  • Pick the number of slices you want to create.
  • Order the slices as you like in the sequencer grid.
  • Order the FX triggers as you like.
  • Play, listen, repeat steps 1 through 5 until satisfied with the results.
  • Save your work as a WAV file.

As you can see in Figure 1, most of the program's important functions are displayed in a single screen. Help is available via the Help menu and a forum, but in truth a little experimentation will teach you most of what you need to know. Oh, and if you don't have a clue what beat-slicing is about you should check out the demos on the Smasher site.

Smasher And The Csound API

As mentioned, Smasher uses the Csound API (applications programming interface). According to Wikipedia an API is

... an interface that software programs implement in order to allow other software to interact with it; much in the same way that software might implement a User interface in order to allow humans to interact with it.

API's are implemented by applications, libraries and operating systems to define the ways by which other software may make calls to or request services from them. An API determines the vocabulary and calling conventions the programmer should employ to use the services. It may include specifications for routines, data structures, object classes, and protocols used to communicate between the requesting software and the library.

Smasher accesses Csound by calling functions defined in csound.h, a Csound header file required to build Smasher. During the compile process the program is linked to libcsound64.so, the Csound library. Whatever the library has to offer is now available to Smasher, and this availability is a Very Cool Thing. Thanks to the API Csound's capabilities become available for general usage. Csound was not designed to be a beat-slicer, but some of its processing functions are just what the beat-slicing doctor ordered. The Csound API exposes those functions and makes them available for programs that otherwise have nothing to do with Csound.

By the way, Smasher is not the only program currently using the Csound API. Other subscribing projects include QuteCsound, Rationale, jReality, blue, AVSynthesis, Cecilia4, TamTam (and some other OLPC/Sugar projects), AlgoScore, and Slipmat. Not all of those programs are equally evolved but the list indicates the success of the API and the possibilities of its deployment. And in case I've forgotten to refer to your favorite Csound-powered application, please feel free to mention it in the Comments section.

I'm Smashed

Smasher simplifies beat-slicing and arrangement to the point where anyone can use the program and create interesting (and hopefully musical) results. Smasher has been designed for one purpose, it sticks to that purpose, and it works perfectly as advertised. Kudos to developers Esther Loeliger and Gerald Schmidt for this very cool and useful program.

The Loadbang Book

In an article titled Mix Libre I wrote a mini-review of The bang Book, a collection of essays, articles, and musings on the significance of Pure Data (Pd), Miller Puckette's wonderful environment for audio/video composition and processing. I liked and recommended the book, but I cautioned readers that it was not a Pd tutorial. However, I'm happy to report that an excellent Pd tutorial has arrived.

Figure 2. The Loadbang Book

Wolke Verlag has announced the availability of Johannes Kreidler's Loadbang, an in-depth tutorial for newcomers to Pd. The book's subtitle, "Programming Electronic Music In Pure Data", accurately describes and delimits the author's intentions. Loadbang does not pretend to exhaust Pd's capabilities. The author wisely maintains a course of instruction that begins with an exposition of Pd and audio basics and proceeds to teach the new user how to create instruments based on traditional audio sampling and synthesis designs (additive, subtractive, waveshaping, etc). The book's latter chapters present ways to use Pd to generate and control events destined for use with the instruments described previously. Loadbang concludes with references to more advanced topics such as the use of the GEM video processing library (an "external" in Pd-speak).

The book is available in its original German and in an English translation by Mark Barden. The writing style throughout is clear, succinct, and didactic by design. However, since Pd is normally a GUI-based application Loadbang is heavy on graphics. The book is clearly intended to be used in conjunction with a running instance of Pd, and many chapters conclude with suggested exercises and recommendations for further study.

I admire Pd's self-documentation, but as the environment becomes richer and more complex it presents a more formidable learning curve to new users. Johannes Kreidler employs the excellent method of using Pd to describe and explain how to use Pd, he knows his subject matter in depth and detail, and his book is a superb introduction to this most powerful environment. Highly recommended for anyone who wants to learn (or learn more) about using Pd.

Linuxsampler 1.0

I've already published a review of Linuxsampler in some depth, but the recent news of its 1.0 release deserves an announcement here. The project includes a variety of inter-related components, all of which have been updated and upgraded for this release. Figure 3 shows off the new looks for the Gigedit GIG file editor and the Java-based Fantasia GUI for the sampler, running in my Ubuntu Jaunty system. Everything has been working smoothly, without audio xruns, and it is evident that the developers have continued to focus on stability as well as the addition of new features. I've used Linuxsampler on various systems, and I must say that it has been a reliable and solid application wherever I've used it. I'm happy to see that that hasn't changed. Users of older versions are well-advised to update to this latest release

Figure 3. Linuxsampler 1.0

Among the new features we find support for Jack-MIDI and the ability to summon Linuxsampler as a DSSI or LV2 plugin instrument. Alas, its LV2 incarnation did not work for my current builds of Ardour nor would it instantiate with the lv2_jack_host software. I was able to invoke it as a DSSI plugin under Sean Bolton's ghostess DSSI host, but the UI was minimal to the point of unusability. I'm happy to admit that the problems may be on my end, and I shall continue testing the Linuxsampler plugins with other hosts.

Incidentally, I had no troubles compiling the new system under Ubuntu Jaunty. However, when I first ran the linuxsampler server it failed with an error regarding the connecting port. Netstat indicated that the port was in use but I couldn't determine what was using it. I eliminated one likely culprit (the PySol server) and rebooted. Voila, the problem is gone, and I now connect with the default address and port numbers.

Congratulations to the development team, they've done wonderful work with Linuxsampler 1.0. Of course, I'm already looking forward to version 2.0, but I think this release will keep me occupied and happy for a while.

Outro

I hope you've enjoyed this little October trio. I'll be back soon with more reviews and reports from the world of Linux audio & video, so until then stay tuned, eat sensibly, exercise regularly, and be sure to keep reading the latest news here at the Linux Journal On-line.

______________________

Similis sum folio de quo ludunt venti.

Comments

Comment viewing options

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

smasher credits...

Gerald's picture

Hi Dave,

Thank you very much for your kind words regarding smasher. I'm just commenting briefly to say that the lead developer is Esther Loeliger and that I really can't take credit for the program.

Best wishes,
Gerald

Author's replydp

Dave Phillips's picture

Hi Gerald,

My apologies to Esther, and thank you for the correction. Her name has been added to the text.

And thanks to both of you for Smasher, it's a great app.

Best,

dp

Similis sum folio de quo ludunt venti.

Author's addition

Dave Phillips's picture

Recently I received a note from Alex Stone, he pointed out that the LinuxSampler project has expanded its targeted file formats to include SF2/SFZ soundfonts. The support is in the development version of libgig, so it may be a while before it goes public, but it's good to know that we'll soon be able to load and use soundfonts with LinuxSampler.

Best,

dp

Similis sum folio de quo ludunt venti.

lsof

Anonymous's picture

You can use lsof to see what process is listening on a port.

For example:

$ lsof -iTCP:22 | grep LISTEN
sshd 5848 root 3u IPv4 14095 TCP *:ssh (LISTEN)

This often saves a reboot.

Author's reply

Dave Phillips's picture

Nice tip, thank you !

dp

Similis sum folio de quo ludunt venti.

WAV format, vade retro satanas!

georges's picture

regarding smasher, you're telling us to save the audio as WAV format. Are you sure???

I mean, this is on Linux. Why don't you say to save as OGG, or maybe MP3.

Sorry, could not resist ;)

Author's note: Image links repaired

Dave Phillips's picture

The links to the full-size images are now restored. Sorry for the inconvenience.

dp

Similis sum folio de quo ludunt venti.

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