Page 1 of 2 12 LastLast
Results 1 to 10 of 19

Thread: Configuring GStreamer & ALSA

  1. #1
    Join Date
    Feb 2012
    Beans
    127

    Configuring GStreamer & ALSA

    I am attempting to migrate my music player from WinXP to Linux (Bodhi or Lubuntu). Under WinXP, I typically run a player like MusicBee (BASS libraries) through ASIO to my card. MusicBee will accept certain plugins, such as Izotope Ozone, for processing of the sound.

    I am trying to comprehend the possibilities in Linux. It looks like I will have a player, then GStreamer (in most cases), and then ALSA. PulseAudio keeps popping up in discussions, but I just don't see where that fits in yet.

    It looks like most of the players don't have their own plugins for things like noise sharpening (for example). I get the sense that such things must be done in GStreamer, which is starting to look like a "plugin layer" between the player and ALSA. Then ALSA acts as the driver for the card. Then I see that there are plugins for ALSA, too; but these seem more device oriented than audio stream oriented.

    Using the example of a noise sharpener, what is the appropriate way to introduce such a capability into the player --- GStreamer --- ALSA system? Is GStreamer the place where added audio control is applied (equalizers, filters, sharpeners, reverb)? If so, where is a good tutorial on how to do so? If not, what is the right path?

    Many thanks for any advice. I have read quite a bit about the various aspects of Linux audio, but I haven't discovered a good overview that ties it together, and shows me how to put it to use in playing my music.

  2. #2
    Join Date
    Jul 2007
    Location
    Mississauga, ON
    Beans
    123
    Distro
    Lubuntu 12.10 Quantal Quetzal

    Re: Configuring GStreamer & ALSA

    Perhaps you are looking for JACK.

    Have you read on Mixxx?

    Windows by necessity, Linux by choice
    Lubuntu and loving it!

  3. #3
    Join Date
    Feb 2012
    Beans
    127

    Re: Configuring GStreamer & ALSA

    Perhaps --- but I just don't know. Therein lies my problem. I'm trying to find a nice overview of the whole sequence from frontend player to soundcard input. It seems more complex in Linux than in Windows, possibly because there are more options available. Since I am just a user and not a computer expert), I am a bit overwhelmed in trying to grasp:

    - GStreamer: what does it do, and how can it be tweaked?
    - ALSA: what does it do, and how can it be tweaked?
    - PulseAudio: what exactly is this, and how does it relate to the above two items?
    - JACK: likewise, how does this fit into the sequence?

    Even after reading until my eyes are tired, I don't have a good picture how all this fits together. Literature I have read calls GStreamer a "framework." Other literature calls ALSA a "framework." Yet they both seem to be used together. I did find one diagram that tried to relate these elements to one another, but it had arrows pointing back and forth in every which direction. I simply could not grasp the overall idea.

    It almost seems like:

    In GNOME, a player requires a backend like GStreamer before it can send audio to ALSA. In WinXP, I think I have MusicBee sending audio via ASIO to my sound card. In Linux, I wonder if I have [Guayadeque + GStreamer] taking the place of MusicBee, and ALSA taking the place of ASIO. Of course, even if that were true, it doesn't explain where PulseAudio fits in, or JACK.

    I'm hoping to find a higher-level "Linux music playing for dummies" tutorial that shows how the pieces fit together, and what each piece is responsible for doing. So far, I feel like I am going around in circles. I want to learn if I can set up a decent player using a frontend + GStreamer + ALSA; or if I need other elements like PulseAudio or JACK. I want to learn what tweaking can be done, if any, in GStreamer and ALSA.

    Pity the newb.

  4. #4
    Join Date
    Feb 2012
    Beans
    127

    Re: Configuring GStreamer & ALSA

    So, I'm still hunting for a big-picture view on how Linux audio all fits together.

    I have come across one helpful discussion on TuxRadar:

    http://tuxradar.com/content/how-it-w...udio-explained

    This article in itself was pretty helpful for me. However, one of the reader's responses was particularly useful. Unfortunately titled "This article is crap," the response really simplified what the original writer had said, and allowed me to get a better idea of how everything fits together. It suggests, as I suspected, that GStreamer is a layer that allows the insertion of codec plugins, and it confirms that PulseAudio is mainly needed if I am trying to control the mixing of multiple audio streams (which I am not). JACK seems only needed if you are creating music (as opposed to playing it). So, if I am interested in playing a single stream of compressed audio files, I need: a player, GStreamer, and ALSA (the hardware driver).

    Perhaps this is oversimplified, but it gives me a better starting-point picture.

    Now I have to figure out what configuring of GStreamer and ALSA is available.

  5. #5
    Join Date
    Jun 2007
    Beans
    13,363

    Re: Configuring GStreamer & ALSA

    You don't need gstreamer. I use Audacious, which sends output to ALSA directly (using ALSA's libasound).

    Unfortunately, there's no easy way of controlling gstreamer in a lot of apps (though some like clementine allow you to create your own pipeline). It used to be done through gconf, but I have no idea how it's done nowadays (dconf?). If it helps, I have the gstreamer noise sharpening plugin (and bauer stereophonic headphone plugin) already packaged in my PPA: https://launchpad.net/~dtl131/+archive/ppa

  6. #6
    Join Date
    Feb 2012
    Beans
    127

    Re: Configuring GStreamer & ALSA

    Thanks for the info, Temujin.

    So Audacious has its own built-in plugin structure, and performs whatever processing GStreamer would do. I've read good things about Audacious. The only downside for me would be the lack of a music library. I suppose I could use something like Ex Falso to organize a library and make playlists, then play them in Audacious. It would be great if I could drag and drop tracks from Ex Falso into Audacious, but I'll bet that won't work. I'm going to set up a separate box for experimenting, and include Audacious as one route to try.

    Meanwhile, I'll keep learning what I can about how GStreamer works. I guess some front-end apps provide ways to access the GStreamer plugins, while others don't. Still wondering whether the GStreamer plugins can be used when not implemented in the front-end player. I have to explore gstreamer-properties, to see what that can do.

  7. #7
    Join Date
    Jun 2007
    Beans
    13,363

    Re: Configuring GStreamer & ALSA

    Try this:
    Code:
    sudo add-apt-repository ppa:dtl131/ppa
    sudo apt-get update
    sudo apt-get install gstreamer0.10-tools gstreamer0.10-delta gstreamer0.10-bs2b dconf-tools
    dconf-editor
    See the screenshot for the keys to change. You'll probably want to tweak the music-audiosink as that's what rhythmbox and other players use (though some like totem use the regular audiosink). If you wanted to use the noise sharpening plugin, you would make the key:
    Code:
    delta gain=120 ! alsasink
    If you wanted to use the Bauer stereophonic and noise sharpening, it would be:
    Code:
    delta gain=120 ! crossfeed preset=1 ! alsasink
    For information on the plugins and their parameters:
    Code:
    gst-inspect-0.10 <plugin>
    Attached Images Attached Images
    Last edited by Temüjin; January 9th, 2013 at 07:23 PM.

  8. #8
    Join Date
    Feb 2012
    Beans
    127

    Re: Configuring GStreamer & ALSA

    So are you saying that I can run these plugins from the Terminal, if I know the correct commands? And then any sound that I play through GStreamer will be processed by those plugins? That would be excellent! Not as convenient as setting them from within the audio player itself, but that's OK.

    And if I choose a player like Audacious, that doesn't use GStreamer, I can use Audacious's native plugins, right?

    And most GNOME players do use GStreamer, and most don't provide direct access to the GStreamer plugins, so I will have to get at them through the Terminal?

    While I could probably look up (or figure out) how to run the plugins through the Terminal, is there perhaps also a GUI for configuring GStreamer?

    Many thanks for helping me learn this. It seems a bit more complicated than my experiences in Windows. But I really want to get switched completely over to Linux.

  9. #9
    Join Date
    Jun 2007
    Beans
    13,363

    Re: Configuring GStreamer & ALSA

    Quote Originally Posted by Iggy64 View Post
    So are you saying that I can run these plugins from the Terminal, if I know the correct commands? And then any sound that I play through GStreamer will be processed by those plugins?
    Yes. The commands are given above.

    And if I choose a player like Audacious, that doesn't use GStreamer, I can use Audacious's native plugins, right?
    Correct.

    And most GNOME players do use GStreamer, and most don't provide direct access to the GStreamer plugins, so I will have to get at them through the Terminal?
    The commands are given above. You only have to do it once.

    While I could probably look up (or figure out) how to run the plugins through the Terminal, is there perhaps also a GUI for configuring GStreamer?
    dconf-editor is a GUI (albeit not very beginner-friendly).

  10. #10
    Join Date
    Feb 2012
    Beans
    127

    Re: Configuring GStreamer & ALSA

    Many thanks to Temüjin for your continuing support. I think I am just beginning to finally see how things fit together. I have installed the commands you suggested and will begin experimenting. I'm sure I'll be back with more questions, but I'll try to learn as much as I can on my own.

    Again, much obliged.

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •