Menu

#8 Feature request Virtual Midi Ports

1.0.0
accepted
None
2021-12-25
2021-06-14
No

Hi Antonio Jose,

I stumbled about MidiLayer shortly and it was just what I was looking for to create a Live setup for gigs. Thanks a lot for the jewel. To give you a bit motivation for further development I've done a moderate donation via Paypal.

It comes with a feature request though ;-) I'm running Linux Mint using Jack for realtime playing and knitting together the different parts in qjackctl. In the Midi Setup of MidiLayer I can see the keyboard attached to the laptop but not the virtual instruments (Pianoteq and setBfree in my case). Obviously MidiLayer is not able to see the "jackified" applications for it seems to use alsa Midi solely.

I was able to solve the problem by creating virtual midi devices using the snd_virmidi kernel module. It bridges jack and alsa midi devices. Those devices open up fine in ML's slots and I can connect this way to the jackaware apps. Nonetheless its a bit clumsy.

I see two possibilities for improvements.

  1. I've looked into RtMidi that is used by ML and it can make use of the Jack libraries by compiling with flag -D__UNIX_JACK__. I assume that ML would be able to see the Jack Midi ports after this modification.

  2. I'd prefere another fix that would go deeper into the code. IMHO it would be nice if ML not only connects to existing alsa midi devices but could create virtual Midi ports by itself (here jack or alsa doesn't matter for Jack applications can connect to each alsa port using a2j). My idea is that in ML's slot mechanism I can define an arbitrary name that is created as an virtual in- or output port like described here:
    https://www.music.mcgill.ca/~gary/rtmidi/index.html#virtual

In that way I could make the connections to the other Midi apps by using Jack's or qjackctl's connect mechanism. That would be much more convenient for I have to connect a lot of stuff by this method anyway.

In ticket #7 you mentioned "There has been no help from other programmers". I'd like to go into the subject by myself but unfortunately your code does not give a hand in compiling the sorces (by intention?). I'm moderately skilled in C but unfortunately not in C++, nonetheless i would try if you would help me getting started in compiling ML. I expected a ./configure or a make mechanism or the use of Qt Designer but nothing obvious here.

Thank you for reading this, I hope you are intereted.
Gerhard

Related

Tickets: #8

