Menu

Guitarport

2008-09-22
2013-06-13
  • Emil Myhrman

    Emil Myhrman - 2008-09-22

    Hi folks,
    I've been working on a linux driver for GuitarPort (mainly to learn more about kernel dev.) and now I have working playback, capture and can read/write to memory (things like ESN). I was hoping for a way to merge this with your code for other line6 devices, since there isnt any GuitarPort support yet, right? What would be a good way to do this, a new branch? just add gp files to existing tree? The whole module code is ~800 lines, so its not that much and should be alot less if I could rewrite it to use your alsa/pcm/usb... code.

    What do you say?

    /Emil

     
    • Markus Grabner

      Markus Grabner - 2008-09-22

      That's very good news! I created a branch for the TonePort GX a while ago:
      https://line6linux.svn.sourceforge.net/svnroot/line6linux/driver/branches/toneport
      I guess that this is the closest match to the GuitarPort, so you could have a look if your code can be merged in there. Did you start from scratch or with the POD series driver?

      Kind regards,
      Markus

       
      • Emil Myhrman

        Emil Myhrman - 2008-09-23

        Great, I'll try to integrate it with the TonePort branch and I'll let you know how it goes.
        I basically started from scratch but borrowed many ideas mostly from the usbaudio.c (in kernel) and the POD code was also very helpfull.

        /Emil

         
        • Markus Grabner

          Markus Grabner - 2008-09-23

          To increase maintainability of the code, we should reuse existing components of the Line6 driver. One issue with the POD driver was to create URBs of proper size to fit the device's sampling rate (see function "submit_audio_out_urb" in "playback.c"). Does the GuitarPort support different sampling rates and sizes? And does it require some activation sequence via USB in order to function properly?

          Kind regards,
          Markus

           
          • Emil Myhrman

            Emil Myhrman - 2008-09-26

            GP supports only one sample rate and size (44100 and 16bit).

            One problem I had was with the channels when capturing, it seems like one channel is used for the raw input and the other for the amplified input. To fix this I just copied the selected channel into both resulting channels in the pcm stream, see the cap_memcpy() hack in the code I sent you.
            I'm not sure how this should be done when merging with your code. What do you think? Perhaps this should be done in some usermode application?
            Gearbox seems to use the raw input when switching to the tuner and otherwise the amplified channel.

            /Emil

             

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.