Giter Site home page Giter Site logo

hselasky / hpsjam Goto Github PK

View Code? Open in Web Editor NEW
37.0 37.0 5.0 3.96 MB

Online audio jamming software

License: BSD 2-Clause "Simplified" License

QMake 0.99% C++ 89.54% C 4.57% Objective-C++ 4.90%
audio freebsd linux low-latency-audio macosx midi music peer-to-peer windows

hpsjam's People

Contributors

hselasky avatar ifriendgit 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hpsjam's Issues

which ingress rules need to be set on the server, please?

I have an Oracle cloud server on Ubuntu. I need to set ingress rules to allow access to the server. I start the server with "HpsJam --server --port 22125 --peers 16" and I set ingress rules:
0.0.0.0/0 | TCP | All | 22125
0.0.0.0/0 | UDP | All | 22125

But the server seems to be not reachable (client cannot connect). Can you help please?

Also, is there a way to see the log of the server, or some verbose parameter?

Thank you in advance!

HpsJam now included in Jambox image for Raspberry Pi

@hselasky Hi Hans,
Thanks for your work! I've included HpsJam in the latest Jambox image for Raspberry Pi, which might help it get more exposure. Jambox is a pre-built SD-card image with multiple jamming apps. It turns a Raspberry Pi into a complete ready-to-go jamming platform. The apps are wrapped in startup scripts to make it really easy to run. HpsJam client or server can be launched from desktop icons. Check it out!

https://github.com/kdoren/jambox-pi-gen

A few minor issues:

  1. both client and server throw an error message at startup: "HpsJam: Cannot allocate UDP socket for payload: Address family not supported by protocol". The message seems harmless (could it be ipv6 related?). Client and server both seem to work OK.
  2. the --ncpu command line argument is allowed by both client and server. Is there any reason to use it for client? If I set --ncpu 4 on client, additional processes are started, but they aren't stopped - closing the GUI in that case does not exit the HpsJam command. Client seems to run OK with --ncpu 1.
  3. The HpsJam client appears to run some kind of default server that allows the client to connect to itself on 127.0,0,1:22124. The client process is listening to UDP port 22124 on 0.0.0.0, but does not respond to a connection attempt from another client, it only responds to itself on 127.0.0.1. The odd result is that, if you try to run client and server on same machine, it works as expected if server starts first (127.0.0.1 will connect to server that allows connections from other clients). But if client starts first, server start will throw the error"HpsJam: Cannot bind to IP port: Address already in use".

-Kevin

several general questions

Hello HP, I propose to use this topic to answer subsequent questions, so to not interleave them with other issues. What do you think?

Here comes the first two in any case:

  1. Inside "EQ DELAY": when I hit the button "Long Delay", an additional "norm" string appears like this
    filtersize 8.0ms 0.0ms
    norm

--> QUESTIONS:
a) what does "norm" mean?
b) why name the button "Long Delay"? E.g. why not just "Delay".
c) why is the delay value changed from 0.0 to 8.0ms (I was not connected and my device config, where I suspected it was taken from was at 16ms at that time))


  1. when I hit the "Defaults" button, the following appears:
    filtersize 0.0ms 2.0ms
    normalize
    20 1
    25 1
    31.5 1
    40 1
    50 1
    ... etc

--> QUESTIONS:
a) what do the values mean
b) why this sole 31.5 value amonst integers?
c) is the "normalize" value related to the previous "norm" from q001?
d) why does the "default" differ from the "default" that is shown in a "virgin" state? In particular the EQ size value, but also all the other ones.

stdlib.h: No such file or directory ?

Hi!

I'm using Ubuntu 18.04 on a machine that can compile Jamulus (I installed libfftw3-dev libqt5svg5-dev) and bbang! I got this:

In file included from /usr/include/c++/7/bits/stl_algo.h:59:0,
                 from /usr/include/c++/7/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:109,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:48,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:46,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QObject:1,
                 from src/protocol.h:29,
                 from src/audiobuffer.h:33,
                 from src/audiobuffer.cpp:26:
/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.
Makefile:575: recipe for target 'audiobuffer.o' failed
make: *** [audiobuffer.o] Error 1

I got the file though I think:

gilgongo@monospline:~/hpsjam$ locate stdlib.h
/snap/gimp/297/usr/include/stdlib.h
/snap/gimp/297/usr/include/c++/7/stdlib.h
/snap/gimp/297/usr/include/c++/7/tr1/stdlib.h
/snap/gimp/297/usr/include/x86_64-linux-gnu/bits/stdlib.h
/snap/gimp/322/usr/include/stdlib.h
/snap/gimp/322/usr/include/c++/7/stdlib.h
/snap/gimp/322/usr/include/c++/7/tr1/stdlib.h
/snap/gimp/322/usr/include/x86_64-linux-gnu/bits/stdlib.h
/snap/gnome-3-34-1804/36/usr/include/stdlib.h
/snap/gnome-3-34-1804/36/usr/include/c++/6/stdlib.h
/snap/gnome-3-34-1804/36/usr/include/c++/6/tr1/stdlib.h
/snap/gnome-3-34-1804/36/usr/include/freetype2/freetype/config/ftstdlib.h
/snap/gnome-3-34-1804/36/usr/include/x86_64-linux-gnu/bits/stdlib.h
/usr/include/stdlib.h
/usr/include/c++/7/stdlib.h
/usr/include/c++/7/tr1/stdlib.h
/usr/include/freetype2/freetype/config/ftstdlib.h
/usr/include/x86_64-linux-gnu/bits/stdlib.h

