Incremental Goodness: LMS Suite 12.04, DSSI plugins for all

Discuss anything new and newsworthy! See http://planet.linuxaudio.org and https://libreav.org/news for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.


Moderators: raboof, MattKingUSA, khz

wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

Ok, I found a very simple link, so here is a PDF explaining everything you need to know as a developer:
http://www.h-pi.com/additionals/TPXSoftInstGuide.pdf

But I added more comments at my other topic:
http://www.linuxmusicians.com/viewtopic.php?t=7955

This is general stuff not necessarily specific to your plugins, so I want all instrument developers to see this. Anyway, I think it should be really easy.

For reference, Pianoteq does this under GNU/Linux already.
Aaron Wolf
Music teacher, scholar
http://wolftune.com
slowpick
Established Member
Posts: 457
Joined: Mon Apr 25, 2011 10:09 am

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by slowpick »

jeffh wrote: Do you have any links with documentation of how that works? I don't think it will be that hard to do, since all of my plugins already share a lot of code, but I don't actually know how it works because I've never done it myself. Even better, do you know of any software (preferably open source) that already has a solid implementation of this?
.
http://zynaddsubfx.sourceforge.net/doc_2.html
just some basics in section 2, but you can check the code, yoshimi
is a bit modernized version of zynaddsubfx.

(edited to correct quoting error)
Last edited by slowpick on Fri May 04, 2012 7:45 pm, edited 1 time in total.
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

slowpick, I don't know that Yoshimi does what I'm talking about. Do you know otherwise? I tried at one point, but haven't yet got that working. The only thing I know works is Pianoteq. Anyway, that PDF I linked above should answer everything…
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

Uh, oh... I think we're losing consensus here :mrgreen:

I've been thinking about how best to do this, and I might just have a winning gameplan, but I have a few more questions:

1. Is this an industry standard for microtonal stuff to work this way, or is it specific to your keyboard? Obviously I would want to make this as useful as possible for as many people as possible.
2. The keyboard is handling the actual tuning using the pitchbend, correct? As to say: I don't need to implement a tuning algorithm, because it will still be using 12-note equal-tempered Britney-style scales? Or, does the keyboard have an alternate mode where instead of hacking out the right note using pitchbend, it can send whole notes, and I can just provide alternative tunings in the software? (I think this would be ideal because it's a lot more flexible, can be accurately recorded in a sequencer, and could even be done on a standard keyboard)
3. I don't actually own a Microtonal keyboard, and I'm not really interested in investing in one, so can I get a commitment from you to be my tester? This might involve testing quite a few builds of Ray-V until I get it right... If so, please tell me your distro and architecture so I know what to send you.
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

jeffh wrote:Uh, oh... I think we're losing consensus here :mrgreen:

I've been thinking about how best to do this, and I might just have a winning gameplan, but I have a few more questions:

1. Is this an industry standard for microtonal stuff to work this way, or is it specific to your keyboard? Obviously I would want to make this as useful as possible for as many people as possible.
The idea of being able to take PB on multiple channels for this purpose is relatively standard. LMSO from non-octave has a feature to do this, the software and hardware for regular keyboards made by the same guy who made my keyboard does this, Toby Bear's microtuning Windows plugin thing does this, and the stuff from Dynamic Tonality uses this same mechanism.
2. The keyboard is handling the actual tuning using the pitchbend, correct? As to say: I don't need to implement a tuning algorithm, because it will still be using 12-note equal-tempered Britney-style scales? Or, does the keyboard have an alternate mode where instead of hacking out the right note using pitchbend, it can send whole notes, and I can just provide alternative tunings in the software? (I think this would be ideal because it's a lot more flexible, can be accurately recorded in a sequencer, and could even be done on a standard keyboard)
Yes, in ALL the cases I mentioned above above, the tuning is handled by a keyboard, a plugin, some software interface, a sequencer, etc. and you just need to allow pitch-bend on various channels (Like Pianoteq does) and otherwise your instrument is still 12-note tempered.

But I think you're confused about the difference between my keyboard and standard. The same thing I'm talking about implementing works well with regular keyboards if they are processed through a program that creates the channel-routing and pitch bending (such as some of those I mentioned above). When the output is recorded to a sequencer, it INCLUDES the pitch-bend data and channel data, so when the sequencer later plays your instrument or any other with the same features, it will be accurate.

The other way of implementing tuning, via a tuning table setting like the Anamark standard or others works also, but not as well with my keyboard or other software that does the pitch-bend strategy. A tuning table is NOT as accurate in recording in a sequencer because individual notes appear normal and can't easily be edited but instead need to be adjusted via adjusting the tuning table.

