Bug 56686 - Allow user to manipulatio graph
Summary: Allow user to manipulatio graph
Status: RESOLVED MOVED
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: pavucontrol (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium enhancement
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-02 17:25 UTC by kakadu.hafanana
Modified: 2018-07-30 09:31 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description kakadu.hafanana 2012-11-02 17:25:07 UTC
Hey. Recently I have tried to understand how sinks work and how to fuse audio streams to different sinks. For example, I want to fuse skype sound stream with my chess program's stream and send this to ffmpeg to create audio&video stream in stream service. Also I want to send all system streams (including two above) to my alsa to hear. I've not succeded with this aim, I was very confused by console commands about creating sinks and pavucontrol app for managing program's streams. So I want to offer rebuilding interface of pavucontrol. 

Maybe pavucontrol can have something similiar to graph editor in itself. vertexes will represent programs, sinks and hardware devices like alsa. Edges will represent flows of sound which will flow from programs to sinks and hardware. User will be able to create sinks and move/add/remove vertexes to manipulate sound streams

Best wishes,
Kakadu
Comment 1 Tanu Kaskinen 2012-11-03 11:11:06 UTC
Thanks for offering to improve the GUI tools! Both a graph-based interface and the possibility to load null sinks and combine sinks are sensible features to have available in a GUI. In my opinion pavucontrol isn't the right tool to add these features, however, so I'd prefer a separate tool.

(In reply to comment #0)
> Hey. Recently I have tried to understand how sinks work and how to fuse
> audio streams to different sinks. For example, I want to fuse skype sound
> stream with my chess program's stream and send this to ffmpeg to create
> audio&video stream in stream service.

This can be done by loading a null sink (module-null-sink) where you route skype and the chess program, and recording from the null sink's monitor source with ffmpeg.

> Also I want to send all system streams
> (including two above) to my alsa to hear.

Ok, this makes the setup a bit more complicated: you'll need to load a combine sink (module-combine-sink) that outputs to the alsa sink and the null sink, and route skype and the chess program to the combine sink.
Comment 2 kakadu.hafanana 2012-11-06 11:14:48 UTC
Hey Tanu, sorry for a big delay, I have some problem with my lazyness.

You know, I have tried many manuals about sinks configuring and after executing some command in console I often failed while configuring it in pavucontrol. I think I'll try you advice soon to give you more detailed description about my problem.


But IMHO I don't think that user should do some console commands to get desired audio streams flow. I've read some holy war treads about pulseaudio and systemd and I create a presentation about this tools special to myself. You know, Windows7 has built-in controls for configuring audio volume for each program (this feature is granted linux by pulseaudio, AFAIK), but It is not a killer-feature. I can hardly imagine another possible use-case for pulseaudio like organizing stream process from linux machine. That's why pulseaudio daemon is almost always down on my laptop.

My writing maybe a little bit verbose but I want to say that if program has a only one killer feature it should be implemented very well. Maybe I'm too highly of myself :D but If I failed to get what I want  by googling and clicking in the interface I think that tool is not convenient enough

Best wishes,
Kakadu
Comment 3 Tanu Kaskinen 2012-11-07 12:27:41 UTC
(In reply to comment #2)
> Hey Tanu, sorry for a big delay, I have some problem with my lazyness.
> 
> You know, I have tried many manuals about sinks configuring and after
> executing some command in console I often failed while configuring it in
> pavucontrol. I think I'll try you advice soon to give you more detailed
> description about my problem.
> 
> 
> But IMHO I don't think that user should do some console commands to get
> desired audio streams flow.

I don't think so either, and I wasn't saying that in my previous reply. I only said that the functionality would not fit well in pavucontrol, and that some other GUI tool could be written instead, one that would be based on the graph paradigm.

I should also mention that there is work being done for making complex audio routing configurations much easier to manage. That work should also make it much easier to write the kind of GUI that you want to have. If you're not in a hurry, you might want to wait for that work to become available. It won't be ready quickly, however, I would expect it to take months to get there.

By the way, I've been assuming that when you said that "I want to offer rebuilding interface of pavucontrol", you meant that you'd do the coding work. Was that a correct assumption, or did you only offer to provide ideas for the user interface?
Comment 4 kakadu.hafanana 2012-11-08 09:43:55 UTC
Tanu, I'm sorry, I forgot to read your reply before citing in 1st comment. So, I'm glad that we've agreeded about this point.

> By the way, I've been assuming that when you said that "I want to offer 
> rebuilding interface of pavucontrol", you meant that you'd do the coding work. 
> Was that a correct assumption, or did you only offer to provide ideas for the 
> user interface?
No, your assumption was incorrect :D
Comment 5 GitLab Migration User 2018-07-30 09:31:25 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pavucontrol/issues/47.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.