Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
Hello everyone,

I have recently discovered JamRouter

https://github.com/williamweston/jamrouter

the use of which resulted in a subjective improvement in feel when playing percussive parts on high-throughput MIDI controllers such as the QuNeo or the Linnstrument over a2jmidid. The documented test cases in the readme seem rather impressive as well.

It appears to me that JamRouter is highly undervalued and I would like to ask for your opinions as a Jack users on whether it has simply been overlooked, or whether there is a technical reason it is not receiving more attention.

Thank you very much!

Carlo
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

termtech


On 07/10/2017 08:01 AM, Carlo Capocasa wrote:

> Hello everyone,
>
> I have recently discovered JamRouter
>
> https://github.com/williamweston/jamrouter
>
> the use of which resulted in a subjective improvement in feel when playing
> percussive parts on high-throughput MIDI controllers such as the QuNeo or
> the Linnstrument over a2jmidid. The documented test cases in the readme seem
> rather impressive as well.
>
> It appears to me that JamRouter is highly undervalued and I would like to
> ask for your opinions as a Jack users on whether it has simply been
> overlooked, or whether there is a technical reason it is not receiving more
> attention.
>
> Thank you very much!
>
> Carlo
>
>
Hi, just want to say I also discovered JamRouter this past weekend, and was
  thinking the same - what others think of it and if it has been
discussed before.
Very impressive documentation. I'm not sure if I'm reading the tables
  correctly, but it seems as if the latency may be worse in some cases
  than without it? Maybe on LAU or LAD others may chime in.

Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
To reduce MIDI jitter for apps such as .e.g Qtractor, jack2 provides
the "-X alsarawmidi" option sine many years and in the meantime jack1
got something similar, too.

To reduce MIDI jitter, there are other issues to consider, too, the
kernel, the timer and what kind/s of interface/s is/are used, let alone
the mobo.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

termtech


On 07/10/2017 10:31 PM, Ralf Mardorf wrote:
> To reduce MIDI jitter for apps such as .e.g Qtractor, jack2 provides
> the "-X alsarawmidi" option sine many years and in the meantime jack1
> got something similar, too.
Yes that driver is nice, IIRC basically same code as the old external
a2jmidi.
I seem to recall also someone recently posted they had fixed hot-plugging
  for that driver in jack(2?). Nice.
> To reduce MIDI jitter, there are other issues to consider, too, the
> kernel, the timer and what kind/s of interface/s is/are used, let alone
> the mobo.
>
I think the project mentions some of that, specifying to use an rt kernel.
It sure helps ensure the tightest possible timing.