With the pitch-bend method, even a non-supported synth can later be used as long as it handles the right PB-range setting, because mutliple instantiations can be used to supplement for the multi-track thing. The main advantage of the PB method is that it works with ANY instrument that can be set to the right PB-range, it's just SO much easier if it also accepts multi-channel input with independent per-channel bending. With the full implementation, there's no need for complex multiple instances and routing and changing the settings across all channels should be as simple as if it were only a single-channel instrument.
3. I don't actually own a Microtonal keyboard, and I'm not really interested in investing in one, so can I get a commitment from you to be my tester? This might involve testing quite a few builds of Ray-V until I get it right... If so, please tell me your distro and architecture so I know what to send you.
I'm happy to test it for you! You can also download TPXE software (http://www.h-pi.com/TPXEsoftware.html) for free which runs under WINE 1.4, is essentially a virtual version of the keyboard, and is fully functional without limitations for the purposes here.
Aaron Wolf
Music teacher, scholar
http://wolftune.com
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

Update: here's a good discussion of the different standard ways to implement tuning:

http://www.xen-arts.com/2011/11/microtu ... art-2.html

I that article, he mentions a few standards, but also references several programs that use the thing my keyboard uses, what he calls "pitch-bend relay method"
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

I think I might be able to get you sorted out by perhaps tomorrow night... I checked out the ALSA stuff, it would appear that I only need to do the following:

1. Segregate notes and pitchbend messages by the channel they were received on
2. Only apply pitchbend to notes received on the same channel

...and then your keyboard should work. The only potential snag I see is that my voice stealing algorithm may require some additional logic to avoid undesired behaviours when stealing notes cross-channel...
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

voice-stealing? What's that?
jeffh wrote:I think I might be able to get you sorted out by perhaps tomorrow night... I checked out the ALSA stuff, it would appear that I only need to do the following:

1. Segregate notes and pitchbend messages by the channel they were received on
2. Only apply pitchbend to notes received on the same channel
Anyway, this looks fine. It does require that your instrument accept input on all channels in general, of course.
I should add that there is potentially other applications of these settings. It could allow multiple tracks of a sequencer to be send to the same synth but have some tracks playing melodies that include pitch bend effects while notes on other channels are not bending. That is useful just for the effect itself dynamically. Like if someone wants to have one note of a chord bend up or down or whatever.

Anyway, as to what's needed, I think that PDF I linked to earlier answers everything specifically. But I think you've got the idea.
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

wolftune wrote:voice-stealing? What's that?
It's where I climb in your window at night and steal your voice, it's for a vocalist synthesizer plugin I'm working on. The right to do so is established in my EULA, you agreed to it whenever you installed LMS Suite. :mrgreen:

j/k, of course, voice stealing is how synthesizers intelligently determine which voice to kill prematurely when a note-on event happens and you're already using all of your voices.

I was able to write a small patch to enable this last night, but it's not yet in my Git repo because I'm going to put it on a new branch after I perform some quick testing. Later I'll post some instructions for how to pull the new branch, compile and run the new version of Ray-V with microtonal support.
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

