The replacement for YOUTUBE needs no new hardware and uses Peer-to-Peer broadcasting and lets anybody be a broadcasting network. Comcast cries!

The replacement for YOUTUBE needs no new hardware and uses Peer-to-Peer broadcasting and lets anybody be a broadcasting network. Comcast cries!

 

 

 

 

 

 

[–]Lifeconfused[S] 153 points  

Conference paper can be read here: https://wisurr.azurewebsites.net/ACSW-2017-Ad-hoc-Broadcasting.pdf

Some use cases this application supports:

  • Host a party and let everyone use their phones to playback the music, for on the fly music jamming throughout the venue.

  • A public address system (PA) that can be utilised for broadcasting important announcements in large-scale operations such as those in airports, hospitals and factories. Such an application would be especially helpful for those who are hard of hearing.

  • An ad hoc broadcasting system employed by Civil Defence to aid in disaster relief efforts through the dissemination of important announcements related to emergency services.

  • A scalable lecturing system able to be used both within a colocated or distributed setting to allow listeners to hear the presenter even at a distance, or for those who are hard of hearing as in the first application.

  • An ad hoc sound system for consuming audio in an immersive surround-sound environment through mobile devices.

  • Use as a non-disruptive personal audio receiver that allows the user to listen to broadcasted audio (for example with headphones) without being restricted by cabling length or other physical barriers.

[–]curiousmadscientist 29 points  

Congratulations on your thesis!

I’ve tried to get it to work, but how exactly do I configure it to Broadcast? Or is it broadcasting System sound, and so I just have to play music? Trying as ByZero for now.

 

[–]Lifeconfused[S] 35 points  

The UI is not very intuitive (will improve it soon!).

You can either select a file to play, in the multimedia playback mode; or you can use your device mic or stereo mix (sound card audio, ie. whatever audio is playing on your computer) on the other modes.

There is a little help button at the top, and it tries to explain this, but it’s very possible I wrote it badly.

To enable StereoMix on your device follow these steps:

  • (1) enable StereoMix

  • (2) Set the recording device on your browser to StereoMix. To do this a Video Camera icon will appear once a broadcast starts, press the recording icon (usually top right corner of your browser) and set microphone to StereoMix.

Hope this helps! Suggestions are always welcome.

