All Projects → kulek1 → Geluid

kulek1 / Geluid

Licence: other
Made with Electron. Streams audio from your soundcard to a browser in an easy way

Programming Languages

javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
typescript
32286 projects
HTML
75241 projects

Projects that are alternatives of or similar to Geluid

Swell
Swell: API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, and gRPC.
Stars: ✭ 517 (+1682.76%)
Mutual labels:  streaming, websockets
audio-streaming
🎧 This repository is to do live audio streaming
Stars: ✭ 26 (-10.34%)
Mutual labels:  streaming, streaming-audio
Pushpin
Proxy server for adding push to your API
Stars: ✭ 3,050 (+10417.24%)
Mutual labels:  streaming, websockets
Spring Streaming
SPA on Spring Boot 1.x, WebSockets and React, gradle, nodejs, spring-boot, gradle multi project, spring-mvc, spring-data, gradle dependency update plugin, react-router
Stars: ✭ 6 (-79.31%)
Mutual labels:  streaming, websockets
Megalodon
Mastodon, Pleroma and Misskey API client library for node.js and browser
Stars: ✭ 52 (+79.31%)
Mutual labels:  streaming, websockets
Tributary
Streaming reactive and dataflow graphs in Python
Stars: ✭ 231 (+696.55%)
Mutual labels:  streaming, websockets
Raztot
A simple DIY, browser controlled, RPi + WebRTC video streaming rover
Stars: ✭ 67 (+131.03%)
Mutual labels:  streaming, websockets
live-cryptocurrency-streaming-flutter
A Flutter app with live cryptocurrency updates, powered by Ably
Stars: ✭ 26 (-10.34%)
Mutual labels:  streaming, websockets
play2-sockjs
A SockJS server implementation for Play Framework.
Stars: ✭ 60 (+106.9%)
Mutual labels:  websockets
django-rest-live
Subscribe to updates from Django REST Framework over Websockets.
Stars: ✭ 48 (+65.52%)
Mutual labels:  websockets
fs2-es
Event sourcing utilities for FS2
Stars: ✭ 75 (+158.62%)
Mutual labels:  streaming
nginx-obs-automatic-low-bitrate-switching
Simple app to automatically switch scenes in OBS based on the current bitrate fetched from the NGINX stats page.
Stars: ✭ 167 (+475.86%)
Mutual labels:  streaming
CSV2RDF
Streaming, transforming, SPARQL-based CSV to RDF converter. Apache license.
Stars: ✭ 48 (+65.52%)
Mutual labels:  streaming
streaming-pt
Live TV 📺 and Radio 📻 shell scripts from Portugal 🇵🇹.
Stars: ✭ 52 (+79.31%)
Mutual labels:  streaming
gow
GOW - stream games (and GUI) over Docker
Stars: ✭ 109 (+275.86%)
Mutual labels:  streaming
pulsar-adapters
Apache Pulsar Adapters
Stars: ✭ 18 (-37.93%)
Mutual labels:  streaming
penumbra
Encrypt/decrypt anything in the browser using streams on background threads.
Stars: ✭ 100 (+244.83%)
Mutual labels:  streaming
moestreamer
macOS menubar music player
Stars: ✭ 17 (-41.38%)
Mutual labels:  streaming
katcr
Search in multiple torrent sites from your CLI
Stars: ✭ 65 (+124.14%)
Mutual labels:  streaming
mojo.js
🦄 The Mojolicious real-time web framework for Node.js
Stars: ✭ 145 (+400%)
Mutual labels:  websockets

Geluid


Low latency streaming audio from soundcard directly to the browser.

Use on any desktop or mobile device.


Application based on Electron, React, React-Router, Webpack, Socket.io (WebSockets), PortAudio and Lame. It combines advantages of those packages to create a nice looking application.

Usage

⚠️ This application is still under development and it's not a stable version.

Developing

Build the client web app:

yarn build-client

Then build Electron app:

yarn dev

It will run Electron application and browser client (React) on two different ports.

Client: (http://localhost:9000)

How it works?

It creates two instances of applications - client & server. Server is based on Electron also with React and uses node module (C++) called naudiodon to stream raw audio from soundcard to Node.js app, encode it to mp3 format and then using Stream.io to the browser via WebSocket (Socket.io).

Client is based on React and it uses WebWorkers for buffering audio to get low latency sound. Despite complicated steps, latency of audio is at the level of ~1 second!

Windows users might have something like "Stereo mix" in an audio control panel which picks up exactly what you hear from your speakers. Unfortunately, that device isn't available in macOS out of the box. The solution is to install open source kernel extension called Soundflower

Features to do:

  • Code refactoring
    • add types
    • replace CSS Modules with Styled-components
    • reorganize app structure
    • use absolute imports
  • Add tests
  • Add stylelint
  • Add CircleCI
  • Add react-spring for animations
  • Improve stability
  • Make production build for Windows & Mac
  • Improve scalability
  • Update Babel 6 to 7
  • Replace Flow with Typescript
  • Add missing features...

Issues

  • You may encounter an error:
App threw an error during load
Error: The module '/Users/username/Geluid/node_modules/naudiodon/build/Release/naudiodon.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 59. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing

To resolve this, run in your terminal: $(npm bin)/electron-rebuild.

  • as this application uses MediaSource, iOS isn't supported yet. (Why Apple?)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].