changes to the ""EQ DELAY"

I propose the following changes to the ""EQ DELAY":

  1. rename the button to "EFFECTS"
  2. change text from "filtersize 0.0ms 0.0ms" to:
    delay: 0.0 ms
    EQ size: 0.0 ms

requesting kind assitance with a compile err

Hello HPS!
I'm trying to install the fine HPS prog on a new ubuntu 20.04 server and get this as err. I know it looks like a "generic" issue, but even after researching for a long time I was unable to find a solution, so maybe you know smth abt it?
The stdlib.h is definitely present at /usr/include...

Do you have any idea, please?

Thanks again for your fine program!

------------ THE ERROR ------------
make all
g++ -c -pipe -O2 -D_REENTRANT -Wall -W -fPIC -DHAVE_HTTPD -DHAVE_JACK_AUDIO -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtSvg -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o audiobuffer.o src/audiobuffer.cpp
In file included from /usr/include/c++/9/bits/stl_algo.h:59,
from /usr/include/c++/9/algorithm:62,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:142,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qnamespace.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs.h:48,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/QObject:1,
from src/protocol.h:29,
from src/audiobuffer.h:33,
from src/audiobuffer.cpp:26:
/usr/include/c++/9/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
75 | #include_next <stdlib.h>
| ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:568: audiobuffer.o] Error 1

Experience so far

Just wanted to leave you a comment saying I tried out your latest version (1.06). I do like the crystal clear sound which makes my fiddle sound so much better than with the compressed audio of Jamulus. I did have to set the buffer size to 256 (instead of a preferred 64) , otherwise I get way too may xruns. With the higher buffer size, I don't get many (if any) xruns, but do get occasional glitches which I presume are from dropped/delayed packets, which do get annoying. Not sure why this is occurring since I'm running the client and server on the same machine. I tried this on a Raspberry Pi 400 (the brand new, just out, combined keyboard/Pi unit -- nice!) which runs cool at 2.1 Ghz, unlike the earlier Pi 4 which tends to run quite hot when running audio software. I haven't tested any other configurations yet.

Here are the jack parameters I'm using: jackd -T -P95 -p16 -t2000 -d alsa -dhw:2 -p 128 -n 2 -r 48000 -s

It would appear that using a .jackdrc file doesn't work with your software, for whatever reason, so I just started Jack up manually.

I tried both 24 bit and 32 bit audio and it would seem the 32 bit audio takes less processing (as I would suspect anyway). I have a Behringer UMC404HD which is a 192kHz/24 bit device.

I see you have a long ways to go on the graphics! :) I don't really understand mixer page or stats page at all.

Anyway, a nice start. I do like the simplified processing chain.

Windows binary: Cannot connect to ASIO subsystem

Hello HP!
thank you for the windows binary!
I tested it and it says: "Cannot connect to ASIO subsystem or sample rate is different from 48000 Hz or buffer size is different from 96 samples."

Actually, I cannto set my soundcard to 96, only 64 or 128, so I guess im lost here...?

Starting the server on Ubuntu 20.04 results in "Cannot bind to IP port: Address already in use"

Hi,

I created a dockerized version of your project for deployment to Amazon AWS. Unfortunately, I cannot get the server to run. I followed the exact instructions in the README and the port is definitively not in use (in fact, changing the port number to a random value always yields the same result), so I suspect that the implementation is broken in some way.

As the error message is wrong (port is free, verified by netstat) I cannot see any way to resolve this issue myself. Could you consider reviewing your code and maybe improving the error handling at this point to further track down the root cause?

You can find the docker image repository here and a deployed version in the linked DockerHub (See README).

https://github.com/oxytu/hpsjam-docker

Best Regards

server "starts" but does not show in top (Linux)

Hello HP!

I'm giving this system another try, but could not manage to find a solution for the following:

  • Start the server: "HpsJam --server --port 22125 --peers 16"
  • Start top (linux)
    -> I see no HpsJam task in the top list of tasks. The client cannot connect to the server (of course, because it seems to not be running)

2 q please:
(1) Do you know what could be wrong here?
(2) How can I see the server output (some verbose stuff or logging or so)

Thank you in advance!

feature request: save value for "filtersize x.xms"

Hello HP!
A main use case for me is to use HpsJam using the same server over and over again, where the "artificial delay" would always be the same/very similar. Would be good if it could save the value per server, but at least as global.

Btw, a q: what is the second numerical value here doing "filtersize 0.0ms 0.0ms"?

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.