(Hm, I have not used an rt kernel in a very long time, and I didn't use one
  when writing and testing MusE's midi external clock sync input support.
I was getting a lot of frustrating clock jitter! It forced me to write heavy
  multi-stage filtering and all o' that stuff, with user-selectable
heaviness.
I really must go back and test with rt kernel. Wonder how it'll fare.
Funny I'm actually working in this area now...)

Cheers.
Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
In reply to this post by Ralf Mardorf
> To reduce MIDI jitter for apps such as .e.g Qtractor, jack2 provides
> the "-X alsarawmidi" option sine many years and in the meantime jack1
> got something similar, too.

What confuses me is that the Ardour manual recommends a2jmidid for all jack versions except recent jack1.

This could of course be a case of "NIH". I suppose we are going to need some numbers.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
On Wed, 12 Jul 2017 00:54:46 -0700 (MST), Carlo Capocasa wrote:
>> To reduce MIDI jitter for apps such as .e.g Qtractor, jack2 provides
>> the "-X alsarawmidi" option sine many years and in the meantime
>> jack1 got something similar, too.  
>
>What confuses me is that the Ardour manual recommends a2jmidid for all
>jack versions except recent jack1.
>
>This could of course be a case of "NIH". I suppose we are going to
>need some numbers.

Hi,

a while ago I used "-Xalsarawmidi" together with "a2jmidid". I can't say
what I will use in the future. I had no time to use much MIDI with my
latest mobo. However, at least a while ago -Xalsarawmidi didn't replace
a2jmidid, by my scripts both were used.

I just played a little bit and let Ardour do everything instead of using
a script. Seemingly Ardour did not start a2jmidid, but seemingly has
written this:

$ cat ~/.jackdrc
/usr/bin/jackd -t 200 -p 2048 -R -T -X alsarawmidi -d alsa -n 2 -r 44100 -p 128 -d hw:HDSPMx579bcc,0 -X alsarawmidi

Regards,
Ralf
--
Vote for apulse!
echo $(w3m https://aur.archlinux.org/packages/apulse |grep 'Votes:    ')
Votes: 84                         Updated: Wed Jul 12 19:45:04 CEST 2017
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Kjetil Matheussen-2


On Wed, Jul 12, 2017 at 7:45 PM, Ralf Mardorf <[hidden email]> wrote:
On Wed, 12 Jul 2017 00:54:46 -0700 (MST), Carlo Capocasa wrote:
>> To reduce MIDI jitter for apps such as .e.g Qtractor, jack2 provides
>> the "-X alsarawmidi" option sine many years and in the meantime
>> jack1 got something similar, too.
>
>What confuses me is that the Ardour manual recommends a2jmidid for all
>jack versions except recent jack1.
>
>This could of course be a case of "NIH". I suppose we are going to
>need some numbers.

Hi,

a while ago I used "-Xalsarawmidi" together with "a2jmidid". I can't say
what I will use in the future. I had no time to use much MIDI with my
latest mobo. However, at least a while ago -Xalsarawmidi didn't replace
a2jmidid, by my scripts both were used.

I just played a little bit and let Ardour do everything instead of using
a script. Seemingly Ardour did not start a2jmidid, but seemingly has
written this:

$ cat ~/.jackdrc
/usr/bin/jackd -t 200 -p 2048 -R -T -X alsarawmidi -d alsa -n 2 -r 44100 -p 128 -d hw:HDSPMx579bcc,0 -X alsarawmidi


Good catch. In my experience, Ardour's manual isn't always up-to-date.
NIH is definitely not something I think of about when Ardour is mentioned.
It has always used lots of 3rd party libraries, bleeding edge very often.
Besides, Paul Davis is a very experienced programmer who I have
very much trouble seeing as a person who would re-implement something
unnecessarily.


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Joakim Hernberg-2
On Wed, 12 Jul 2017 20:10:32 +0200
Kjetil Matheussen <[hidden email]> wrote:

> Good catch. In my experience, Ardour's manual isn't always up-to-date.
> NIH is definitely not something I think of about when Ardour is
> mentioned. It has always used lots of 3rd party libraries, bleeding
> edge very often. Besides, Paul Davis is a very experienced programmer
> who I have very much trouble seeing as a person who would
> re-implement something unnecessarily.

AFAIK, if you use -Xseq with JACK1, then it loads an internal client
(derrived from the a2jmidid code), so it just works.  Don't know about
-Xraw, but am not really a midi user :)

--

   Joakim
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
In reply to this post by Kjetil Matheussen-2
>Good catch. In my experience, Ardour's manual isn't always up-to-date.
>NIH is definitely not something I think of about when Ardour is mentioned.
I>t has always used lots of 3rd party libraries, bleeding edge very often.
>Besides, Paul Davis is a very experienced programmer who I have
>very much trouble seeing as a person who would re-implement something
>unnecessarily.

Thank you for sharing your perception on that! I phrased that poorly- I didn't mean to ask so much whether JamRouter had been dismissed out of hand, I meant to figure out whether it may have been evaluated but dismissed for some kind of development process related reason.

From your answer and the other information in this thread I am drawing a tentative conclusion that JamRouter has not been evaluated yet by the Jack community, most likely because it is a late arrival[1], there is an existing solution, and the likely presence of other pressing issues.

[1] it was mostly developed in 2008 as part of phasex, but is only standalone since 2015
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Chris Caudle
On Thu, July 13, 2017 2:04 pm, Carlo Capocasa wrote:
> From your answer and the other information in this thread I am drawing a
> tentative conclusion that JamRouter has not been evaluated yet by the Jack
> community, most likely because it is a late arrival[1], there is an
> existing solution, and the likely presence of other pressing issues.

I think you cannot dismiss lack of promotion also.  Until JamRouter was
mentioned on this mailing list, I do not remember hearing of it before,
and I try to at least briefly read all messages to linux audio users and
jack-devel lists.  If the JamRouter author posted a message describing
JamRouter to either of those lists I do not remember seeing it.  No one
will evaluate new software if no one hears of the new software.

--
Chris Caudle


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
>I do not remember hearing of it before,
>and I try to at least briefly read all messages to linux audio users and
>jack-devel lists.  If the JamRouter author posted a message describing
>JamRouter to either of those lists I do not remember seeing it.  No one
>will evaluate new software if no one hears of the new software.

Ah yes, build a better mousetrap and the world will beat a path to your door. But it might take years.

The same might go for the GTK phasex synth by the same author that's been around and had accurate MIDI since 2008, as mentioned above. Sounds like all the synths on this track except the leads, which are hardware (Virus).

https://soundcloud.com/dejavuslip/brand-new-day-v011

No distribution packages but builds fine and looks beasty.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Chris Caudle
On Thu, July 13, 2017 5:52 pm, Carlo Capocasa wrote:
> The same might go for the GTK phasex synth by the same author
> that's been around and had accurate MIDI since 2008
> No distribution packages but builds fine and looks beasty.

Fedora has it available, but only the old version, for some reason Fedora
is pulling from an  older github, not the current williamweston account
that has PhaseEx 0.14.97.

Available Packages
Name         : phasex
Version      : 0.12.0
Release      : 5.12.m1.fc26
Arch         : x86_64
Size         : 300 k
Source       : phasex-0.12.0-5.12.m1.fc26.src.rpm
Repo         : fedora
Summary      : PHASEX -- Phase Harmonic Advanced Synthesis EXperiment
URL          : https://github.com/disabled/phasex-dev
License      : GPLv2
Description  : PHASEX is an experimental JACK audio / ALSA MIDI softsynth
for Linux
             : with a synth engine built around flexible phase modulation and
             : flexible oscillator/LFO sourcing.  Modulations include AM,
FM, offset
             : PM, and wave select.  PHASEX comes equipped with a
12db/octave filter
             : with two distortion curves, a stereo crossover delay and
chorus with
             : phaser, ADSR envelopes for amplifier and filter, realtime
audio input
             : processing capabilities, and more.


--
Chris




_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

michael noble-2
In reply to this post by Carlo Capocasa
Unfortunately, the author of JamRouter and Phasex has been "missing" for some time. By missing I mean absent from the Internet. He also disappeared in the past, then re-emerged for a brief time when he announced updates to Phasex and apparently pushed JamRouter to github. Then he promptly disappeared again. In the process, he left Phasex in a somewhat broken state and has since stopped responding to issues in github or other attempts at communication.

So keep in mind that code in his repos is apparently at this point in time largely abandonware unless someone forks and continues development.



On Fri, Jul 14, 2017 at 7:52 AM, Carlo Capocasa <[hidden email]> wrote:
>I do not remember hearing of it before,
>and I try to at least briefly read all messages to linux audio users and
>jack-devel lists.  If the JamRouter author posted a message describing
>JamRouter to either of those lists I do not remember seeing it.  No one
>will evaluate new software if no one hears of the new software.

Ah yes, build a better mousetrap and the world will beat a path to your
door. But it might take years.

The same might go for the GTK phasex synth by the same author that's been
around and had accurate MIDI since 2008, as mentioned above. Sounds like all
the synths on this track except the leads, which are hardware (Virus).

https://soundcloud.com/dejavuslip/brand-new-day-v011

No distribution packages but builds fine and looks beasty.




--
View this message in context: http://jack-audio.10948.n7.nabble.com/Considering-JamRouter-a-low-jitter-MIDI-bridge-for-all-Jack-versions-tp19580p19590.html
Sent from the Jackit mailing list archive at Nabble.com.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
>Unfortunately, the author of JamRouter and Phasex has been "missing" for
>some time. By missing I mean absent from the Internet. He also disappeared
>in the past

Disappeared from the internet? Gosh, where did he ever go!

Yes that's definitely good to be aware of- I'll try to be optimistic and consider it a bi-yearly maintenance schedule.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
In reply to this post by Chris Caudle
On Thu, 13 Jul 2017 15:43:50 -0500, Chris Caudle wrote:

>On Thu, July 13, 2017 2:04 pm, Carlo Capocasa wrote:
>> From your answer and the other information in this thread I am
>> drawing a tentative conclusion that JamRouter has not been evaluated
>> yet by the Jack community, most likely because it is a late
>> arrival[1], there is an existing solution, and the likely presence
>> of other pressing issues.  
>
>I think you cannot dismiss lack of promotion also.  Until JamRouter was
>mentioned on this mailing list, I do not remember hearing of it before,
>and I try to at least briefly read all messages to linux audio users
>and jack-devel lists.  If the JamRouter author posted a message
>describing JamRouter to either of those lists I do not remember seeing
>it.  No one will evaluate new software if no one hears of the new
>software.

+1

Let alone that in the past we seemingly noticed that I was the most
nitpicking person regarding MIDI jitter ;), since I'm used to C64 with
click sync to tape and Atari ST synced via SMPTE to tape, programming
for the C64 myself in Assembler.

