Popular Posts

Thursday, May 17, 2012

"Cantor" for iOS

The app formerly known as "AlephOne" was submitted to Apple last night.  It may or may not get approved, as it is using the finger-area sensing that a few other apps are using; though it has been very difficult to get absolute clarity on whether finger-area sensing gotten through dynamic, but public, APIs is admissable.  It was once a very important part of the feel of the app Geo Synthesizer's playability, which suffered mightily when we pulled that feature out to be on the safe side (it wasn't my account that was at stake).  I now believe that it totally is admissable (as I have been informally told), and that most developers are just not trying it out of little more than fear.  I decided to just jump into the app mosh pit.  It is generally good advice to never release "Beta" software into the app store, but that assumes that you have unbounded time to work on apps and that you won't go work on something else in any case.  I never uttered the name "Cantor" and used AlephOne because when I had used the name "Pythagoras" for my last app, that name was taken by the time I tried an allocate a spot for it in the store.

The test builds are here:



It is being shipped somewhat early (If it was "done" then there would never be any updates!).  So, where is Cantor?
  • Wavetable synthesis engine - but it demands that you span MIDI channels to use it internally.  Using Waveable synthesis allows me to address per-finger filtering and anti-aliasing issues.  There is not a lot of sound variety right now.  But that's why it's a simple $2 app for now.  I have some testers that think that the MIDI support alone is very valuable and will never use the internal engine, but there will always be people that will never try the MIDI.
  • Like Geo Synthesizer, it has octave auto, for very fast soloing.  This instrument is just as playable on the phone as it is on the iPad if you play it that way.  
  • MIDI with polyphonic bending (note ties, channel cycling, etc).  A lot of synths won't be able to deal with this.  But Kontakt4, Korg Karma, Nord (N2?), ThumbJam, SampleWiz, Arctic, etc all work with it to some degree because they at least do real multi-timbral pitch handling.  ThumbJam, SampleWiz, Arctic specifically recognize the note tie that I added custom to MIDI to work around legato and bend width issues in MIDI.  Generally, you create many adjacent channels (more than 4) with identical patches, and set their bend widths very high, to either 12 or 24 semitones.  It will channel hop around to get all the pitch bending right.  MIDI does not "just work".  It's horribly broken for almost every non-piano instrument scenario when it comes to pitch handling.  This works around that, but it's not pretty.
  • Looper - Audio copy doesn't work yet, but I have it half implemented.
  • Moveable frets to let you define your own scales, which includes exact pitch locations and the number of frets per octave.
  • Common microtonal scale shapes already setup:  Diatonic, Pentatonic, 12ET chromatic, Pseudo Maqam Bayati (ie: 12ET with a quartertone and the quartertone above and below it by a fourth - not quite the unwieldly full 24ET), Pythagorean, Just (Pythagorean with perfect maj/min thirds as a subset of 53ET), 19ET, 31ET, 53ET, or just fretless.  None of these are named, as you simply pick a shape and use the circle of fifths to center it on one of the 12ET base notes.
As Geo Synthesizer was a rewrite of Mugician (that was Pythagoras for a while), Cantor is a rewrite of Geo Synthesizer (and was called AlephOne for a while).  The videos of it in use are here:



This app has nothing at all to do with beat making, sequencing, DAWs, or iPad-only workflows.  I'm a microtonal metalhead.  It's a pocketable instrument that's as playable as a guitar or a piano for a lot of uses.  It should be reliable and simple, for you to plug into an effects processor or a computer *like* a guitar or hardware synth.  I tried initially to ship this without any audio engine at all, as a pure MIDI controller.  But the current state of MIDI with respect to continuous pitch instruments is still bad.  I only implemented an internal engine to demonstrate a full exercise of the playability parameters.  For example: this is ThumbJam in Omni mode on the JR Zendrix patch (it's different from most Omni-modes on most synths... it's done correctly with respect to pitch handling):


If you write a MIDI synth and have issues getting Cantor to control it with full expression, then send me an email.