Discussion

  • Gerhard Zintel

    Gerhard Zintel - 2021-06-20

    One step forward: I was able to compile the program using qtcreator. You have to open the midiLayer.pro file. The compilation went smooth (Linux Mint Mate 20.1 here) . For the time being the code is way beyond my expertise. First step could be to update to latest RtMidi version to get Jack compatibility.

     
    • Antonio Jose Maia

      Sorry for the late reply. I've read it and I agree with the proposals.
      Tomorrow or Tuesday I will respond in detail

      Regards
      António Maia

      On Sun, 20 Jun 2021, 21:35 Gerhard Zintel, gerb1857@users.sourceforge.net
      wrote:

      One step forward: I was able to compile the program using qtcreator. You
      have to open the midiLayer.pro file. The compilation went smooth (Linux
      Mint Mate 20.1 here) . For the time being the code is way beyond my
      expertise. First step could be to update to latest RtMidi version to get
      Jack compatibility.


      Status: open
      Milestone: 0.4.0
      Created: Mon Jun 14, 2021 07:34 PM UTC by Gerhard Zintel
      Last Updated: Mon Jun 14, 2021 07:34 PM UTC
      Owner: Antonio Jose Maia

      Hi Antonio Jose,

      I stumbled about MidiLayer shortly and it was just what I was looking for
      to create a Live setup for gigs. Thanks a lot for the jewel. To give you a
      bit motivation for further development I've done a moderate donation via
      Paypal.

      It comes with a feature request though ;-) I'm running Linux Mint using
      Jack for realtime playing and knitting together the different parts in
      qjackctl. In the Midi Setup of MidiLayer I can see the keyboard attached to
      the laptop but not the virtual instruments (Pianoteq and setBfree in my
      case). Obviously MidiLayer is not able to see the "jackified" applications
      for it seems to use alsa Midi solely.

      I was able to solve the problem by creating virtual midi devices using the
      snd_virmidi kernel module. It bridges jack and alsa midi devices. Those
      devices open up fine in ML's slots and I can connect this way to the
      jackaware apps. Nonetheless its a bit clumsy.

      I see two possibilities for improvements.

      1.

      I've looked into RtMidi that is used by ML and it can make use of the
      Jack libraries by compiling with flag -D__UNIX_JACK__. I assume that ML
      would be able to see the Jack Midi ports after this modification.
      2.

      I'd prefere another fix that would go deeper into the code. IMHO it
      would be nice if ML not only connects to existing alsa midi devices but
      could create virtual Midi ports by itself (here jack or alsa doesn't matter
      for Jack applications can connect to each alsa port using a2j). My idea is
      that in ML's slot mechanism I can define an arbitrary name that is created
      as an virtual in- or output port like described here:
      https://www.music.mcgill.ca/~gary/rtmidi/index.html#virtual

      In that way I could make the connections to the other Midi apps by using
      Jack's or qjackctl's connect mechanism. That would be much more convenient
      for I have to connect a lot of stuff by this method anyway.

      In ticket #7 you mentioned "There has been no help from other
      programmers". I'd like to go into the subject by myself but unfortunately
      your code does not give a hand in compiling the sorces (by intention?). I'm
      moderately skilled in C but unfortunately not in C++, nonetheless i would
      try if you would help me getting started in compiling ML. I expected a
      ./configure or a make mechanism or the use of Qt Designer but
      nothing obvious here.

      Thank you for reading this, I hope you are intereted.
      Gerhard


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/midi-layer/tickets/8/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       

      Related

      Tickets: #8

  • Gerhard Zintel

    Gerhard Zintel - 2021-06-21

    Hi António,
    thanks for your answer; please take your time, there is no hurry. I'm glad you are still interested in improving ML. I'm not sure if I can help you in any way. Don't feel yourself urged, I'm very happy with ML as it is.
    Gerhard

     
  • Antonio Jose Maia

    • status: open --> accepted
    • Milestone: 0.4.0 --> 1.0.0
     
  • Antonio Jose Maia

    I'm taking advantage of the Christmas break to make the necessary changes.

     
    • Gerhard Zintel

      Gerhard Zintel - 2021-12-25

      Whow, that's absolute fantastic! It might encourage you to know that I still use ML on a daily basis and the more I work with it the more it suits me well.
      I tried to change the sources by myself as well but nothing worked so far. Obviously I'm not skilled enough using my limited C knoledge.
      If I can help you in any way please let me know. I will test your changes in each case and give you feedback.
      Good luck
      Gerhard

       
      • Antonio Jose Maia

        If you want to try (and test) the version. You can send me an email to
        midilayer@gmail.com refering your Operative Systemand I can send you only
        the 1.0.0 Alfa version.

        Thanks for feedback

        Regards
        António Maia

        On Sat, 25 Dec 2021, 14:11 Gerhard Zintel, gerb1857@users.sourceforge.net
        wrote:

        Whow, that's absolute fantastic! It might encourage you to know that I
        still use ML on a daily basis and the more I work with it the more it suits
        me well.
        I tried to change the sources by myself as well but nothing worked so far.
        Obviously I'm not skilled enough using my limited C knoledge.
        If I can help you in any way please let me know. I will test your changes
        in each case and give you feedback.
        Good luck
        Gerhard


        Status: accepted
        Milestone: 1.0.0
        Created: Mon Jun 14, 2021 07:34 PM UTC by Gerhard Zintel
        Last Updated: Thu Dec 23, 2021 03:20 AM UTC
        Owner: Antonio Jose Maia

        Hi Antonio Jose,

        I stumbled about MidiLayer shortly and it was just what I was looking for
        to create a Live setup for gigs. Thanks a lot for the jewel. To give you a
        bit motivation for further development I've done a moderate donation via
        Paypal.

        It comes with a feature request though ;-) I'm running Linux Mint using
        Jack for realtime playing and knitting together the different parts in
        qjackctl. In the Midi Setup of MidiLayer I can see the keyboard attached to
        the laptop but not the virtual instruments (Pianoteq and setBfree in my
        case). Obviously MidiLayer is not able to see the "jackified" applications
        for it seems to use alsa Midi solely.

        I was able to solve the problem by creating virtual midi devices using the
        snd_virmidi kernel module. It bridges jack and alsa midi devices. Those
        devices open up fine in ML's slots and I can connect this way to the
        jackaware apps. Nonetheless its a bit clumsy.

        I see two possibilities for improvements.

        1.

        I've looked into RtMidi that is used by ML and it can make use of the
        Jack libraries by compiling with flag -D__UNIX_JACK__. I assume that ML
        would be able to see the Jack Midi ports after this modification.
        2.

        I'd prefere another fix that would go deeper into the code. IMHO it
        would be nice if ML not only connects to existing alsa midi devices but
        could create virtual Midi ports by itself (here jack or alsa doesn't matter
        for Jack applications can connect to each alsa port using a2j). My idea is
        that in ML's slot mechanism I can define an arbitrary name that is created
        as an virtual in- or output port like described here:
        https://www.music.mcgill.ca/~gary/rtmidi/index.html#virtual

        In that way I could make the connections to the other Midi apps by using
        Jack's or qjackctl's connect mechanism. That would be much more convenient
        for I have to connect a lot of stuff by this method anyway.

        In ticket #7 you mentioned "There has been no help from other
        programmers". I'd like to go into the subject by myself but unfortunately
        your code does not give a hand in compiling the sorces (by intention?). I'm
        moderately skilled in C but unfortunately not in C++, nonetheless i would
        try if you would help me getting started in compiling ML. I expected a
        ./configure or a make mechanism or the use of Qt Designer but
        nothing obvious here.

        Thank you for reading this, I hope you are intereted.
        Gerhard


        Sent from sourceforge.net because you indicated interest in
        https://sourceforge.net/p/midi-layer/tickets/8/

        To unsubscribe from further messages, please visit
        https://sourceforge.net/auth/subscriptions/

         

        Related

        Tickets: #8


Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.