Can We Make the Piano More Like the Hardanger Fiddle? v3.1 released

v3.1 has some cool new stuff, here’s a summary:

  • Independent targeting “Add Sympathetic String” and “Ring Sympathetic String” in Resonance through Keymap; what does that mean? Read on!
  • Display of Held and Ringing keys in Resonance, and ability to create, save, and modify Held Keys in Resonance; again, read on!
  • Sostenuto pedal support
  • Keymap “sostenuto” mode (sustain pedal behaves like sostenuto pedal)
  • Keymap “toggle” mode (noteOffs ignored)
  • Scala import (both SCL and KBM) in Tuning
  • The installer is now officially “signed” and “notarized” by Apple, so should install without complaint on OSX.
  • bug fixes! new bugs!

Also, we have some new tutorials, the bitKlavier Grand sample library is now fully released, and we welcome Davis Polito to the bK team.


Can we make the Piano more like the Hardanger Fiddle?

The Resonance preparation in bitKlavier is inspired by how sympathetic resonance works in acoustic pianos; when a note is played, any other undamped strings will ring in sympathy, depending on if they have shared overtones. This is a fluid set of resonances, since at any particular moment the undamped strings will be changing as keys go up and down (though of course that depends on the music being played).

This is in contrast to the Hardanger fiddle and the Hardanger d’Amore—my primary instruments—which have a fixed set of sympathetic strings (called “understrings” since they run under the main strings and under the fingerboard; of course there are other instruments with fixed sympathetic strings, like the sitar). These strings are static, and not controlled directly by the player, so they can ring continuously and present a kind of resonant background sonority that reinforces particular notes and keys, and not others. In some ways, this is like a special acoustic space; as Perry Cook told me, it’s like a reverb unit with carefully tuned modes.

Can we do something like that with bitKlavier? Can our generalized sense of sympathetic resonance in Resonance be extended to behave more like the static resonances in the Hardanger fiddle, and if so, are there interesting spaces between those two kinds of behaviors, fluid and static?

To begin with, you can approximate the static “hardanger” resonance behavior on a conventional acoustic piano with the sostenuto pedal: hold down the keys that you want to resonate, then press the sostenuto pedal, release those keys and play away—those string will now ring sympathetically, while all the other notes will damp as usual.

In v3.1, bitKlavier now supports the sostenuto pedal, so you can do the “sostenuto hardanger” resonance just as described. Most people don’t have sostenuto pedals with their MIDI keyboards, however, so in Keymap you can also choose to have the sustain pedal behave like a sostenuto pedal. What if you still want to use the sustain pedal as originally designed? You can, at least to some extent, but using multiple Keymaps. For instance: connect one Keymap to Resonance, with “sostenuto mode” toggled on in Keymap, and then connect a different Keymap to Direct, with “sostenuto mode” toggled off (as it is by default).

Resonance can be confusing, in that it’s not always clear what pitches are ringing. In v3.1, we have a new panel that shows two things: 1) the current “held keys” (keys where the strings can ring because the dampers are released), and 2) the current “ringing keys” (really, the keys nearest the overtones of other strings that are ringing) to give us a sense of what pitches we are hearing. But this display does more: with “held keys,” you can manually select individual keys that you want to allow to ring, without actually playing them:

Above, we have five strings (not coincidentally, the most common resonating strings on the Hardanger fiddle) manually selected (“Held Keys”), so their virtual dampers are always off, and then above that, we can see the keys nearest to the ringing pitches we are hearing (of course, this example is from a particular moment where I had been playing some random stuff, so the “Ringing Keys” will constantly change as you play).

Note, if you just connect a normal Keymap to Resonance and play and release those keys, they will no longer ring (and will no longer be highlighted under “Held Keys”), since Resonance will think you have turned them off when you release those keys.

Unless… you set the attached Keymap preparation to target only “ring,” in which case the held keys will remain static, ringing away in response to whatever other notes are played:

This is precisely the Hardanger fiddle resonance model, with static resonating strings. It’s quite beautiful and powerful. And, you can also attach a Modification to Resonance, to retune those sympathetic strings on the fly, apart from actually “ringing” them (something I wish I could do with my actual Hardanger fiddle!); this is in that “in between” space, between the fluid and static resonance setups described earlier.

(Of course, this doesn’t really make bitKlavier sound like a Hardanger fiddle, it just emulates the resonant structure of that instrument. If you really want to hear the piano sound an awful lot like the Hardanger fiddle, check out Ingfrid Breie Nyhus’ beautiful records. She makes careful use of quietly depressed keys and the sostenuto pedal, among other things.)

Note in the above image that there is an “add” target as well; you could, for instance, use a separate small keyboard to add/change resonant “held” keys to Resonance, and use the main keyboard to “ring” them, so they are effectively decoupled. Another in-between space…


Scala Support

We’ve been asked periodically why bitKlavier doesn’t support Scala. One reason is that I did not find that I needed Scala; every tuning system is unique, and has a history and motivation, and each one takes time to get to know. The original bitKlavier had only a few tuning systems, ones that I knew well, trained my ears on, and used in various compositions. These were later expanded with a number of historical tunings from Western European (and more recent) traditions.

(See Carey Beebe’s wonderful website for information about the histories of all of these historical tunings, and for recipes for how to tune an instrument with each of them (click on the teeny tiny “technical library” link on the left side of his website, then choose “temperament” from the pulldown menu that appears); if you’d like to try your hand actually doingthese tunings by ear, you can with a virtual harpsichord tuning application I made a few years ago, called bitTemper: manual, max-patches.)

To be honest, I find the enormous catalog of Scala tunings to be overwhelming, and the tunings often feel detached from their roots—just lists of numbers or ratios—so whenever I’ve wanted to explore a particular tuning, I learn about it and create it by hand in bitKlavier, which in and of itself helps me get to know it. So, not having Scala has actually felt like a feature to me.

In spite of this, we’ve gone ahead now and integrated Scala import, just so bitKlavier can play a bit more nicely with the rest of the tuning-aware world. If you are interested in learning more about these systems in Scala, or others, I recommend exploring Leimma and Apotome, created by Khyam Allami and Counterpoint, which will lead to many other resources as well. And, this is not to bash Scala, which is an amazing resource! Just to explain my own relationship with it.

So… as of v3.1, you can open Scala SCL and KBM (keyboard mapping) files and bitKlavier will translate them into whatever Tuning preparation you are using. One nice thing is that you can create some pretty wild non-12-note tuning systems quite quickly, using SCL and KBM in tandem (these get translated into Absolute tunings in Tuning); see the example below (which I have a new video tutorial for, if you want to learn more):

which gets translated into…

Note that bitKlavier is not a fully fledged Scala authoring tool—there are plenty of those—though 12-note scales created in bK will automatically generate Scala formatted text that can be copied and pasted elsewhere if you like.

I will add that we are also working on support for the MTS-ESP system from Oddsound, which will enable bitKlavier to “serve” its approach to tuning (including adaptive systems like spring tuning) to other MTS-ESP aware plugins, as well is being a “client” of other tuning-aware plugins; this is another exciting way that bitKlavier will be able to “play nice” with other tuning applications—more on that soon.


New Tutorials

Jeff Gordon has created two video tutorials for Resonance; they are great, check them out!

I’ve also created a set of quick and dirty tutorials looking at tuning in bitKlavier, including adaptive and dynamic tunings like spring tuning; I hope they are useful!


bitklavier Grand fully released

The bitKlavier Grand sample library is now fully released. It’s quite awesome. And here is a short video tutorial on how to use it with direct-from-disk streaming in bitKlavier.


Welcome Davis Polito!

As I announced last time, Matt Wang has moved on to graduate school at NYU in game design, and we are now joined by Davis Polito, a wonderful musician and developer who comes to us from Penn and Carnegie Mellon. He spearheaded most of the features in 3.1, and I’m super excited to have him here with us now!


Upcoming