Please keep your money if you will only give it a low rating based on a missing feature.   See the videos and see what it does; and pass on buying it if you think it needs to do a lot more.  Generally, I cannot respond to feature requests via low ratings like "2 stars when X is added".  I wrote this for my own needs, in my spare time, to solve my own problem of needing a microtonal instrument, and don't sell enough to service any kind of hassles beyond that.  But please let me know if you use it for real and something is actually broken, or about things that are actually impossible to do correctly instead.  Specifically: I won't add in uneven tunings like guitar because they don't solve a problem that I have, and I cannot add in a mini multi-track on account of reliability and memory consumption (though I might get export of current loop to clipboard working in an update), and I won't spend a lot of time on the sound engine when MIDI is available.  If you need these things, then what you are saying is that MIDI itself is broken (ie: in all apps), which I can't spend more time on, (ie: other apps can already record MIDI output, and MIDI is recognized by background synths - but interpreting MIDI gives sonically unreliable results, etc.). 

Why "Cantor"?

Geog Cantor was a mathematician who essentially went insane contemplating infinity, specifically, contemplating the continuum.  Though history regards him well, he was regarded as a crank by a lot of his peers:


Coincidentally, a "Cantor" is kind of like the lead musician in a church's music setup; an interesting meaning when thinking of an instrument designed to deal with intonation issues that weighed heavily on the church organ builders in the time before they all gave up on correct sound (with respect to numerology and aligning music with physical laws) and went to tempered instruments.

