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.

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.

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

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.
Today’s modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a “one size fits all” enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
| Trying to Tame the Tablet | May 08, 2013 |
| Dart: a New Web Programming Experience | May 07, 2013 |
- New Products
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- RSS Feeds
- Trying to Tame the Tablet
- New Products
- What's the tweeting protocol?
- Validate an E-Mail Address with PHP, the Right Way
- Drupal is an Awesome CMS and a Crappy development framework
2 hours 22 min ago - IT industry leaders
4 hours 44 min ago - Reply to comment | Linux Journal
21 hours 33 min ago - Reply to comment | Linux Journal
1 day 5 min ago - Reply to comment | Linux Journal
1 day 1 hour ago - great post
1 day 1 hour ago - Google Docs
1 day 2 hours ago - Reply to comment | Linux Journal
1 day 7 hours ago - Reply to comment | Linux Journal
1 day 7 hours ago - Web Hosting IQ
1 day 9 hours ago
Enter to Win an Adafruit Prototyping Pi Plate Kit for Raspberry Pi

It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Prototyping Pi Plate Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- Next winner announced on 5-21-13!
Free Webinar: Linux Backup and Recovery
Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.
In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.



Comments
smasher credits...
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
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
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
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
Nice tip, thank you !
dp
Similis sum folio de quo ludunt venti.
WAV format, vade retro satanas!
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
The links to the full-size images are now restored. Sorry for the inconvenience.
dp
Similis sum folio de quo ludunt venti.