As I mentioned, we plan to support MTS-ESP very soon; this system enables multiple plugins to share tuning information, and should enable some of the unique features of bitKlavier’s Tuning preparation to reach beyond the confines of bitKlavier itself

Cristina Altamura and Adam Sliwinski are nearly done with recording my set of 12 Preludes for bitKlavier; they’ve done a terrific job and have been wonderful, inspiring collaborators, and I can’t wait to share this.

Speaking of, Cristina and Adam are also getting started on recording the new commissions for bitKlavier; more on that soon!


You can download v3.1 here.

thanks for reading! and for bitKlavier’ing!

—Dan

The Sympathetic Piano: v2.9 and v3.0 released

Hi all, it’s been a second, and I never got around to announcing v2.9, so what better time than with the release of v3.0, which is a big one! Versions 3.0/2.9 include:

  • a new Resonance preparation, inspired by the sympathetic resonance in acoustic pianos
  • an equalizer on the output, to tailor the sound of bitKlavier to particular speakers, halls, and so on
  • velocity curves, to customize the feel of bitKlavier to your keyboard (or make it feel bizarre!)
  • the bitKlavier Grand: a new sample library, created for bitKlavier, of a Steinway D, with nine different stereo mic images
  • the Dunleavy Double Seconds: another new sample library, also created for bitKlavier, of a beautiful set of steel pans
  • direct-from-disk streaming capability, so you don’t have to load those large sample libraries into RAM
  • flexible resource paths for sample folders, so they can be put wherever you like
  • bug fixes! new bugs!

One of the driving forces behind bitKlavier is the use the traditional piano (its physical layout of keys, the action, its sound, and so on) as an inspiration for a new instrument, enabled by computation. The aim is NOT to try to simulate the piano and make something that sounds as close as possible to an acoustic piano (Pianoteq does that quite brilliantly already, as do many of the sample-based instruments out there). Well, I suppose we do TRY to get as close as possible, and the details of how the acoustic instrument works can be an important part of the inspiration, but ultimately the aim of bitKlavier is to make it our own

This reminds me of learning a fiddle tune from an amazing player (for those of you who don’t know me: fiddle is my main instrument): it’s important to get into the tiny details of what, say, Hauk Buen (one of the players I learned the most from, while he was alive) is doing when playing a particular tune (the bowings, the ornaments, the melodic variations, the tuning, etc…), but in the end, I can never REALLY play like Hauk Buen, and at some point I need to make the tune my own, let it be what I can make it. Same with bitKlavier.

Speaking of the fiddle, the instruments that I play—the Hardanger fiddle and the Hardanger d’Amore—feature sympathetic strings that ring along as we bow; it’s gorgeous, and this is what we point out first when describing the instrument. Sympathetic resonance is not something that people typically talk about with the piano, but it’s also a beautiful part of the instrument’s sound. If you’ve never done this before, try quietly holding down, say, a low register C on an acoustic piano (C2), and then striking/releasing these notes: C3, G3, C4, E4, G4, Bb4… similarly, hold any of those higher notes and strike/release the C2. Listen to the subtle ringing; this interaction is caused by the overlap of the overtones of all the sounding strings (the bitKlavier manual has some illustrations of this): 

Of course, that kind of ringing is going on all the time while playing, and while it is subtle, it, to my ears, acts as a kind of glue between all of the notes, a kind of halo around the “main” sound we are listening to.

bitKlavier’s new Resonance preparation models that sympathetic resonance in a flexible way that should invite a range of approaches, from a “natural” subtle resonance, to a more intense resonance (perhaps without the “main” sound of the instrument), to totally different structures (perhaps using overtone structures from, say, gongs or pipes, or “undertone” structures, or something totally invented). These sympathetic strings can also be tuned however you like: the same as the “main” (Direct) sound, or not. And of course they can be used with whatever sample set you like. So, definitely inspiredby the piano (and the Hardanger fiddle!), but not constrained by it. We’re making sympathetic resonance in bitKlavier our own.