I'm sceptic regarding the "sample accurate" sync.

For the C64 computer we programmed directly using the hardware without
layers and by turning of maskable interrupts using the SEI command of
the 65xx chips.

For PCs this is much more trick and has got much to do with good luck
regarding the used hardware.

IMO phasex is one of the best sounding virtual synth available for
Linux, but it was provided for a very long time with a 0 Hz bug ;).
DC offsets aren't fun. It wasn't a minor bug.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
On Fri, 14 Jul 2017 18:35:53 +0200, Ralf Mardorf wrote:
>Let alone that in the past we seemingly noticed that I was the most
>nitpicking person regarding MIDI jitter ;)

IOW I did much research trying to solve this issue and never heard of
JamRouter before, but Stéphane gave me the pointer to jack2's
-Xalsarawmidi years ago, a long time before jack1 provided something
similar, too.

>IMO phasex is one of the best sounding virtual synth available for
>Linux, but it was provided for a very long time with a 0 Hz bug ;).
>DC offsets aren't fun. It wasn't a minor bug.

That's one reason why I'm sceptic regarding claims about sample
accuracy, but the main reason still is related to the issues regarding
hardware and the required good luck.
--
Vote for apulse!
echo $(w3m https://aur.archlinux.org/packages/apulse |grep 'Votes:    ')
Votes: 84                         Updated: Fri Jul 14 19:02:53 CEST 2017
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
In reply to this post by Ralf Mardorf
>Let alone that in the past we seemingly noticed that I was the most
>nitpicking person regarding MIDI jitter ;),since I'm used to C64 with
>click sync to tape and Atari ST synced via SMPTE to tape, programming
>for the C64 myself in Assembler.

