Coder Social home page Coder Social logo

grey-software / toonin Goto Github PK

View Code? Open in Web Editor NEW
68.0 68.0 6.0 8.89 MB

Technology that allows you to tune in to your friends and family in realtime using peer-to-peer sharing.

Home Page: https://toonin.grey.software

License: MIT License

HTML 0.69% JavaScript 47.42% Shell 0.56% Vue 50.30% Dockerfile 0.23% Sass 0.79%
hacktoberfest quasar-framework vue webrtc

toonin's Introduction

home heroText heroImage tagline actionText actionLink features footer
true
org.grey.software
/logos/logo.png
Your guide to the Grey Software Org
See what's new โ†’
./this-week/
title details
Onboarding
New to Grey Software? Check out our onboarding materials!
title details
Resources
We R&D creative processes and tools for the open source community to succeed!
title details
Weekly Updates
As an organization, Grey Software aims to be as open as possible with transparent weekly updates!
Grey Software

Freedom and collaboration in software.

Grey Software is creating the open source ecosystem of the future where software maintainers mentor students and build free software together.

Read more about our vision here

Learn about our Apprentice Program here

toonin's People

Contributors

alir128 avatar dependabot[bot] avatar dlqqq avatar lakshya2610 avatar luu-alex avatar patrickmonteiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

toonin's Issues

Add debugging support for chrome extension

It is currently difficult to debug the extension because we only see the minified js. We could have an option to build dev and prod versions, with the former not being minified for debugging purposes.

Make the toonin box non-persistent

The toonin box currently persists on the DOM of the source stream tab. This is intrusive to the experience of someone using a service such as Youtube or Spotify.

Following chrome extension best practices, we should have our chrome extension's ui persist only as long as the user currently requires it to.

This would likely involve a re-design on the states that the chrome extension can be in as well so that the user sees the appropriate UI when they click the extension.

Add support for tuning in via the chrome extension

How do users toonin at the moment?

Toonin currently supports tuning in via the web app by having the user enter the room name they want to enter.

How would users toonin via the extension?

I envision the user being able to enter the room name into the popup box that appears when the chrome extension is clicked.

**Would this open a new tab to the toonin web app or tune in on the current tab. **

We could make this configurable in the future, but I would imagine opening a new tab is the feature we're looking for, since you wouldn't want your toonin session to be tied to another tab's lifecycle.

Write a one command setup script

Toonin's DX could be improved by writing a one command setup script.

Install all reqs
Set IPs in app and ext
Build ext and output folder path
Serve app and output url
Run server

WebRTC data channel audio streaming audio break-up

recieveChannel.onmessage = function(event) {
              
                  if(typeof(event.data) === "string") {
                      // recieve the offset from the src to compensate for extra data at the start of 
                      // every arraybuffer
                      firstBufferDur = Number(event.data);
                      console.log('offset: ' + firstBufferDur);
                  }
                  else {
                      audioContext.decodeAudioData(event.data, function(buffer) {
                          if(bufferQueue.length < 4) {
                              bufferQueue.unshift(buffer);
                          }
                          else {
                              bufferQueue.unshift(buffer);
                              nextBuffer = bufferQueue.pop();
                              soundSource = audioContext.createBufferSource();
                              soundSource.buffer = nextBuffer;


                              // here there is breakup because there is a gap between new buffer playing and old one ending


                              soundSource.start(audioContext.currentTime + prevBufferDur, firstBufferDur);
                              prevBufferDur = nextBuffer.duration;
                              soundSource.connect(soundDest); 
                              tabAudio.srcObject = soundDest.stream;
                              tabAudio.play();
                          }
                        
                        //visualizer();
                        
                    }, function(error) {
                        console.log('Audio Decoding failed. Error: ' + String(error));
                    });
                  }
              }

Setup continuous integration

We should look into setting up continuous integration for toonin. Students get Travis CI as a part of their student developer pack.

Tuning in via routes doesn't work on production

The web app currently does not tune in via routes such as /roomName

This is because the app is served statically.

We may have to investigate to see if wrapping our Vue web app with a SSR framework like Nuxt would solve this for us.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.