The sound of bitKlavier depends SOOOOOO much on the speakers used; it’s probably the most important factor! While you can’t fix everything with EQ, it can help minimize problems with particular speakers, or address boominess in a particular room, or even just modify the sounds of a particular sample set, in subtle or extreme ways. Rather than having to plug into some external eq, you can now use a built-in 5-band EQ to tailor the sound as you need, and the settings will save with the Gallery.


Different keyboards have different feels, and different players have different preferences in terms of how the instrument responds to how forcefully they play it. bitKlavier now enables that response to be tailored, flexibly, so you can have different feels within a single Piano if you like. Tucked inside the Keymap settings, you’ll find this new pane that you can use to customize the 
velocity curves for your setup. As always with bitKlavier, you can do subtle things that mimic conventional instruments, or wacky things like, say, inverting the velocity curves, so playing more forcefully results in softer sound.


bitKlavier can’t work with commercial sample library packages like Kontakt because we need direct access to all of the samples, and I’m not particularly keen to get into some kind of licensing arrangement with a commercial outfit. Unfortunately, there aren’t that many super high quality and freely available piano sample libraries. For years we’ve used the excellent “Salamander” sample library of a Yamaha 9’ grand; one of its nice features is that it’s recorded from the player’s perspective (low sounds towards the left, high sounds towards the right), which makes sense for bitKlavier since it’s really for the player, as opposed to for recording. But, I’ve longed for some alternatives (not replacements!), just for some variety in timbre and so on. Also, some years ago while recording Olagón, the wonderful producer and engineer Jesse Lewis pointed out that, for recording, it would be great to have some other perspectives of the piano (some audience perspectives!), and also some options that are higher resolution (the Salamander set is 44k/16bit). 

Over the past several months, we’ve had a small team developing a sample library of a new Steinway D that we have here at Princeton. Our engineer Andrés Villalta designed a mic setup with nine different stereo images of the instrument, and Matt Wang spent several days playing samples of the instrument at various velocities. This was followed by months of post-production, with Jeff GordonKatie Chou, and Christien Ayers doing a lot of heavy lifting to help create a beautiful, quiet, and rich sample library. For details and download info, visit the bitKlavier Grand website.

A while ago, we also spent some time with Josh Quillen recording a beautiful instrument of his made by Kyle Dunleavy: double-second steel pans. We finally got around to editing and processing these and are happy to share them as well; thanks Josh! Check out the Dunleavy Double-seconds.

To support using these libraries, which are LARGE can take a lot of memory and time to load into memory, bitKlavier can now stream samples direct from disk. This only works well with an internal SSD or Thunderbolt SSD drive (traditional drives are just too slow), but if you have those, it’s amazing; the app loads super quickly, and you can switch between very large libraries almost instantaneously. 

In addition, we’ve made it more flexible where you keep these libraries; in the past, the “samples” folder HAD to be in the Applications/bitKlavier folder, but now you can put it wherever you want (as long as you tell bitKlavier, in the “preferences” settings).

Finally, we’ve done a fair bit of work on how bitKlavier handles sample playback, particularly with regards to velocity and release resonance; in spite of my fierce arguments that bitKlavier is not about simulating the traditional piano, we DO want to learn as much as possible from that venerable old instrument (just like I wanted to learn all those fiddle tune details from Hauk). In any case, I think it should feel and sound better than it has in the past.


e years, has moved on to graduate school (the NYU Game Design program); I’m very sorry to see him go (he’s been a brilliant coder for bK, and also super smart about design questions that come up all the time), but very happy for him, and I look forward to following his work for years to come.

I also want to thank Jeff GordonKatie Chou, and Theo Trevisan for their contributions to these new 2.9/3.0 features; they did terrific work!


Coming soon… new music for bitKlavier by yours truly, Jenny Beck, Chris Douthitt, Noah Fishman, Molly Herron, Pascal Le Boeuf, Nate May, Annika Socolofsky, and Bora Yoon. Cristina Altamura and Adam Sliwinski have been hard at work learning these new pieces, and will be recording them in the coming months; more soon!


thanks for reading! and for bitKlavier’ing!

—Dan