17 comments:

  1. instant buy for me. Thanks for all of your great work. I've felt like Geo Synth fell off the face of the planet and it looks like this has more to offer with connectivity and expressiveness.

    ReplyDelete
    Replies
    1. Well, there's truth to that. We fixed some bugs in Geo months ago, and made some changes to accomodate some of the MIDI synths that we currently are incompatible with, but there never was an update. And almost as soon as Geo was released, I piled together all of the lessons learned and started this new synth. I hope it gets approved. I believe that the finger-area sensing qualifies as something I can use without getting rejected, but the fact that almost nothing uses it, and nobody at Apple has ever confirmed that it's fine to use (with 2 years of asking the question periodically... 2 ... years). Another app that I won't name here is using it quite openly, so it can't be an oversight by reviewers. So I can finally ship an initial version for people to start using.

      Delete
    2. Have you considered adding midi cc controllers to add synth expressiveness too (like two vertical sliders on the side of cantor to send cutoff, filter, of modulation options? I requested the same functionality with geo without response.

      Delete
    3. Geo is capable of what this does. The MIDI is almost identical, with some bugs fixed that make it work better with ThumbJam, etc. But no, my sliders are not being funneled through the MIDI pipe,so those sliders only control my internal engine. This app actually has a lot less features than Geo. The main thing about it is that it does have moveable frets, and the code structure is designed for growth over time (updates will not be a hassle for me).

      Delete
    4. anonymous, synth expression parameters... just use the custom menu for that. when i setup the custom menu, it's always for the filter cutoff or volume. it's not on the left side because this is a universal app, and on the phone having something shorten the width is never an option.

      Delete
  2. Huzzah! Crossing my fingers for approval as I am excited to try Cantor out. I personally do not care about it having a lot of sounds; I can make my own instruments in Thumbjam and control them with your apps - and Thumbjam is adding background recording very soon. What more does a guy really need.

    One question, finger-area sensing will control... velocity?

    ReplyDelete
    Replies
    1. Initial velocity and Channel Pressure; where channel pressure is taken as a continuation of velocity, and CC11 for vertical.

      This is *so* important that when I had to remove this from Geo due to not getting positive confirmation that it was something we could use, all of my testers disappeared overnight. They all came back to me months later wanting me to eternally build them the old build. They would tolerate all the bugs and missing features for it. Nothing I could add made up for it.

      As a bit of Geo lore, right after this happened, I sent an email to JR telling him that I was abandoning the project. Not having this feature would be enough to drive me (and most musicians actually) to another platform permanently - the only real barrier is that Android has ridiculous latency while playbook would only be viable as a dedicated instrument if it survives (it's actually a great real-time controller at $200). JR talked me off the ledge and met up with me at a DT show a few days before it shipped.

      Delete
  3. You mentioned that you had fixed some bugs in Geo, but never released an update. Do you plan to release one at some point, for those of us who are still using that app?

    ReplyDelete
    Replies
    1. I don't control the account, and we do our own things right now, so I can't make anything happen in a direct sense. But I am guessing the conversation will come up; if there is an objection to merely pushing a bug fix, or to make it include new features. Then we get into issues for anything that's in real-world use of what can we *break* to make progress in other areas, etc.

      Delete
    2. Geo still has more features than Cantor btw. You have to be a bit more creative and combine things with Cantor. You won't be able to simultaneously use MIDI and internal engine unless you can set up multi-timbral correctly (which is a lot of cases), etc. Geo may be a little less CPU intensive for simultaneous app use, etc.

      Delete
  4. When is it going to be released? I'm getting impatient with Apple!

    ReplyDelete
    Replies
    1. Hehe... It just entered the Under Review state a few hours ago. It can be a 1 day wait after that when there is no controversy. In this case, a little research may be needed by the reviewer to be sure. But i am confident that it will go through.

      Delete
  5. Congrats Rob! Been playing with Cantor all afternoon - works great with Thumbjam (ofc), had a decoder ring moment figuring out the fretting page (but I love a challenge!), and got it controlling a VSTi softsynth in my DAW in 19-tet. Thank you again for the awesomeness!

    ReplyDelete
    Replies
    1. Hopefully I sell hundreds of copies lol. This experience is nothing like when Jordan dropped Geo Synthesizer in the store. :-D
      I'm going to go curl up with my tumbleweed now.

      Delete
    2. Yes,! It was finally approved! I've been playing with it all last night and this morning. It seems faster than Geo and it seems to connect more readily to other synths, but it is finicky with Sunrizer. For some reason it needs to be with a span of one Nd the audio needs to be turned on and then off and then the volume has to be adjusted. Then there is a clicking sound and the jamming is smooth. It doesn't connect with addictive though, but it works great in TJ and arctic. It also connects easily with Sunvox, which is awesome! Thanks for a lot of fun! I agree that there I am struggling with understanding the circle of fifths too, but it is a blast to play around with!

      Delete
    3. I suspect that the clicking noise you are referring to is that you are exceeding the bend width. If you are not using TJ,SW,or Arctic, then you will have to set the bend width higher... like to 1 octave. This is a problem with MIDI itself. MIDI is nothing more than a keyboard extender protocol, and all of the pitch handling for the non-keyboard cases are totally broken in MIDI and they haven't done anything about this problem for 30 years because they sell keyboard controllers and never think about anything else. OSC fixes this problem, but almost nobody has adopted it because almost everybody is using keyboard controllers, and can't see what's so wrong with MIDI. So by default, you will get a note retrigger if you try to bend up more than two semitones. Set it to an octave. I send messages to the synth to let it know that we are using a bend width of 12, but this is another brilliant area of MIDI that is messed up again... a few synths will let you change bend width, but most won't recognize a message to do this coming over MIDI and you have to set bend width manually in the synth. All I want is correct pitch handling and the MIDI is so complicated that almost nobody can use it. If AudioBus is approved, then that says we can get away with a background OSC pipe... we really really really need one. :-)

      Delete
  6. Hi Rob,

    Thanks so much! I've been using Geo Synth daily sence it was first released, both live and in the studio. Cantor's "feel" is very different - there will be many hours of practice with Cantor in my immediate future. I think they both compliment each other well, but I can certainly see pulling out one over the other in certain cases (just as with Thumbjam as well).
    \This thing really taxes my iPad I (I've got a 64GB iPad I), with the exception of Samplewiz and a slightly turned down Thumbjam, running Cantor multi-channeled with a synth on the same system is mostly unworkable - this is expected behavior, and is a good excuse for me to get an new iPad. Samplewiz definitely can take all that Cantor dishes out, at least when I'm playing them :)

    A feature request that would be very very useful for me: a button up in a corner somewhere on a screen (the octave screen would be ideal) that will act as a MIDI panic button across all midi channels that Cantor is configured to send data on (or simply on all 16 channels for good measure would work as well). Synth performance often results in note off messages not being properly processed by the synth, and being able to kill the notes as I tune and experiment would be extremely useful.

    I've had great experience interfacing Cantor with hardware synths (Korg R3 and M3). The best experience thus far has been sound modeling synths - AAS String Studio, several of the NUSOFTing synths, modeling patches in Absynth, etc, as well as FM synthesis with FM8. Sample based synths are hit or miss, generally dependent on quality of the samples - I so want Electri6ity to work well with Cantor, but alas, I can only stuff so many RAM chips in my MBP :) I do a lot of composition work with the Garratan libraries, and Instant Orchestra sounds incredible when used with Cantor.

    Hope some of this is useful to you :) Again, thanks so very much.

    ReplyDelete