Oh! I see! Good question! My keyboard and any other good implementation of this "pitch-bend relay method" (which I'd love to see someone create a full FLOSS software for GNU/Linux that does this, thus enabling everyone!), umm, ok, so I think my keyboard sends a note-off event automatically for the last note that occurred on a channel right at the same time as a new note on that channel. What happens is, if I sustain 16 notes, a 17th one then automatically stops the first. So you don't need to do anything for voice-stealing in this case. The software in the keyboard or in a similar app automatically sends the appropriate note-off as needed.
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

Here's the initial support for microtonal_keyboards for the adventurous:

1. Install Git , for example:

Code: Select all

sudo apt-get install git
(or however your distro does it)
2. Run these commands:

Code: Select all

git clone git://git.code.sf.net/p/libmodsynth/git libmodsynth-git
cd libmodsynth-git
git checkout --track origin/microtonal_support
cd plugins/ray_v
perl build.pl --debug
Of course, you must have all of your appropriate dependencies installed first. You can do this by installing the LMS Suite package first if you are using Debian or Ubuntu. Once running, connect your keyboard via Qjackctl, set Ray-V's pitchbend range to 1 semitone for the patch you are playing, and it should work.
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

Ok, I finally tested this. I should have done it long ago, but I was hesitant because I'd never installed a test thing like this before and wanted to find time to make sure I understood what I was doing. I think I did it all correctly.

Here's the result: I can play Ray-V with a normal keyboard, but it doesn't work with the microtonal stuff. There is one issue: sound only comes out on notes on channel 1. The rest of the channels are being sent to Ray-V in JACK but nothing comes out.

Incidentally, Aaron Hunt at H-Pi said he's happy to hear from any developer who wants to make his software compatible with this tuning method and will answer any questions…
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

wolftune wrote:Ok, I finally tested this. I should have done it long ago, but I was hesitant because I'd never installed a test thing like this before and wanted to find time to make sure I understood what I was doing. I think I did it all correctly.
Don't you think asking me for help directly would've been the appropriate course of action? It was a matter of entering ~5 commands into the command line, and I gave you the commands...
wolftune wrote: Here's the result: I can play Ray-V with a normal keyboard, but it doesn't work with the microtonal stuff. There is one issue: sound only comes out on notes on channel 1. The rest of the channels are being sent to Ray-V in JACK but nothing comes out.
Unfortunately, I've done a complete overhaul of the voicing system since creating that branch ~3 weeks ago, so the code in the microtonal_support branch can't just be merged into the master branch, I'm going to have to do it all over again. However, I'm not going to do it all over again, because I personally never cared about microtonal support in the first place, and I don't fancy wasting more time on it not knowing when/if you're actually going to test the next patch.

That's exactly why I asked you to commit to testing it before I started writing code, because I'm not going to go out and buy a microtonal keyboard just because 1 user asked me to support it, I'm giving away this software for free, you know... I'm also not going to waste a bunch of time writing code for that 1 user if they won't have the decency to test it for me while it's still hot... I have plenty of other features I could be working on that would benefit all 5 of my other users...

No hard feelings, but don't be shocked if I completely ignore this feature request and any future ones you make...
wolftune
Established Member
Posts: 1350
Joined: Fri Feb 24, 2012 7:40 pm
Location: Portland, OR
Been thanked: 2 times
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by wolftune »

Jeff, please!! Sheesh! Give me another chance. I am totally well-intentioned and just have had a particularly overwhelming couple weeks. I really meant to be more punctual. I was surprised at how quickly you worked and wasn't ready that day to do any more… I didn't end up needing any extra help, I just did it first try — your specific command instructions were fine. It's just that I was getting into a lot of things all at once and got myself overwhelmed. I'm a Linux newbie still and trying to wrap my head around everything. I've only been using Linux at all for a couple months!

Right after our original exchange, I got bogged down because I was having hardware problems with getting stuff working (not related to the keyboard), and a bunch of unrelated distractions.

I will be prompt in the future on matters like this.

I'm sorry for the hassle, but it really is just not fair for you to judge me and dismiss me based on this one first impression! I don't blame you for not wanting to have your time wasted! I screwed up in just not getting to it right away and then I kept getting distracted by other things, though it was on my mind. I won't do that again, and I apologize sincerely! But it really was just a matter of circumstance, and I didn't understand that two weeks would be such a big deal, and I would have put a higher priority on it if I understood more. I don't mean to be at all disregarding of your effort or cause you any extra hassle!

Honestly, I am shocked that you took this one situation as justification to threaten completely ignoring me. That's really harsh. I screwed up, but it was a mostly-innocent newbie misunderstanding. I'm not some flake! I would not be surprised if you chose to ignore someone who had any actual track record of being unreliable! But I didn't even know what sort of time-frame you'd be working on, and I didn't understand the need for being punctual. I thought it was my responsibility to take the next step, but I didn't understand that it would otherwise interfere with your general progress. Most people I usually work with are much slower, and anyway I am not a programmer and don't fully understand the process, though I'm trying to learn…

:oops: :? :cry: :|

Anyway, you have every right to do what you want with your project, but it's not like microtonal stuff is a personal request just for me. I want that feature for others too, people who will use other software that uses this mechanism. I want it for my students. I'm not asking for special treatment, I'm asking for a resource that will be valuable to the community! And I'm willing to contribute and to be prompt about it!

Oh, and I didn't even use the keyboard to test it. I did it the test with the free software. There's no need for my keyboard for testing or using these features, the keyboard is just one application.

Anyway, the basic point is, I'm just learning about how to make sense of things in the Linux world, including interacting with developers and doing my best to contribute. Please give me another chance here…
Aaron Wolf
Music teacher, scholar
http://wolftune.com
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: Incremental Goodness: LMS Suite 12.04, DSSI plugins for

Post by jeffh »

wolftune wrote:But it really was just a matter of circumstance
You had time to make 43 posts on this very forum between me posting that branch and now, including your massive participation in the great politics/religion/OOMidi flamewar of 2012, you obviously weren't that busy. You asked, I dropped what I was doing to accomodate you, and you didn't even acknowledge me for 2.714285714 weeks, which makes you, by definition, a flake.
wolftune wrote:Honestly, I am shocked that you took this one situation as justification to threaten completely ignoring me. That's really harsh.
No, I'm not threatening, I'm telling you that under no uncertain terms that I'm not going to devote anymore time to it. I absolutely didn't care about microtonal support in the first place, that was purely a favor to you, because you asked for it.
wolftune wrote:Anyway, you have every right to do what you want with your project
If you'd care to work out the patch yourself, I'll include it in my project, but otherwise I'm going to devote my time to the things I care more about, like my sampler and my visual plugin designer.

I'm taking time out my busy life to found/develop a project that singularly attempts to fill all of the various gaps in the Linux audio stack, there are much bigger gaps to fill than microtonal support at the moment, it's downright selfish to suggest I devote time to that when Linux currently lacks things like a modern EMU/Akai/Kontakt/Halion style sampler(honorable mention goes to Hydrogen for at least covering drum sampling), or a full-featured Reaktor/MaxMSP/SynthEdit style plugin designer. Those are my top priorities, and I think they'll also provide the most benefit to the Linux audio stack and Linux musicians.
Post Reply