Oh that's just perfect it would appear that you're exactly who I was looking for.

So in your opinion, JamRouter may or may not live up to its claims, at least when not using an exact replica of the author's setup, and may be prone to unexpected behavior. I already noticed that- I had to remove some signal handlers that aren't usually listened for on posix to get it to launch. Glancing at the codebase, while it's not terrible, I don't really see the author wasting a lot of time debating the finer points of scoping.

If it's not too much trouble, I have an old school Hammerfall hooked up to a W530- could you kindly use your clout as nitpicker-in-chief to define approximately what kind of data and how much of it would satisfy you to make a reliable initial jitter comparison benchmark of, say, current jack1 and JamRouter?

Would this do?

https://github.com/koppi/alsa-midi-latency-test

If you already have your preferred command-line switches for your favorite test program handy, all the better.

Now, I will get off your lawn.

Carlo
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Carlo Capocasa
Oh hang on that was alsa- maybe this?

https://github.com/x42/jack_midi_latency
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
In reply to this post by Carlo Capocasa
Hi Carlo,

I'm tired of discussing this issue and I guess a lot of people prefer
that I stopped discussing it ;).

I found this one from 2015:

http://linux-audio.4202.n7.nabble.com/MIDI-jitter-Was-outfitting-a-computer-for-songwriting-in-linux-td96796.html

And this one from 2010:

http://lalists.stanford.edu/lad/2010/07/0189.html

Note, I didn't read it again, so I don't know how useful or useless it
is.

I found this one where I was whining about another issue, but I claimed
that "Jack MIDI latency test is ok", much likely it should read "ALSA
MIDI latency test" ;). It looks like I already unbound an USB port
sharing an IRQ with the HDSP. On my new mobo I can't do this, but the
shared IRQ seems not to affect the HDSP at all.

I changed my hardware, my current setup looks like this:

[rocketmouse@archlinux ~]$ amidi -l
Dir Device    Name
IO  hw:0,0    HDSPMx579bcc MIDI 1
IO  hw:1,0    TerraTec EWX24/96 MIDI
IO  hw:4,0,0  Scarlett 18i20 USB MIDI 1

apart from this I switched from an around ten year old AMD machine to
an Intel machine, so now a perhaps better timer is available, let alone
that I can use a lower audio frame value when launching jackd, which
seemingly has impact on the midi-audio-sync-accuracy, too.

Actually the audible issue did arise, when I tried to record one
external MIDI instrument after the other, if all were recorded at the
same time, it was more or less ok.

I didn't use my new machine for critical MIDI recordings, maybe I will
do during the German North Rhine-Westphalia summer holidays from
2017/07/17 to 2017/08/29. I'm working in childcare, so I have holidays
myself at the moment.

Regards,
Ralf
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Considering JamRouter, a low-jitter MIDI bridge for all Jack versions

Ralf Mardorf
In reply to this post by Carlo Capocasa
On Sat, 15 Jul 2017 08:44:59 -0700 (MST), Carlo Capocasa wrote:
>Oh hang on that was alsa- maybe this?
>
>https://github.com/x42/jack_midi_latency

I suspect I only run the ALSA test, even while I mentioned the jack
test by the below link.

On Sat, 15 Jul 2017 18:24:54 +0200, Ralf Mardorf wrote:
>I found this one where I was whining about another issue  

Oops, I forgot to post the link:

https://www.forum.rme-audio.de/viewtopic.php?id=16092
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
12
Loading...