automatically start broadcasting at startup

Bug #1902378 reported by Eitan Caspi
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Confirmed
Wishlist
Unassigned

Bug Description

Hello,

I wish to ask to add a feature to make "Live Broadcasting" an Output "Device" option, possibly as a new output type, say "Online" (beside "Master", "Headphones" and so on), and in it the user will be able to choose a "Live Broadcasting" connection.

This way the user will be able to stream the session in parallel not only to a local device(s) but also to an online "device", like Internet Radio Station of his/her own or of partners.

I believe this will expand the publication channels of the play session, as not being only heard local but also global/remote, which is even more important in the current COVID-19 days, which makes folks stay at home.

Thank you.

Tags: broadcast easy
Eitan Caspi (eitanc)
summary: - Make "Live Broadcasting" an Output option
+ Enhancement Request - Make "Live Broadcasting" an Output option
ronso0 (ronso0)
summary: - Enhancement Request - Make "Live Broadcasting" an Output option
+ Add "Live Broadcasting" output option
Changed in mixxx:
importance: Undecided → Wishlist
Revision history for this message
Be (be.ing) wrote : Re: Add "Live Broadcasting" output option

Broadcasting can already be configured in the broadcasting preferences. There would be advantage to conflating this with hardware configuration. It would require cluttering the hardware configuration preference page and likely confuse people.

Changed in mixxx:
status: New → Invalid
Revision history for this message
Be (be.ing) wrote :

There would be *no* advantage... Launchpad does not allow editing comments...

Revision history for this message
Eitan Caspi (eitanc) wrote :

It has a configuration GUI but it cannot be started automatically, only manually.
Defining it as an output channel will enable to stream to it in parallel with any other hardware device.

Alternatively a broadcast connection can be added as a "device" option in the list of all other hardware devices, so no extra output category will be added - but it will be simply selected as the go-to device.

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :

This sounds super-confusing. Please elaborate why you think that our broadcasting settings are insufficient.

Revision history for this message
Eitan Caspi (eitanc) wrote :
Download full text (3.5 KiB)

Hi Jan,

Sure, I will be glad to explain.

I was looking for a long time for an app to do something that I thought was simple and common - to read a tree of folders in my local Windows PC hard drive, of MP3 files, play them to a local, on the same PC, Shoutcast server as a Windows service, which will connected by a local Wi-Fi network Internet Radio hardware device.
So all in all, I will be able to stream my MP3 files to my radio device, all on the same local network.

Initially I tried using DLNA but I have thousands of songs and these radio devices are quite limited, to several hundreds of files to be listed in their memory - so the radio can find my PC as DLNA server and start yanking the list of a MP3 files but once the number of files limit is reached - the process fails with a "too many files" error, so I cannot use this method.

