martim01 / pam Goto Github PK
View Code? Open in Web Editor NEWAudio Monitoring Software designed to run on a Raspberry pi with touchscreen
License: GNU General Public License v3.0
Audio Monitoring Software designed to run on a Raspberry pi with touchscreen
License: GNU General Public License v3.0
The user interface provides access to operational and configuration elements. Some user workflows require access to both. This can be confusing for operators. It would be good to have simplified user interface option and / or hide all configuration behind one button.
Most significantly, the selection of sources, particularly AoIP streams should be available to the operator more easily. It shouldn't necessarily be part of the configuration settings and should be part of the user workflow. Maybe configuration settings could allow each source to be enabled and then a separate user workflow based selection of input be provided.
The current workflow to select AoIP source is:
This is a lot of touches (4) to swap between sources. The user must switch context between view selection and settings adjustment which isn't intuitive.
../src/gtk/pen.cpp(234): assert "IsOk()" failed in GetColour(): invalid pen
../src/gtk/brush.cpp(113): assert "IsOk()" failed in GetColour(): invalid brush
../src/gtk/colour.cpp(241): assert "IsOk()" failed in GetColor(): invalid colour
I'll try to build pam from source on pi3(raspbian) and linuxmint19 (ubuntu based) and in these two case i've got this error:
[ 91%] Linking CXX executable ../../bin/pam2
CMakeFiles/pam2.dir/pnlNetworkSetup.cpp.o : Dans la fonction « pnlNetworkSetup::ShowConnectionDetails() » :
pnlNetworkSetup.cpp:(.text+0x226) : référence indéfinie vers « NetworkControl::CheckConnection(wxString const&) »
CMakeFiles/pam2.dir/pnlNetworkSetup.cpp.o : Dans la fonction « pnlNetworkSetup::OnlstInterfacesSelected(wxCommandEvent&) » :
pnlNetworkSetup.cpp:(.text+0x89b) : référence indéfinie vers « NetworkControl::CheckConnection(wxString const&) »
collect2: error: ld returned 1 exit status
pam2/CMakeFiles/pam2.dir/build.make:913: recipe for target '../bin/pam2' failed
make[2]: *** [../bin/pam2] Error 1
CMakeFiles/Makefile2:1666: recipe for target 'pam2/CMakeFiles/pam2.dir/all' failed
make[1]: *** [pam2/CMakeFiles/pam2.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
Hello Martin,
What's the password for pam user in prebuilt image.
I'm looking for edit /boot/config.txt file...
Further navigation will show the list has actually cleared.
In your readme.md file you have the line Create a file called pam2.config in directory /etc/ld.so.conf.d
For me this did not work, the pam2.config
file should be named pam2.conf
. Otherwise the library files will not be found.
Dear,
Don't know if in your roadmap the WebRTC will be implemented.
Best Regards,
Youssef
The "Offset: Average" value shown in PTP screen has such high value and resolution that it does not fit the display. The most significant digits (most important) are truncated.
Hi,
the documentation pam.html says that there is an image file with preinstalled pam available, but I'm unable to find a link. Where can I download this image?
Thanks a lot,
Dennis
I have selected the help option but the top of the screen has a black bar with red writing, "No AES Detected" and a blue "Reset" button.
Selecting Output Source as "Input" and selecting an input does produce audio at analogue output.
The log has an entry: "Opene Audio Device: Soundcard". I believe this is a typo and should say, "Open Audio Device: Soundcard".
Building using Cmake on Raspbian throws an error:
pam/external/ptpmonkey/include/ptpstructs.h:7:10: fatal error: winsock2.h: No such file or directory
#include "winsock2.h"
I have tried running cmake twice. Commands used:
cmake .. -DoptionPTP=ON
cmake --build .
Move main pam2 src to separate folder
Move the external files to the external folder
Enabling builtin analogue audio (dtparam=audio=on in /boot/config.txt) results in low level audio at analogue output. This can be corrected with ALSA mixer.
Need to add build instructions
Hi Matthew,
I've been trying to add your software to the EBU's awesome broadcasting list, because well it's awesome, however they'd like it to have a defined open source licence ( ebu/awesome-broadcasting#135 ). Would you be able to choose one please and add it to your repository. There's some info and guidance here:
https://help.github.com/en/articles/licensing-a-repository
Thanks
Some GUI activity mutes the output, e.g. go to Help and scroll the list of topics whilst listening to a stereo input via builtin analogue output. It may be that the long press to activate drag may be upsetting the audio thread??? Next drag seems to clear the mute state. During mute the "No AES Detected" message shows. It may also self clear (unmute) after a few seconds.
Select 8 channel AoIP source.
Select a different source.
PAM crashes.
Any further attempt to select another source will crash PAM, even after restart. Deleting the currently selected 8 channel source and selecting another source initially crashes the PAM but subsequent attempt succeeds.
AoIP discovery also sometimes leads to crash which may be related.
There is a blue "Reset" button that is often at the top right-centre of the screen but inexplicably occasionally at the bottom of the screen. The button obscures some content, e.g. Lissajou screen has some text that seems to sit below the button ("Auto ...x inf"). Maybe this is because there is no AES input. Note that even when Audio Monitoring Source is Disabled, this message appears on screen.
Hi,
I have just been taking a look at PAM and thought I would try cloning the git repository.
It had a problem checking out because by default Mac have case-insensitive filesystem and cannot have both a file called Pam.html
and pam.html
in the same directory.
Would this be an easy thing to change?
Thanks,
nick.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'documents/help/Pam.html'
'documents/help/pam.html'
I have followed the cmake build instructions from README but when I run the resulting compiled binary I see errors and it does not get beyond a splash screen.
Extract from output:
...
GetInputDevice: Done
PTPMonkey listening on interface eth0 for domain 0
Executable Path = /root/pam/bin
Core Lib Path = /usr/local/lib/pam2
Plugin Monitor Path = /usr/local/lib/pam2/monitor
Plugin Test Path = /usr/local/lib/pam2/test
Documents Path = /root/pam
Logs Path = /root/pam/logs
Wav Files Path = /root/pam/wav
Temp Path = /tmp
Monitor Lib Directory: /usr/local/lib/pam2/monitor
Lib : spectogram
Lib : aoipinfo
Lib : radar
Lib : peakcount
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/libpeakcount.so
Lib : r128
Lib : LTCGenerator
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/libLTCGenerator.so
Lib : anglemeters
Lib : polarscope
Lib : waveform
Lib : meters
Lib : LTC
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/libLTC.so
Lib : peaklog
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/libpeaklog.so
Lib : fft
Lib : scope
Lib : identify
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/libidentify.so
Lib : lissajou
Lib : record
Could not find correct symbols in lib /usr/local/lib/pam2/monitor/librecord.so
Output source is input
Create Audio Destination Device: Soundcard
Open Audio Device: Soundcard
Pi build currently does not support duplex streams
Open Audio Device: Soundcard
Pi build currently does not support duplex streams
Session Changed: 1
This is preceded by alsa messages which I don't think are relevant to this issue and will be reported separately if necessary.
Building using cmake ad described in README fails with error:
/pam/plugins/aoip info/pnlAoIPInfo.cpp:900:16: error: ‘wxPtp’ has not been declared
timeval tv(wxPtp::Get().GetLastPtpOffset(0));
The true peak calculator dies. Need to add a routing panel
After building application with cmake and running on an Xorg server I see the following messages repeated several times:
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
Expression 'alsa_snd_pcm_hw_params_set_period_size_near( pcm, hwParams, &alsaPeriodFrames, &dir )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 924
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
This is odd output one would not expect to see.
It is now possible to import AES67 stream configuration from USB. It would be advantageous to be able to define the order of display from the order within the file. It seems that the current implementation orders alphabetically. It may be further advantageous to offer switch between configured / discovered order and alphabetic order.
There is a button to show the terminal Once this is pressed there is no way back to the GUI without plugging in a keyboard or removing power. There are other functions that require a push and hold. I suggest the terminal access should be similarly protected.
During AoIP discovery the count of discovered feeds is shown suffixed with 'z', e.g. "0011z Found". Is the 'z' relevant?
Add a settings page to setup NTP/PTP on the PAM
Hi,
I recently got a Official Raspberry Pi Touch screen, in order to try and give PAM a go. My goal is to get it working with AES67 and a Glensound AoIP44.
I followed the instructions in the Readme and this wiki page: https://github.com/martim01/pam/wiki/Turning-a-Raspberry-Pi-into-a-PAM
But have experienced a few problems.
I started with a fresh copy of Raspbian: 2019-07-10-raspbian-buster.img
When starting PAM there were some error messages about bluealsa
. Given that I have no plans for using Bluetooth, I decided to uninstall it, which made the error messages go away.
apt remove --purge bluez pi-bluetooth bluealsa
I also disabled the Rapberry Pi's built-in audio in preference for a USB Audio card by editing /boot/config.txt
:
dtparam=audio=off
I also had an error message about not being able to find a device. I noticed that eth0
didn't exist, so turned off predictable network interface names:
sudo raspi-config
Select "2. Network options"
Select "N3 Network interface names"
Select "No". It's now disabled predictable network interface names.
Click "OK" and "Finish". Then it will reboot your raspberry pi.
I also had a message that was implying that I need to type in a password for sudo. To keep things simple I decided to add the following line to /etc/sudoers
, instead of the multiple lines for /sbin/shutdown
etc...
pam ALL=(ALL) NOPASSWD:ALL
Finally I was left with the following messages after running /usr/bin/pam2
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
SIOCADDRT: File exists
Segmentation fault
SIOCADDRT
message expected?I order to work out what is causing the Segmentation fault, I used gdb
and it looks like it is a problem with calling SetBackgroundColour
:
Thread 1 "pam2" received signal SIGSEGV, Segmentation fault.
0x76437e7c in uiRect::SetBackgroundColour(wxColour const&, wxColour const&) () from /home/njh/pam/pam2/../lib/libpambase.so
(gdb) bt
#0 0x76437e7c in uiRect::SetBackgroundColour(wxColour const&, wxColour const&) () from /home/njh/pam/pam2/../lib/libpambase.so
#1 0x76469664 in wmSlider::SetButtonColour(wxColour const&) () from /home/njh/pam/pam2/../lib/libpambase.so
#2 0x0016e188 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
I would be very grateful if you had any suggestions on how to fix this, or amend my setup.
Thanks!
nick.
Building using cmake instructions in README fails with error:
fatal error: openssl/evp.h: No such file or directory
#include <openssl/evp.h>
This can be resolved by adding libssl-dev to the list of packages to install.
The device can get into a state where the GUI is unresponsive to touch. This may be related to issue #22. When in this state a reboot returns to same, unresponsive state. The example I saw was the Meter Screen shown. This was fixed by removing network cable.
It may be advantageous to provide a mechanism for starting up in a known working (default) state, e.g. pressing a GUI button during startup.
Dear,
Not sure if Raspbery Pi 4 model B is compatible ?
Best Regards,
Youssef
Paging buttons have no icons
Add a wizard when you first start the PAM (or after resetting it) which will allow the user to choose the most common options.
After clicking around for a while, the stereo bar meters on the right of the Lissajou display is corrupt. The space between the top of the meters and top of screen / grey bars is populated with random video content. This may be horizontal coloured lines or different colour pixels. It is like the space is being rendered from undefined / uninitiated / random data.
I haven't figured out what workflow triggers this but it occurs fairly often. Probably some failure to clear the screen data before drawing the screen.
On several occasion the GUI has locked up and become unresponsive. On most recent occasion this was when switching Screens from FFT to R128. Switching to terminal I can see that pam2 process is taking 123% CPU. Killing pam2 process does not relaunch PAM GUI. (Killing lightdm restarts UI with login prompt.)
After reboot I was able to reproduce the issue. Selecting R128 (from any Screen) seems to lock up the display (if AES67 source selected).
Dear @martim01
I don't know if you would be able to decode and monitor AoiP over TLS?
Best Regards,
Youssef
Dear @martim01
I 'd like to say : Very good job for this project.
Don't stop ;-)
Remarks : do you think the same dev in Typescript is possible or limited because all the library are C++ ?
Best Regards,
Youssef
Dear @martim01
I am using vs code on mac and Windows, did you tried one of them or still using as recommenced in the repository?
Best regards
Youssef
Occasionally the PAM does not recognise a USB memory device. Sometimes it displays multiple copies of files, like it may have mounted the device twice.
It is plausible that automount is running and mounting the media and PAM is manually mounting it. It may be that if one does so before the other it may block the second mount and it may be that if the mount occurs in opposite order then the device may get mounted twice.
The "waveform" and "ptp" screen selection buttons are lowercase. Other buttons have first letter of each work capitalised and TLAs in upper case.
Need to add a way to connect to wifi from the application
Is there a solution to use the onboard audio out (mini-jack) in place of a specific pi-Hat?(or maybe also an usb sound card)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.