Okay !

I didn't know it is possible to set a PA source in the device parameter !
Romain, David : What about adding this to the documentation ?

I can take care of writing a little snippet about this in the 
sourcefabric wiki

Thank you Peter !

Le 23/02/2012 20:33, Peter Retep a écrit :
> Hi Martin,
>
> please see the thread below, maybe this helps.
> I use the device parameter to select a PA source.
>
> BR, Peter
>
> ------
>
>
> Hi Romain,
>
> Thanks for your input!
>
> I totally agree, using a filesystem allows a lot of flexibility with a 
> range from using mounted external storages up to using distributed web 
> storages (like wuala, dropbox, etc) or any other virtual mapping.
>
> Back to the topic itself: I made it using pacmd from pulseaudio-utils. 
> paman showed me the way to this.
>
> example without soundcard:
>
> pacmd list-sources | grep name:
>      name:<auto_null.monitor>
>
> liquidsoap 'output.file(%mp3, "/tmp/test.mp3" 
> ,input.pulseaudio(device="auto_null.monitor") )'
>
>
> example with soundcard:
>
> pacmd list-sources | grep name:
>      
> name:<alsa_output.usb-M_Audio_USB_Audio_Quattro-00-Quattro.analog-stereo.monitor>
>
> liquidsoap 'output.file(%mp3, "/tmp/test.mp3" 
> ,input.pulseaudio("alsa_output.usb-M_Audio_USB_Audio_Quattro-00-Quattro.analog-stereo.monitor")
>  
> )'
>
> the mp3.file contains everything that was played by vlc during the 
> recording time.
> So basically this seems to work (I have made no extended tests up to 
> now).
>
> Good to know that you can just plug in any sound source to liquidsoap 
> by still using pulseaudio monitors!
> Once more this shows to me the advantage of unix philosophy and of 
> providing generic interfaces! Thanks for supporting this!
>
> BR, Peter
>
> Am 28.09.2011 01:16, schrieb Romain Beauxis:
>
>> Hi all !
>>
>> I like the idea of a file system -- file systems and file hierarchy
>> always seem more intuitive to people..
>>
>> One idea tho: what about actually running a_virtual_  file system
>> using fuse? You could then map a database and any kind of storage to a
>> fuse-based filesystem. User drops a file, DB is updated and file moved
>> to storage.. Also, all directories are created at once and the
>> structure can be constrained to only have valid path and perhaps files
>> etc..
>>
>> Finally, you can easily map this to another view, for instance a web 
>> site..
>>
>> BTW, concerning pulse devices, I think you can use pulse's tools such
>> as paman and the like..
>>
>> Romain
>>
>> 2011/9/27 Peter Retep<[email protected]>:
>>> Hi Damien,
>>>
>>> If a user does not follow the convention, his/her files will not be 
>>> played.
>>>
>>> Usually all shows are planned some weeks or days before. We use a 
>>> google calendar for planning this.
>>> The calendar synchronisation creates all directories from this and 
>>> additionally creates the website entries with all show descriptions.
>>> So mostly user dont need to create any directories, since this is 
>>> automatically done if the show is scheduled at the calendar.
>>> So user just needs to drop its mp3 file into the right directory. If 
>>> there is a urgent need (e.g. someone has forgotten to schedule the 
>>> show)
>>> he sees all existing directories and can use them as template for 
>>> the path convention. User does not even has to take care of the file 
>>> name or any metatags
>>> (except correct audio duration metadata).
>>> The scheduler writes frequently current and next show to log. So you 
>>> can check for errors, before the scheduler (or a cron job) would try 
>>> to start a non-existing file.
>>> Additionally I do not want to need the user to care about correct 
>>> file paths in the jobs.
>>> All of this should help to prevent misconfiguration or user errors.
>>>
>>> There are multiple reasons why I do not to use a cron job for this:
>>>
>>> - Most users I know, do not know even what a cron job is or what 
>>> faults you can do when writing one.
>>>     Additionally I would not like a separate cron job for each show 
>>> (imagine 24 shows a day, 365 days a year, ok, today we have only 
>>> around 10 preproduced shows a week).
>>>
>>>    - If there are any changes needed, the user just needs to update 
>>> the file system.
>>>      So there is no database or any other redundant definition (like 
>>> cron) of what is to be played when.
>>>
>>>     - Furthermore the scheduler checks frequently if the current 
>>> show player is running.
>>>       If not, the start of the show will be cutted and played from 
>>> the current position.
>>>       This is useful for reboots due to power outages and other 
>>> outages like process failures. The scheduler would be respawned by 
>>> upstart on failure.
>>>       Another case like this: the user puts the file at the right 
>>> directory still one minute after the show should have been started 
>>> (many users I deal with deliver their productions at the last minute 
>>> .-)
>>>
>>> As you can see the scheduler does a lot more than still starting a 
>>> file at a certain time (e.g. logging, process audits, house keeping, 
>>> etc.) to keep everything running
>>>
>>> BR, Peter
>>>
>>> Am 27.09.2011 20:33, schrieb Audiodef Online:
>>>> That looks useful. What if a user doesn't follow the correct dir/file
>>>> structure format? What advantage does this have over using a cronjob?
>>>> Just wondering.
>>>>
>>>> Damien
>>>>
>>>> On 09/27/11 18:03, Peter Retep wrote:
>>>>> Hi,
>>>>>
>>>>> I am trying to use the pulseaudio mix channel as input for 
>>>>> liquidsoap.
>>>>>
>>>>> Do you know how I can find out the names of available pulseaudio 
>>>>> devices?
>>>>> I played around with the names I see at audacity but unfortunately 
>>>>> I did not succeed.
>>>>>
>>>>> e.g. the following line will not work, since 'mix' is not the 
>>>>> right device name.
>>>>>
>>>>> liquidsoap 'output.file(%mp3, "/tmp/test.mp3" 
>>>>> ,input.pulseaudio(device="mix") )'
>>>>>
>>>>> Background:
>>>>>
>>>>> As you might remember we always wanted to have some dynamic 
>>>>> scheduler to start a show (a single audio file) at a certain 
>>>>> date&     time.
>>>>> I have written now a small scheduler which frequently scans all 
>>>>> subdirectories below a storage/mnt/storage/  where start date and 
>>>>> time is mapped to the path by convention.
>>>>> e.g. if file /mnt/storage/2011/09/27/20-00/show.mp3 exists, 
>>>>> show.mp3 will be started at 2011-09-27T20:00:00.
>>>>> Starting a file means starting a cvlc for playout. (At our studio 
>>>>> we put the playout audio directly on the sound mixer).
>>>>>
>>>>> Directories are automatically created from our program schedule, 
>>>>> so user just has to drop a file in the right folder.
>>>>> To delete or move a show, user can still delete or move the file.
>>>>> The scheduler takes care of file changes, even for shows that are 
>>>>> in the past (like a show is inserted to be started a half hour 
>>>>> before now).
>>>>> This works good for now and has a very small cpu and memory 
>>>>> footprint.
>>>>>
>>>>> Now I would like to build a continous stream with help of 
>>>>> liquidsoap to make the scheduler useful for other people, too.
>>>>>
>>>>> Best regards, Peter
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>>  
>>>>>
>>>>> All the data continuously generated in your IT infrastructure 
>>>>> contains a
>>>>> definitive record of customers, application performance, security
>>>>> threats, fraudulent activity and more. Splunk takes this data and 
>>>>> makes
>>>>> sense of it. Business sense. IT sense. Common sense.
>>>>> http://p.sf.net/sfu/splunk-d2dcopy1
>>>>> _______________________________________________
>>>>> Savonet-users mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>>>
>>>> ------------------------------------------------------------------------------
>>>>  
>>>>
>>>> All the data continuously generated in your IT infrastructure 
>>>> contains a
>>>> definitive record of customers, application performance, security
>>>> threats, fraudulent activity and more. Splunk takes this data and 
>>>> makes
>>>> sense of it. Business sense. IT sense. Common sense.
>>>> http://p.sf.net/sfu/splunk-d2dcopy1
>>>> _______________________________________________
>>>> Savonet-users mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>>
>>> ------------------------------------------------------------------------------
>>>  
>>>
>>> All the data continuously generated in your IT infrastructure 
>>> contains a
>>> definitive record of customers, application performance, security
>>> threats, fraudulent activity and more. Splunk takes this data and makes
>>> sense of it. Business sense. IT sense. Common sense.
>>> http://p.sf.net/sfu/splunk-d2dcopy1
>>> _______________________________________________
>>> Savonet-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>
> ------------------------------------------------------------------------------
>  
>
> All of the data generated in your IT infrastructure is seriously 
> valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2dcopy2
> _______________________________________________
> Savonet-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
> Am 23.02.2012 17:51, schrieb Martin Hamant:
>> Hi !
>>
>> Long time no see :)
>>
>> reminder: "PulseAudio clients can send audio to "sinks" and receive
>> audio from "sources"."
>>
>> * In my LS setup, I have multiple dynamic sources - each of them open a
>> connection to the running pulseaudio server (with input.pulseaudio())
>> Then I am using pavucontrol / volume control / Playback tab   to route
>> the needed source to each LS's pulse client.
>>
>> * My soundcard provide several sources called
>> 'alsa_input.pci-0000_01_00.0.analog-stereo-chX' ...
>>
>> * pulseaudio remembers each client routing settings, I am not 100% sure
>> how the client identified by PA but it seems each client's settings is
>> associated to the client name. So if I create a input.pulseaudio()
>> source with clientname "test",  remove it then create it as 'test' again
>> I will get my routing settings as before.
>>
>> the need: I would like to open explicitly a given PA 'source' from the
>> input.pulseaudio() call, so I would be able to handle routing preference
>> directly from my app.
>> it would remains the following problem: if someone uses pavucontrol to
>> change the routing, my app would not be able to track it. (??)
>>
>> But anyway, that would be a good start to define a default PA source
>> with input.pulseaudio()
>>
>> What do you think ?
>>
>> ------------------------------------------------------------------------------
>>  
>>
>> Virtualization&  Cloud Management Using Capacity Planning
>> Cloud computing makes use of virtualization - but cloud computing
>> also focuses on allowing computing to be delivered as a service.
>> http://www.accelacomm.com/jaw/sfnl/114/51521223/
>> _______________________________________________
>> Savonet-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to