As this didn't work, I turned to the "Internet Radio" option, which means that I don't yank the full list of file, but rather I connect to an HTTP local URL, that serves me one song at time (so I am limited about skipping songs forward at the internet radio device level, but that's the price I have to "pay").

First I tried IceCast as a server but I was not able to make it work on Windows (it is more linux oriented), so I turned to shoutcast - which I was able to configure quite easily and make it run as a service.

Now I needed to find a shoutcast source to read the files and stream them to the shoutcast service.
This is where I had a really hard time to find an app to do all the above and in a good quality, stable and easy to use manner - Mixxx was the best I have found.
It does all of the above wonderfully, but in a manual manner - I need to load its GUI, enable "Auto DJ" and enable the "Live Broadcasting" connection I have set to stream the music to the local shoutcast server.

So, I look for a way to automate the manual parts - that I can make Mixxx load automatically (best as Windows service, but as a startup command/batch is also OK, I have another bug for this), and as part of its startup - that it will start "Auto DJ" in a shuffle mode and also turn on the "Live Broadcasting" to my specific connection (I have only one configured) to the local Shoutcast server.

My use case is just one. I guess real DJs will love the option of not being limited to only playing to local audio devices but also in parallel to stream their work to an online radio/show service, hence reaching a wider audience, even globally.

You have it all of the above already in Mixxx - it is just a needed to be "stitched" together, which I guess it is should not be too hard, in one of several possible ways:
1. Add a startup switch to the cli of the Mixxx executable, to start "Live Broadcasting" and to specify the name of the server connection the user wish to use (and of course, was already configured)
2. At the output pane, either:
a. Add an output category (at the level of "Master", "headphones" and so on) - of "Live Broadcast" and there the user will need to choose a radio connection he/she already created
b. Else, if adding an output category is not desired - then add to the current output list of devices (say, as an example - the dr...

Read more...

Revision history for this message
ronso0 (ronso0) wrote :

IF AutoDJ and Broadcast could be started automatically...what exactly do you need the extra 'Broadcast' output device for?
It would already be sending the audio to the broadcast service AND any of your configured hardware devices.

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :

Mixxx is a software for live performances. I think instead of trying to shoehorn Mixxx into being an automated streaming media player, you should use something much better suited for this. For example, MPD has all the functionality you need built-in. You could even use it on a headless system, e. g. an Raspberry Pi. Another alternative would be using VLC, which should also be capable of doing what you want. I think Mixxx is just the wrong tool for your use case.

Revision history for this message
Eitan Caspi (eitanc) wrote :

No need, I wrote - ANY of the options I mentioned (or any other anyone will come up with), just one, to start broadcasting automatically will be good - as EITHER a CLI startup switch, OR an output category, OR an output item in the drop down list of output "devices".

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Making Broadcast an output device is IMHO not the best solution for your issue.
I can however confirm your use case. A straight forward solution would be to auto-start broadcasting and Auto-DJ after Mixxx start. That can be implemented with a reasonable effort.

@Eitan: Do you have some coding experience. It looks like an easy beginners task.

We have now:

https://bugs.launchpad.net/mixxx/+bug/1902379
"automatically start "Auto DJ" at startup"

So we can use this bug to track the broadcasting part.

summary: - Add "Live Broadcasting" output option
+ automatically start broadcasting at startup
Changed in mixxx:
status: Invalid → Confirmed
tags: added: broadcast easy
Revision history for this message
Eitan Caspi (eitanc) wrote :

Hi Daniel,

Thanks for approving my use case.

I wrote in the past a basic WHOIS info gathering tool in python, but nothing with GUI.
I can give it a try if you wish and you can guide me.

Revision history for this message
Eitan Caspi (eitanc) wrote :

I guess this will be realized by adding to the "Live Broadcasting" table of connections, a new column, named something like "Connect at Mixxx startup", which will be a yes/no checkbox and will disabled at both the GUI (grayed out) and operational level if the connection is not in "Enabled"=yes mode, and when it will be enable and apply/saved - the new item will be activated and behave based on its current yes or no setting.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

No, we have only one global enable state. This means when we enable broadcasting on start, all enabled connections will connect.

I think it is better to add a checkbox below:
"Turn on Live Broadcasting when applying these settings"

This is defined here:
https://github.com/mixxxdj/mixxx/blob/1ca77e00a53bbd63e5bb899ac27b8897efa95200/src/preferences/dialog/dlgprefbroadcastdlg.ui#L124
And used here:
https://github.com/mixxxdj/mixxx/blob/1ca77e00a53bbd63e5bb899ac27b8897efa95200/src/preferences/dialog/dlgprefbroadcast.cpp

ui files can be edited with the QtDesigner.

But the first step is to build Mixxx from source.
https://github.com/mixxxdj/mixxx/wiki

Than you should read through this:
https://github.com/mixxxdj/mixxx/wiki/Bugfix%20Workflow

Revision history for this message
Eitan Caspi (eitanc) wrote :

I agree with one checkbox.

Well, entering C++ is too much for me now, but I will be glad to QA once the feature is completed.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Since this feature is a bit exotic, I am afraid no contributor will jump in and spend spare time for it. So if this is critical for you I think you need to adopt your Phyton knowledge to c++ which is not to hard.

Revision history for this message
Eitan Caspi (eitanc) wrote :

OK, I will look into it

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/10188

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.