Also thank you re thesis! (:

[–]ryshnz 2 points  

There are a number of ways, with performance mode you can use any recording device on your device, such as a microphone or stereo mix (what you hear is what you get) to stream. Multimedia playback mode allows you to load in a media file to stream. Hope that helps 🙂

[–]youtubefactsbot 1 point  

FRONT 242 – W.Y.H.I.W.Y.G. [7:29]

Rod241 in Music

7,330viewssinceJan2014

bot info

[–]leadwind 3 points  

Use as a non-disruptive personal audio receiver that allows the user to listen to broadcasted audio (for example with headphones) without being restricted by cabling length or other physical barriers.

Cool. I was using TeamSpeak (edit: on my Android phone) to do that (instead of a pair of Bluetooth headphones), but kept having to adjust the audio offset (in Kodi) to account for the latency.

[–]midipoet 2 points  

Can you let me know what the browser restrictions are at the moment?

I assume it needs WebRTC support – but is this supported by all browsers at the moment?

I contribute to the Locus Sonus live microphone project – which runs through a Sound Map accessed on the browser. The streams are mostly implemented through Raspberry Pi systems – i wonder if this site could come in handy with the streaming side?

also is there a way to contact your server and access the streams outside of the website?

where could i find the dynamic database of streams/server?

also what is the compression technique used – and is this configurable?

[–]Lifeconfused[S] 2 points  

So the browser must support webRTC. At the moment that means no Safari or iOS (Chrome on iOS doesn’t support safari either unfortunately).

Locus Sonus sounds really interesting!

Having an API to retrieve the server list etc is a really great idea. We never really got to it, mainly because it was not part of the thesis scope. Once this is open sourced in the near future, we could definitely add these features. I’m super excited to see where this little application goes.

At the moment it uses the Opus streaming codec, which streams at 128 bit rate. This is configurable (but there is no UI for it at the moment). Opus utilizes adaptive bitrates, so the aforementioned 128 is the target streaming quality, but this is reduced automatically if the listener or broadcaster has low bandwidth.

[+][deleted]  (1 child)

[–]Lonely_Kobold 1 point  

Could this also work for drive-in movies so you don’t have to drain your car battery?

[+]PermThrow00001 comment score below threshold  (0 children)

[–]SquidGiant 32 points  

This is pretty cool. Are you planning on keeping this site running?

[–]Lifeconfused[S] 42 points  

Yes sir! Constantly improving it (:

Will open source right after I graduate in around 4 weeks.

[–]CrystalFlame 12 points  

Mind sharing how you made the spectrum visualizer? I’ve been trying to code a quick enough version to run on a raspberry pi but most of the implementations I’ve tried are very slow or don’t look good.

[–]Lifeconfused[S] 5 points  

Hey mate! We used the standard Audio apis to get the frequency levels (using AudioContext interface) and then we piped them to a bar graph generated by the D3 data library.

I hope that gives you some direction. Once this is open sourced, you’re welcome to take what you like (:

[–]korainato 1 point  

Aren’t the servers really expensive?

[–]Lifeconfused[S] 3 points  

They are! At the moment we have an education package on Azure which is not optimal (notice the few crashes we’ve had since reddit started giving us love), but it does the job (and it’s free). This package is valid for another year. Maybe once we graduate (in a couple of weeks) and this is open sourced, we will find a more ideal solution.

[–]Lifeconfused[S] 22 points  

(A webRTC application), iOS/Safari not supported as they don’t support webRTC.

[–]ryshnz 4 points  

iOS will probably support WebRTC some point in the future, in which case we won’t have to do anything extra to make it work with WiSurr. Oh how I wish Apple would embrace new technologies :/

[–]Stryker295 1 point  

iOS/Safari

I tried FireFox on iOS awhile back to see if audio would play in-browser and it doesn’t seem to, but that was for a different application. Would WiSurr work on FF on iOS? Or is it the same thing preventing the audio?

[–]ryshnz 1 point  

Any web browser on iOS will not work, as these do not support webRTC (iOS Chrome, Firefox etc).

[–]Stryker295 1 point  

Makes sense. I’m not familiar with what webRTC is for, aside from its security flaws, so I can understand it not being supported yet.

[–]Lifeconfused[S] 19 points  

Hey guys, we really appreciate the love! Here is the abstract from the conference paper (just so I don’t have to repeat myself haha):

In this paper, we introduce an ad-hoc broadcasting service. The service facilitates real-time distribution and playback of audio content among multiple mobile devices. In designing the service, four distinct challenges have been addressed:

  • the need for adhoc setup and operation;

  • the need to stream audio of sufficient quality, at low communication latency and with synchronised playback

  • the need to scale to accommodate increasing numbers of users

  • the need for the service to be ubiquitous, being able to function on diverse network topologies and without reliance on proprietary technology.

Depending on its operating context, the service works to promote scalability of many remote listeners, ensure synchronized playback of colocated listeners, and provide immersive surround-sound playback to co-located users when required. For ubiquity, standard and readily accessible technologies are used to implement the service and to enable communication over diverse networks. Based on quantitative evaluation, the service has been found to meet its performance requirements. For small groups of co-located listeners, latency between the broadcaster and listeners falls under the threshold that can be perceived by humans, and playback appears synchronised. For groups of remote listeners, the architecture introduces little latency, but individual groups continue to enjoy synchronised playback. The service maintains sufficiently high quality audio in all cases, as dictated by its operating context.

[–]qotob 5 points  

the need to scale to accommodate increasing numbers of users

This is when I realised how this would help at parties.

[–]ryshnz 8 points  

Exactly 🙂 We found that audio quality deteriorates above around 10 connections for performance mode, but in scalability mode, the audio quality is maintained for up to 100 connections (probably more but that was the limit of our evaluation).

[–]whatever303 2 points  

I seem to understand that point of the audio stream is one-> many with low latency.

Do you share wifi slots or did you keep the point to point standard protocol?

What are advantages and disadvantages of this system respective to DAB+?

How do you “keep it on the clock?”

Thank you

[–]JoseCansecoMilkshake 2 points  

There is a market for this in listening to the radio broadcast while attending baseball games.

[–]oneonetwooneonetwo 1 point  

What do you mean by “with no hardware requirements”?

[–]ryshnz 2 points  

We simply mean no specialised hardware like speakers, amplifiers, microphones, power supplies etc. used in traditional public address systems/home theatre systems/lecturing systems. All you need are smart devices, which many people have.

[–]HwrdStrk 9 points  

Cool! I read through the paper, and to clarify: The broadcaster, potentially a phone, sends its WebRTC details to the signalling server, which then forwards the details on to any listeners so they can establish a direct socket with the broadcaster? Pretty cool. Cant wait to take a peek at the src when you publish it!

[–]Lifeconfused[S] 7 points  

That’s correct!

As soon as I graduate it’ll be open source. I just want to avoid any potential IP issues with the university.

[–]uhnuhnuhnnn 13 points  

Dude. Wrap this thing in an app and make serious money. I’ve been looking for something like this for ages, seamlessly streaming audio from phone to laptop (or between any other devices) at the click of a button.

[–]probably-poop 3 points  

Please open source this. I want to hack on this so bad.

[–]PM_ME_UR_STASH 1 point  

So if you want to broadcast a lot of devices, you can use this as the underlying architecture but you need your own distribution servers?

[–]joeymonreddit 18 points  

This sounds awesome, but… ELI5 please lol

[–]Lifeconfused[S] 36 points  

So this app basically allows you to stream audio from your computer/phone without requiring anything but your browser.

  • The app streams audio at really low latencies, which means that if you have several devices connected up to it, all devices sound in sync. Great for music!

  • You can also select an HD video file and split it’s channels into individual broadcasts. This allows you to connect several of your devices to make a surround sound environment on the fly. Where each device join the specific broadcast that is associated with it’s location. For example you can have two phones in front to be your front left and right speakers and your laptop and other phone behind to be your back surround speakers etc.

  • Finally the app allows you to create a scalable broadcast, where the people listening also relay the audio you are streaming (think peer to peer). This means you can broadcast audio to thousands of people straight from your smartphone because the load of streaming is distributed between the listeners.

[–]radjic 12 points  

bravo, this app is friggin fantastic and worked flawlessly right away. I’m very impressed. I had an idea similar to this a few years ago, but I don’t think I could’ve implemented it as well as you did. Great job! Please add a chat feature!!

[–]mamborambo 4 points  

Replying to keep track of this. I am a DJ and one of the problem we had to solve is to create a team process where one DJ can hand off to another remotely. Am I right to say that this project could potentially be used to do something similar?

[–]kga459 7 points  

This is very cool, congrats

[–]Lifeconfused[S] 6 points  

I’ll message everyone here in a couple of weeks when it’s open sourced! Cheers mate, I really look forward to other people’s contributions!

[–]DanielleMuscato 4 points  

I’d like a message too.

I can imagine this being very useful for simultaneous translation at lectures and conferences. I attend a lot of conferences and sometimes the speaker doesn’t speak the same language as the audience. If we could have someone translating into a mic that’s broadcasting, and then if anyone in the audience needs the translation, they could just wear earbuds and use their own phone, that would be incredible.

[–]lolcatshepherd 1 point  

Congratulations on graduating! I would like very much to be reminded when you make this open source.

[–]SquidGiant 5 points  

Do you think it’d make sense to put in a chat? I’ve been using the “Device Name” field as in improvised chat, which is kinda funny. I think it’d be cool if maybe there were a chatroom for the whole broadcast? idk

[–]radjic 9 points  

WHO HAS THE BROADCAST NAMED: Muuusssicc

PLEASE GIVE ME YOUR TRACKLIST I COULDN’T SHAZAM THEM

edit: here it is for anyone wondering https://www.youtube.com/watch?v=KAWLbDvedYQ

me and the broadcaster basically were chatting by typing in the “Device Name” field lol it was pretty funny.

[–]ryshnz 10 points  

It’s great to see all the creative uses we are seeing for WiSurr. OP and I didn’t anticipate it being used in that way, but that’s a great workaround! We will definitely implement chat, as that seems a popular demand atm. 😀

[–]ryshnz 5 points  

This project we developed is also the first of its kind to use smart devices in this manner to create discrete surround sound (up to 5.1 channels). You can load in surround sound media files and a broadcast can be created for each specific channel.

[–]jorions 6 points  

I was looking for a program exactly like this a few months back when I was hosting a silent disco – it would have been perfect!

Oh well. I’ll definitely be using this in the future.

Thanks for making such a cool site!

[–]ryshnz 2 points  

Cheers dude! I’m glad so many people are finding innovative potential ways to use the app. The whole point of the application was its flexibility to accommodate whatever use-case the user chooses 🙂

[–]PlNG 6 points  

Have you considered deploying for the next olympics? There was a lot of disappointment with the broadcast this year that I think it would be an easy black eye for NBC if someone were to provide a stream to both the internet and public access television.

It would be super sick if we could somehow get everyone filming the skier zooming past them and stitch it into a rolling camera.

P2PTV.

[–]uhnuhnuhnnn 2 points  

Why not Periscope? There wouldn’t be a need for P2P in this case.

[–]nonprehension 3 points  

Very cool. If you ever need any help with the UI or anything, hit me up

[–]Xanza 3 points  

As far as I can tell the interface leaves much to be desired–but after a minute or two I got the hang of it. The idea is sound and really fuckin’ cool.

Great work.

[–]ryshnz 1 point  

Thanks for that, yes I agree that the UI can be improved substantially, however our main focus of the project was developing the fundamentals. But now we have the foundational architecture, we should be able to tweak the UI and add better features etc 🙂

[–]TechnologyEvangelist 5 points  

Middle out compression!

[–]JDawgSabronas 3 points  

Always blue!

[–]hkrob 3 points  

Should’ve made a box

[–]RaphaelLorenzo 3 points  

Have you ever heard of AmpMe?

[–]Lifeconfused[S] 13 points  

I have, it’s a little different as it’s not really real time streaming, how AmpMe works is it buffers the audio on each device and then tries to sync them up through some fancy audio analysis.

The inherent low latency of this solution means that there is no explicit syncing. (it also means that on a bad network topology you could get desynchronization). However there are a bunch of cool adaptive bitrate algorithms that try to mitigate desync issues.

Also ampMe requires an app, we wanted our little solution to be super ad hoc and ubiquitous, so we made it a web app instead (: no downloads required to listen to a broadcast.

[–]evileyeball 5 points  

So does this mean i can play audio from vinyl on my turntable capture it with my PC and re broadcast to my phone that is on the same network

[–]SquidGiant 2 points  

It’s over the internet I think

[–]Lifeconfused[S] 6 points  

Until it’s open sourced (so it can be deployed on a local lan) you will need the internet to create the stream between devices. But once a stream is up, devices are connected and the devices are on the same lan, the audio will stream through the local lan (and not routed through the interwebs); which leads to very low latency audio. Infact if you are streaming between connected devices, you can disconnect from the internet and the stream will continue to work.

In the future we will add password protected broadcasts etc

[–]lozaning 2 points  

IDK how what level of networking shenanigans your app will put up with, but he could install zero tier https://www.zerotier.com/ on his phone and pc and they’d be on the same “local network”.

[–]Lifeconfused[S] 4 points  

Azure is struggling with the insane increase in load! (Using the education package so it’s a little limited).

Thank you for the hug of death reddit. The Azure instance should scale up slowly.

[–]vivsriaus 1 point  

Just curious – what made you consider Azure, instead of other clouds?

[–]ryshnz 2 points  

we had free credit

[–]temporarycreature 5 points  

Does your paper cover the legal implications with the RIAA gettings its panties in a twist over broadcasting music their represent?

[–]__SPIDERMAN___ 2 points  

Wemesh

[–]Lifeconfused[S] 18 points  

Wemesh is awesome, it’s its own beast in itself; again a little different to this app as it requires dedicated apps, it’s less about real time and more about syncing and not available on desktops etc.

Alos WeMesh requires a Facebook account to sign in. Lame 😛

[–]JohnConquest 2 points  

I put on music and nobody stays, I put on voice over lines from the Larry King Bingo app, everyone stays. Figures.

[–]slalyer01 2 points  

On a local network, you can disconnect from the Larry King Bingo app, everyone stays.

[–]prodigal_d 2 points  

I’ll message everyone here in a crew while all listening to the project if/when you open source it!

[–]holyhellitsmatt 2 points  

You said you’re updating UI, I’d suggest adding a basic chat feature. I don’t know anything about web or app design so I don’t know how hard that is, so maybe it’s an unreasonable suggestion. But it would be really cool if someone could stream music or live audio and be able to talk about it simultaneously without interrupting the audio.

[–]Superchaschper 2 points  

I really like how easy it is to configure but it seems s like there is some server instability which causes broadcasts to disrupt.

It would be nice if there was a chat option.

Edit: It sometimes seems to restart the broadcast and then says that the broadcast id already exists.

[–]LrodKair0s 2 points  

In your about page, is Auckland meant to be spelt without the k?

[–]ryshnz 1 point  

no, good spotting

[–]tulenbismarc 2 points  

There was a chat feature!! Thanks for making such a cool site!

[–]ryshnz 1 point  

haha you must mean the device name ‘chat’

[–]Futtermax 2 points  

I had this idea six years ago but I’m not a programmer. Good for you. I was going to call it MuSh, short for MusicShare.

[–]im_from_detroit 2 points  

You are a gentleman and a scholar, my friend.

[–]Crazycrossing 2 points  

Of course the first server I find is someone Rick Rolling me.

[–]TealOcelot 1 point  

Does this do video broadcasts too (like from my webcam), or only audio?

[–]Lifeconfused[S] 1 point  

Only audio right now. The architecture is there, so video support can be added relatively easily in the future.

[–]080393 2 points  

Please, please do that. Or better, SyncPlay, but just from the browser. You would be my king.

If you do open-source it, and you don’t want to bother building it, I will do anyway =)

[–]Lifeconfused[S] 1 point  

Amazing! I can’t wait till we can open source it and people like yourself will help build something really great!

[–]Bri_10222 1 point  

I think it’d make sense to put in a crew while all listening to the same network.

[–]Technoguy_at_1200bps 1 point  

Do you have any insight on how to get this working on Linux with Pulseaudio? My various attempts, including using a direct audio patch cable have so far failed.

[–]-victorisawesome- 1 point  

Is there a way to add a back button from the broadcast screen?

[–]ryshnz 1 point  

initially we did have one, but there were issues, we may add it again future releases

[–]ryshnz 1 point  

us trying to figure out syncing back in the day… https://redd.it/4qv32v

[–]ryshnz 1 point  

For anyone who has a couple of devices lying around and wants to test our 5.1 surround sound, download this: https://www2.iis.fraunhofer.de/AAC/ChID-BLITS-EBU.mp4 and put it into multimedia mode and select “one broadcast per channel”

[–]davew_uk 1 point  

I always wanted something like this for a DJ application – One stereo stream for the “audience” feed, and another for a private “headphone” feed. Then the user can cue up tracks privately just like you would on a real DJ mixer.

Throw in a bit of audience participation – vote for upcoming tracks and the people who suggest the highest voted tracks get to take over as the DJ etc. and you could have a lot of fun. There’d need to be a “master” device though that is hooked up to some big speakers that would act like a server everyone could log into.

I’ve had this idea for years but never wrote a line of code for it. How to handle latency compensation seemed to be a major sticking point. I’ll definitely check out your paper when I get a minute.

[–]AsliReddington 1 point  

I was about to make n android app for the same.

[–]KuromanKuro 1 point  

Make this an app with a browser version that works after app purchase or account upgrade. This can make money. Sell this to stereo manufacturers.

[–]MeowMeTiger 1 point  

Did anyone hear my 1 minute morning talk show?

What is this coded in? How did you make it?

[–]fraser2142 1 point  

Please get this into the hands of the Rugby stadiums as quickly as possible.

[–]aesgan 1 point  

This is awesome! great potential! If only you could sell it to hooli….

[–]Weeping_Tippler 1 point  

Awesome! May I suggest that you Pump up the Volume.

[–]EntreFoxarwin 1 point  

I’m pretty sure I’ve had an app like this, nice job making it browser based.

[–]DrDeb_ 1 point  

I use firefox and I am offended

[–]Santurar 1 point  

I had an idea similar to this app utilizes webRTC technology which has known security flaws.

[–]CarlthePole 1 point  

I’ve not given it a go, but it sounds very impressive.

[–]Neotrik 1 point  

I have found a new way of mass rick rolling!

[–]Vogeltanz 1 point  

Very interesting. Is the app workable without cellular or Internet connectivity? If so, how?

[–]rrsafety 1 point  

I still have no idea what it does. Ha!

[–]chump1039 1 point  

This sounds like technology Tom and Gary might be interested in. http://www.decentralizeddanceparty.com/social-stereo/

[–]tyronea300 1 point  

What is this DMX mixed with Circus music? XD

[–]polara413 1 point  

SnapCast already does some of the things you suggest, is open source, and has already been ported to Android. I’m not sure it’s as scale able as your solution though.

I’m using it on Raspberry Pi’s with USB sound cards for distributed whole house audio.

https://github.com/badaix/snapcast

[–]Lifeconfused[S] 9 points  

That’s cool, I haven’t come across SnapCast before.

Again a little different to our little app, our application was created to be be ad hoc, ubiquitous and scalable; which means little to no setup is required to start and consume a broadcast on any device. Because our app is so lightweight (and browser based) the audio streaming is also not as high quality as this SnapCast app.

Really neat client-server though, I’ll make sure to check out snapcast in more detail.

[–]jcc10 1 point  

You may want to post this to r/DarknetPlan

[–]NoBerryForYou 3 points  

Um no, this app utilizes webRTC technology which has known security flaws.

[–]Sciguystfm 1 point  

Motherfucker. Ive had this idea for ages and never got around to acting on it

[–]zz_z 0 points  

What is low latency? 1ms?

[–]Lifeconfused[S] 5 points  

On a local network, you can get sub 20ms streaming. This means no audio visual desynchronisation (if you are playing a video on the broadcaster and using several other devices as surround sound speakers). It also means no audible desynchronisation between devices.

Some fun facts: audio visual desynchronization is referred to as the precedence effect and it’s precieved when there is a delay between video and audio of around 185ms.

For desynchronisation between audio nodes, you need less than 100ms of delay for music and sub 50ms for voice to ensure no audible sync issues.

[–]ryshnz 1 point  

No not 1ms, the latency is less than that of the human hearing detectability threshold for humans (around 30-60ms most of the time).

[–]zz_z 1 point  

Where do you get these figures from? When I do time alignment for concert sound I can hear very clearly 10ms. I think most people can tell the difference as well, but would not be able to articulate what the issue is.

[–]The_Amp_Walrus 2 points  

Really? That’s like ~3m difference between two sound sources.

[–]BoredOfCanada 1 point  

I imagine you’re listening for phasing too though. In my experience, even the slightest shift becomes really ap.

[–]adergaard 0 points  

Used Periscope much?

[–]Link_522 0 points  

Based on quantitative evaluation, the service to be be ad hoc, ubiquitous and scalable; which means that there is a little help button at the src when you publish it!

 

<

p style=”margin-bottom:0;line-height:100%;”> 

 

Leave a News Story:

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s