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