Giter Site home page Giter Site logo

pierr3 / vectoraudio Goto Github PK

View Code? Open in Web Editor NEW
46.0 3.0 11.0 165.38 MB

An Audio-For-VATSIM ATC Client for macOS, Linux and Windows

License: GNU General Public License v3.0

CMake 3.38% C++ 87.74% Shell 2.64% Objective-C++ 1.05% NSIS 3.21% Python 0.90% C 1.08%
macos vatsim linux audio cpp

vectoraudio's Introduction

VectorAudio

A cross-platform Audio-For-VATSIM ATC Client for macOS, Windows and Linux support (audio only)

NOTE

GOING FORWARD, VECTORAUDIO WILL NOT BE ACTIVELY DEVELOPPED. HEAD OVER TO ITS REPLACEMENT, TrackAudio FOR FUTURE UPDATES AND AN IMPROVED EXPERIENCE WITH MORE FEATURES AND STABILITY.

Screenshot

screengrab of application

Releases

See releases for latest builds

FAQ

My PTT does not work on macOS

macOS has strict permissioning around background keyboard inputs. VectorAudio should prompt you on first launch to allow it to monitor keyboard input. Sometimes, upon updating the app, this setting will undo itself. In that case, follow the steps described in this issue.

There is a console window appearing when I launch VectorAudio

Version 1.3.1 accidentally triggered this issue. A hotfix has been released for windows, version 1.3.1a which is available to download under the 1.3.1 release, install it and the issue will be resolved.

Where is the configuration file/log file stored?

On macOS: ~/Library/Application\ Support/VectorAudio On Linux: ~/.config/vector_audio On Windows: where VectorAudio.exe is installed

Does VectorAudio support joystick PTT?

Yes.

The station I am trying to add is not found

Ask your FE to define the station in the AFV database. Per the AFV FE manual, all stations should be defined in the database. VectorAudio does support ad-hoc station creation if you log-in as a DEL, GND or TWR that has no station definition. It will then place a transceiver at the location of the airport you logged in as. This will only work if the airport exists in the airport database.

Is there RDF support in EuroScope?

Yes! @KingfuChan has updated the RDF plugin for EuroScope to include support for VectorAudio. Find the plugin in this repo.

What is this green "Slurper" text/yellow "Datafile" text/red "No VATSIM data"

VectorAudio uses two different ways to detect a connection to vatsim: the slurper and the datafile. If you see a yellow "datafile" label in the top right, that means the slurper is not available.

If you see a red "No VATSIM data", this most likely means that VATSIM servers are temporarily down.

The status of available endpoints is refreshed every 15 minutes.

Does VectorAudio support HF Simulation?

No.

Can I add a frequency manually if it does not exist in the database?

The AFV facility manager manual is clear that ALL stations must be added. If your vACC has not done so, please ensure they do. VectorAudio follows the database definition of frequencies and does not allow for the addition of custom frequencies at this moment.

Can I extend VectorAudio using a plugin/is there an SDK?

Yes! Have a look in the wiki. VectorAudio offers a WebSocket and HTTP SDK. If you need additional features, please open an issue with a detailed request, I'll be happy to look at it with no guarantees.

I have an issue with VectorAudio

Read this document entirely first. If you can't find the answer to your problem, please open an issue on GitHub, attaching relevant lines from the vector_audio.log file that should be in the same folder as the executable.

Installation

Linux

VectorAudio is packaged as an AppImage and should run without any specific actions.

Download the latest release on the release page and run the AppImage file. If it does not open, you might want to make sure it has permission to run as an executable by running chmod +x on the AppImage File.

macOS

Download the latest release on the release page and install the .app into your applications folder.

Alternatively, VectorAudio can be installed using Homebrew. Run the following commands to first install the Homebrew Tap and then the Homebrew Cask. This way the app gets upgraded when you run brew upgrade.

# Add the tap
brew tap flymia/homebrew-vectoraudio

# Install the cask
brew install --cask vectoraudio

VectorAudio ships with a universal binary, that includes x86_64 and ARM versions for Apple Silicon.

Windows

Download the latest release on the release page and run the executable. This should install VectorAudio.

Build

Dependencies

VectorAudio uses OpenGL as a rendering backend, and thus requires an OpenGL compatible device.

cmake is required to build the project. Dependencies will be downloaded through vcpkg at build time. See vcpkg.json for further details

On linux, the following packages are required: build-essentials libx11-dev libxrandr-dev libxi-dev libudev-dev libgl1-mesa-dev libxcursor-dev freeglut3-dev, you may also need further packages to enable the different audio backends, such as Alsa, JACK or PulseAudio. On macOS, XCode Command Line tools, CMake and Homebrew are required and the following homebrew package is required: pkg-config

Build process

git submodule update --init --recursive
./vcpkg/bootstrap-vcpkg.sh -disableMetrics
mkdir -p build/ && cd build/
cmake .. && make

Contributing

If you want to help with the project, you are always welcome to open a PR. ๐Ÿ™‚

vectoraudio's People

Contributors

flymia avatar jonaseberle avatar justinshannon avatar p7x404 avatar pierr3 avatar redac avatar uetcis 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

Watchers

 avatar  avatar  avatar

vectoraudio's Issues

Joy PTT

The Audio for Vatsim client can handle Joy-buttons as a PTT. Is that something that would be possible in VectorAudio too?

Linux: API and Voice stays Red, connect button not working

When using VectorAudio on Linux I am not able to connect to the audio servers. The API and Voice indicators stay red and the connect button does nothing.

However, it notices that I'm connected to VATSIM, so the API is working.

screenshot-2022-10-09-01-17-28

I've attached the log, so you can see what's happening while launching.

OS: Arch Linux
Compiled by myself.

before paHostApiInitializers[0].
ALSA version (build): 1.2.7.2
ALSA version (runtime): 1.2.7.2
BuildDeviceList: Found device [0]: HDA Intel PCH: ALC892 Analog (hw:0,0)
BuildDeviceList: Found device [1]: HDA Intel PCH: ALC892 Alt Analog (hw:0,2)
BuildDeviceList: Found device [2]: HDA NVidia: MSI MP271Q    (hw:1,3)
BuildDeviceList: Found device [3]: HDA NVidia: ROG PG278QR   (hw:1,7)
BuildDeviceList: Found device [4]: HDA NVidia: HDMI 2 (hw:1,8)
BuildDeviceList: Found device [5]: HDA NVidia: HDMI 3 (hw:1,9)
BuildDeviceList: Found device [6]: HDA NVidia: HDMI 4 (hw:1,10)
BuildDeviceList: Found device [7]: HDA NVidia: HDMI 5 (hw:1,11)
BuildDeviceList: Found device [8]: HDA NVidia: HDMI 6 (hw:1,12)
BuildDeviceList: Found device [9]: Sennheiser 3D G4ME1: USB Audio (hw:2,0)
BuildDeviceList: Ignoring ALSA plugin device [hw] of type [hw]
BuildDeviceList: Ignoring ALSA plugin device [plughw] of type [plug]
BuildDeviceList: Ignoring ALSA plugin device [plug] of type [plug]
BuildDeviceList: Ignoring ALSA plugin device [shm] of type [shm]
BuildDeviceList: Ignoring ALSA plugin device [tee] of type [file]
BuildDeviceList: Ignoring ALSA plugin device [file] of type [file]
BuildDeviceList: Ignoring ALSA plugin device [null] of type [null]
BuildDeviceList: Ignoring ALSA plugin device [cards] of type [unknown]
BuildDeviceList: Found plugin [default] of type [unknown]
BuildDeviceList: Found plugin [sysdefault] of type [unknown]
BuildDeviceList: Found plugin [front] of type [unknown]
BuildDeviceList: Found plugin [rear] of type [unknown]
BuildDeviceList: Found plugin [center_lfe] of type [unknown]
BuildDeviceList: Found plugin [side] of type [unknown]
BuildDeviceList: Found plugin [surround21] of type [unknown]
BuildDeviceList: Found plugin [surround40] of type [unknown]
BuildDeviceList: Found plugin [surround41] of type [unknown]
BuildDeviceList: Found plugin [surround50] of type [unknown]
BuildDeviceList: Found plugin [surround51] of type [unknown]
BuildDeviceList: Found plugin [surround71] of type [unknown]
BuildDeviceList: Found plugin [iec958] of type [unknown]
BuildDeviceList: Found plugin [spdif] of type [unknown]
BuildDeviceList: Found plugin [hdmi] of type [unknown]
BuildDeviceList: Found plugin [dmix] of type [unknown]
BuildDeviceList: Ignoring ALSA plugin device [dsnoop] of type [unknown]
BuildDeviceList: Found plugin [modem] of type [unknown]
BuildDeviceList: Found plugin [phoneline] of type [unknown]
BuildDeviceList: Filling device info for 28 devices
FillInDevInfo: Filling device info for: HDA Intel PCH: ALC892 Analog (hw:0,0)
GropeDevice: collecting info ..
GropeDevice: collecting info ..
Default input device: HDA Intel PCH: ALC892 Analog (hw:0,0)
Default output device: HDA Intel PCH: ALC892 Analog (hw:0,0)
FillInDevInfo: Adding device HDA Intel PCH: ALC892 Analog (hw:0,0): 0
FillInDevInfo: Filling device info for: HDA Intel PCH: ALC892 Alt Analog (hw:0,2)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: ALC892 Alt Analog (hw:0,2): 1
FillInDevInfo: Filling device info for: HDA NVidia: MSI MP271Q    (hw:1,3)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: MSI MP271Q    (hw:1,3): 2
FillInDevInfo: Filling device info for: HDA NVidia: ROG PG278QR   (hw:1,7)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: ROG PG278QR   (hw:1,7): 3
FillInDevInfo: Filling device info for: HDA NVidia: HDMI 2 (hw:1,8)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: HDMI 2 (hw:1,8): 4
FillInDevInfo: Filling device info for: HDA NVidia: HDMI 3 (hw:1,9)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: HDMI 3 (hw:1,9): 5
FillInDevInfo: Filling device info for: HDA NVidia: HDMI 4 (hw:1,10)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: HDMI 4 (hw:1,10): 6
FillInDevInfo: Filling device info for: HDA NVidia: HDMI 5 (hw:1,11)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: HDMI 5 (hw:1,11): 7
FillInDevInfo: Filling device info for: HDA NVidia: HDMI 6 (hw:1,12)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA NVidia: HDMI 6 (hw:1,12): 8
FillInDevInfo: Filling device info for: Sennheiser 3D G4ME1: USB Audio (hw:2,0)
OpenPcm: Failed to open busy device 'hw:2,0'
OpenPcm: Failed to open busy device 'hw:2,0'
FillInDevInfo: Skipped device: Sennheiser 3D G4ME1: USB Audio (hw:2,0), all channels == 0
FillInDevInfo: Filling device info for: sysdefault
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
FillInDevInfo: Adding device sysdefault: 9
FillInDevInfo: Filling device info for: front
GropeDevice: collecting info ..
FillInDevInfo: Adding device front: 10
FillInDevInfo: Filling device info for: rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
OpenPcm: Opened device 'rear' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: rear, all channels == 0
FillInDevInfo: Filling device info for: center_lfe
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
OpenPcm: Opened device 'center_lfe' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: center_lfe, all channels == 0
FillInDevInfo: Filling device info for: side
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
OpenPcm: Opened device 'side' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: side, all channels == 0
FillInDevInfo: Filling device info for: surround21
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
OpenPcm: Opened device 'surround21' ptr[(nil)] - result: [-22:Invalid argument]
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
FillInDevInfo: Adding device surround21: 11
FillInDevInfo: Filling device info for: surround40
GropeDevice: collecting info ..
FillInDevInfo: Adding device surround40: 12
FillInDevInfo: Filling device info for: surround41
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
FillInDevInfo: Adding device surround41: 13
FillInDevInfo: Filling device info for: surround50
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
FillInDevInfo: Adding device surround50: 14
FillInDevInfo: Filling device info for: surround51
GropeDevice: collecting info ..
FillInDevInfo: Adding device surround51: 15
FillInDevInfo: Filling device info for: surround71
GropeDevice: collecting info ..
FillInDevInfo: Adding device surround71: 16
FillInDevInfo: Filling device info for: iec958
OpenPcm: Opened device 'iec958' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: iec958, all channels == 0
FillInDevInfo: Filling device info for: spdif
OpenPcm: Opened device 'spdif' ptr[(nil)] - result: [-2:No such file or directory]
OpenPcm: Opened device 'spdif' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: spdif, all channels == 0
FillInDevInfo: Filling device info for: hdmi
OpenPcm: Opened device 'hdmi' ptr[(nil)] - result: [-2:No such file or directory]
OpenPcm: Opened device 'hdmi' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: hdmi, all channels == 0
FillInDevInfo: Filling device info for: modem
OpenPcm: Opened device 'modem' ptr[(nil)] - result: [-2:No such file or directory]
OpenPcm: Opened device 'modem' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: modem, all channels == 0
FillInDevInfo: Filling device info for: phoneline
OpenPcm: Opened device 'phoneline' ptr[(nil)] - result: [-2:No such file or directory]
OpenPcm: Opened device 'phoneline' ptr[(nil)] - result: [-2:No such file or directory]
FillInDevInfo: Skipped device: phoneline, all channels == 0
FillInDevInfo: Filling device info for: default
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
Default input device: default
Default output device: default
FillInDevInfo: Adding device default: 17
FillInDevInfo: Filling device info for: dmix
GropeDevice: collecting info ..
FillInDevInfo: Adding device dmix: 18
BuildDeviceList: Building device list took 0.284094 seconds
after paHostApiInitializers[0].
before paHostApiInitializers[1].
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
PaJack_Initialize: Couldn't connect to JACK, status: 17
after paHostApiInitializers[1].
TerminateHostApis in 
TerminateHostApis out

Feature Request: Customizable Frequency

Native AFV allows to add stations without a definition from division facility engineer, by manually adding a frequency to it and AFV searches for nearby controllers. I'm wondering if it is possible to implement this feature because many TWR/GND/DEL/ATIS are not defined in some divisions. It'll be hard to do mentoring work without the possibility of adding stations by myself.

Scaling under Wayland

image

Texts are too small to be readable when it is run under wayland through Xwayland.

Feature request: Dynamic Audio channels

It's quite a far-reaching one - so take it for what it is.

It's always bothered me that there's no good way to set up audio such that both controller-to-controller coordination is audible, as well as the pilot who for sure will give you thรกt very important call when you're coordinating.

What if the application could control the audio channels dynamically?
When it detects sound from a certain application (Discord/ES/TS), it changes the sound output from stereo to only one side.
This way, you can focus yourself on either the left or right channel - or simply here both at the same time.

Ideally it should be able to reroute other application's audio for the best effect - but for this I would like to refer back to the first sentence of this post.

If you're ever find yourself crazy enough, I think this code might help: https://github.com/bozbez/win-capture-audio - It's C++ code for an OBS plugin that captures individual application's audio.

stderr/stdout contains many "ContinuePoll: Stopping poll for playback" and audio related entries

Hey, I've just had a longer session and it went beautifully!
Some more and I'll be confident enough with the audio to also book stations :)

Just at the very beginning I was not able to receive/send voice. But since I was already connected and pilots where waiting I restarted VectorAudio, reconnected and haven't had a closer look what might have caused it. Sorry!
From there on I had stable and beautiful voice, including monitoring surrounding frequencies. Absolutely fantastic! Thank you!

I prefer to start ./vector_audio from the console (actually sometimes with gdb debugger). I always build from current main.

The console output contains just too many lines in my opinion.
The extreme was shown during my first sessions:
I always had problems after some time running ./vector_audio until I found out that my /tmp tmpfs has grown to the point where it was full (by default it is half of the RAM, so 8 GB in my case). I looked at the code and couldn't find anything related to it. Then I realized that my terminal was set to have an unlimited scrolling buffer and that it used /tmp... After setting that to max. 100.000 lines I haven't had that problem any more.

Types of log messages

ContinuePoll

During normal controlling, I have a lot of:

ContinuePoll: Stopping poll for playback

Audio device detection

When opening the audio settings and opening any of the dropdown boxes
image
it gets absolutely insane and is constantly outputting a huge stream of text (like several MB/s).
Here's a sample:

ALSA version (build): 1.2.6.1
ALSA version (runtime): 1.2.6.1
BuildDeviceList: Found device [0]: HDA Intel PCH: CX20753/4 Analog (hw:0,0)
BuildDeviceList: Found device [1]: HDA Intel PCH: HDMI 0 (hw:0,3)
BuildDeviceList: Found device [2]: HDA Intel PCH: HDMI 1 (hw:0,7)
BuildDeviceList: Found device [3]: HDA Intel PCH: HDMI 2 (hw:0,8)
BuildDeviceList: Found device [4]: HDA Intel PCH: HDMI 3 (hw:0,9)
BuildDeviceList: Found device [5]: HDA Intel PCH: HDMI 4 (hw:0,10)
BuildDeviceList: Found device [6]: X-USB: USB Audio (hw:1,0)
BuildDeviceList: Ignoring ALSA plugin device [hw] of type [hw]
BuildDeviceList: Ignoring ALSA plugin device [plughw] of type [plug]
BuildDeviceList: Ignoring ALSA plugin device [plug] of type [plug]
BuildDeviceList: Ignoring ALSA plugin device [shm] of type [shm]
BuildDeviceList: Ignoring ALSA plugin device [tee] of type [file]
BuildDeviceList: Ignoring ALSA plugin device [file] of type [file]
BuildDeviceList: Ignoring ALSA plugin device [null] of type [null]
BuildDeviceList: Ignoring ALSA plugin device [cards] of type [unknown]
BuildDeviceList: Found plugin [sysdefault] of type [unknown]
BuildDeviceList: Found plugin [front] of type [unknown]
BuildDeviceList: Found plugin [rear] of type [unknown]
BuildDeviceList: Found plugin [center_lfe] of type [unknown]
BuildDeviceList: Found plugin [side] of type [unknown]
BuildDeviceList: Found plugin [surround21] of type [unknown]
BuildDeviceList: Found plugin [surround40] of type [unknown]
BuildDeviceList: Found plugin [surround41] of type [unknown]
BuildDeviceList: Found plugin [surround50] of type [unknown]
BuildDeviceList: Found plugin [surround51] of type [unknown]
BuildDeviceList: Found plugin [surround71] of type [unknown]
BuildDeviceList: Found plugin [iec958] of type [unknown]
BuildDeviceList: Found plugin [spdif] of type [unknown]
BuildDeviceList: Found plugin [hdmi] of type [unknown]
BuildDeviceList: Found plugin [dmix] of type [unknown]
BuildDeviceList: Ignoring ALSA plugin device [dsnoop] of type [unknown]
BuildDeviceList: Found plugin [modem] of type [unknown]
BuildDeviceList: Found plugin [phoneline] of type [unknown]
BuildDeviceList: Found plugin [lavrate] of type [rate]
BuildDeviceList: Found plugin [samplerate] of type [rate]
BuildDeviceList: Found plugin [speexrate] of type [rate]
BuildDeviceList: Found plugin [jack] of type [jack]
BuildDeviceList: Found plugin [oss] of type [oss]
BuildDeviceList: Found plugin [pipewire] of type [pipewire]
BuildDeviceList: Found plugin [pulse] of type [pulse]
BuildDeviceList: Found plugin [a52] of type [a52]
BuildDeviceList: Found plugin [speex] of type [speex]
BuildDeviceList: Found plugin [upmix] of type [upmix]
BuildDeviceList: Found plugin [vdownmix] of type [vdownmix]
BuildDeviceList: Found plugin [usbstream] of type [usb_stream]
BuildDeviceList: Found plugin [default] of type [pulse]
BuildDeviceList: Filling device info for 37 devices
FillInDevInfo: Filling device info for: HDA Intel PCH: CX20753/4 Analog (hw:0,0)
GropeDevice: collecting info ..
GropeDevice: collecting info ..
Default input device: HDA Intel PCH: CX20753/4 Analog (hw:0,0)
Default output device: HDA Intel PCH: CX20753/4 Analog (hw:0,0)
FillInDevInfo: Adding device HDA Intel PCH: CX20753/4 Analog (hw:0,0): 0
FillInDevInfo: Filling device info for: HDA Intel PCH: HDMI 0 (hw:0,3)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: HDMI 0 (hw:0,3): 1
FillInDevInfo: Filling device info for: HDA Intel PCH: HDMI 1 (hw:0,7)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: HDMI 1 (hw:0,7): 2
FillInDevInfo: Filling device info for: HDA Intel PCH: HDMI 2 (hw:0,8)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: HDMI 2 (hw:0,8): 3
FillInDevInfo: Filling device info for: HDA Intel PCH: HDMI 3 (hw:0,9)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: HDMI 3 (hw:0,9): 4
FillInDevInfo: Filling device info for: HDA Intel PCH: HDMI 4 (hw:0,10)
GropeDevice: collecting info ..
FillInDevInfo: Adding device HDA Intel PCH: HDMI 4 (hw:0,10): 5
FillInDevInfo: Filling device info for: X-USB: USB Audio (hw:1,0)
GropeDevice: collecting info ..
GropeDevice: collecting info ..
FillInDevInfo: Adding device X-USB: USB Audio (hw:1,0): 6
FillInDevInfo: Filling device info for: sysdefault
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
GropeDevice: collecting info ..
GropeDevice: Limiting number of plugin channels to 128
FillInDevInfo: Adding device sysdefault: 7
FillInDevInfo: Filling device info for: front
GropeDevice: collecting info ..
FillInDevInfo: Adding device front: 8
FillInDevInfo: Filling device info for: rear
ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
OpenPcm: Opened device 'rear' ptr[(nil)] - result: [-2:No such file or directory]
...

Could we clean this up a bit or make it go to a .log file instead?

(Linux 5.17, Manjaro)

macOS: Window stutters while moving

When moving the window around in macOS Monterey, it stutters and is not usable for around 1 second. There is no terminal output or any errors that get reported while moving the window (see the GIF). It's only a minor issue, but of course it would be cooler, as if this was fluid as all the other applications.

CleanShot2022-07-03-14-04-08

OS: macOS 12.4
Machine: Mac Mini M1 16 Gig

Settings

More of a question than an issue, but is it possible to "manually" change the settings in some file. I have a keypad with a key combo that triggers a Vjoy key, and I'm trying to get VectorAudio to see that Vjoy as the PTT. But when I press the key Vector just sees the first key in the combo instead of the vJoy

(Feature Request) Add support for the use of keys F13-F24

Many controllers use the F13-F24 keys as their AFV push to talk, as it does not interfere with typing text or other application functions. When trying to map a key greater than F12 in Vector, the software is unable to recognize that the key has been pressed allowing it to be bound to the push to talk. AFV does support the functionality and would make Vector just that much nicer to use.

Wrong placement of antenna

Hi,

When I log on as EGSU_I_TWR, the transmitter defaults to being over Paris rather than Duxford. afv-map

When I use the Audio for VATSIM client, the transmitter appears in the correct place.

afv.log

Thu Jan 26 11:57:27 2023: APISession: got 97 station aliases.
Thu Jan 26 11:57:27 2023: APISession: got error from API server getting station transceivers: Response Code 404
Thu Jan 26 11:57:27 2023: APISession: got error from API server getting vccs: Response Code 404
Thu Jan 26 11:57:48 2023: ATCClient: Need to fetch transceivers for station EGKK_TWR
Thu Jan 26 11:57:48 2023: APISession: got 1 station transceivers for station EGKK_TWR.
Thu Jan 26 11:57:48 2023: ATCClient: Receiving new transceivers for station EGKK_TWR
Thu Jan 26 11:59:44 2023: afv::ATCClient: Voice Session Disconnected
Thu Jan 26 11:59:44 2023: afv_native::ATCClient: Disconnected from AFV API Server.  Terminating sessions
Thu Jan 26 12:04:31 2023: APISession: API Token Expires in 3597 seconds
Thu Jan 26 12:04:31 2023: afv_native::ATCClient: Connected to AFV API Server
Thu Jan 26 12:04:31 2023: ATCClient: Need to fetch transceivers for station EGSU_I_TWR
Thu Jan 26 12:04:31 2023: afv::ATCClient: Voice Session Connected
Thu Jan 26 12:04:31 2023: afv::ATCClient: Initialising Speaker Audio...

vector_audio.log
[2023-01-26 12:03:16.752] [VectorAudio] [info] Starting Vector Audio...
[2023-01-26 12:03:17.081] [VectorAudio] [info] Created afv_native client.
[2023-01-26 12:03:17.081] [VectorAudio] [info] Created data file thread

Unable to connect

After updating to the latest version 0.6.0 the connect button does nothing. Vector Audio recognises my Euroscope as connected to the network.

MacOS: Transmission not possible, but microphone works

When I try to use the software on a real frequency, other pilots can not hear me on the frequency. I also do not get an indicator, that I'm speaking right now. It seems, that the PTT is not working.

After installation I configured the software (inserted my VATSIM ID, changed to my mic+speaker) and tested my microphone using the microphone option. It seems to be working fine there, but when I try to talk on the frequency, nothing happens. I even tried setting another push-to-talk key.

I also compiled the software by myself on my M1 machine, to test if Rosetta 2 was the problem, but it also seems to be not working when running the ARM version. Running the software form the command line does not display any error messages, etc.

System: M1 Mac Mini
OS: macOS Monterey 12.2.1

libafv.so not found

When I run the prebuilt Ubuntu release I get the following error when running vector audio:

./vector_audio: error while loading shared libraries: libafv.so: cannot open shared object file: No such file or directory

Using v0.6.0 and Ubuntu 22.04

Crash on start if last network connection was as a pilot

When starting vectoraudio after having been previously connected as a pilot, it crashes with

terminate called after throwing an instance of 'std::invalid_argument'
  what():  stoi

Based on a quick backtrace, it's crashing at

vector_audio::shared::datafile::facility = std::stoi(res[2], nullptr, 16) == 10 && yx_ && u334 != shared::kObsFrequency ? 1 : 0;

My best guess is that it's due to how the slurper response changes when last connected as a pilot, but I could very well be wrong about that.

Ubuntu 20.04: no sound API; segfault when trying to select input/output device

When trying to configure VectorAudio on Ubuntu 20.04, I am not able to select a sound API in the settings. Logically, trying to set an input/output device then fails, with VectorAudio crashing with a segfault.

In order to test if the problem was on my side, I wrote a quick test program which queries portaudio using the same calls as VectorAudio/afv-native:

#include<portaudio.h>
#include<iostream>

int main()
{
	Pa_Initialize();

	int hostapis = Pa_GetHostApiCount();
	std::cout << hostapis << std::endl;

	auto apiCount = Pa_GetHostApiCount();
	for (unsigned i = 0; i < apiCount; i++) {
		auto info = Pa_GetHostApiInfo(i);
		if (info != nullptr) {
			std::cout << i << ": "<< info->name << std::endl;
		}
		for(unsigned j = 0; j < info->deviceCount; j++){
			auto devId = Pa_HostApiDeviceIndexToDeviceIndex(i,j);
			if(devId < 0)
				continue;
			const auto *devInfo = Pa_GetDeviceInfo(devId);
			std::cout << "\t" << j << ": " << devInfo->name << std::endl;
		}
	}

	Pa_Terminate();
}

This gives me the expected output:

2
0: ALSA
	0: USB Device 0x46d:0x825: Audio (hw:0,0)
	1: Steinberg UR22: USB Audio (hw:1,0)
	2: HDA Intel PCH: ALC887-VD Analog (hw:2,0)
	3: HDA Intel PCH: ALC887-VD Alt Analog (hw:2,2)
	4: HDA NVidia: HDMI 0 (hw:3,3)
	5: HDA NVidia: HDMI 1 (hw:3,7)
	6: HDA NVidia: HDMI 2 (hw:3,8)
	7: HDA NVidia: HDMI 3 (hw:3,9)
	8: HDA NVidia: HDMI 4 (hw:3,10)
	9: HDA NVidia: HDMI 5 (hw:3,11)
	10: sysdefault
	11: spdif
	12: samplerate
	13: speexrate
	14: pulse
	15: upmix
	16: vdownmix
	17: default
1: OSS

Unable to hear

I recently did a hardware upgrade and now I can't hear things through Vector Audio, none of my transmissions are coming through either. It looks like I'm transmitting but nothing is coming through.

I also tried to change the settings in the config.toml file to set my Vjoy key as the PTT but Vector Audio doesn't seem to pick up on any of the changes I make, be that to a real joystick or not. But changes made in the app are reflected in the config file.

If some log files are needed tell me which ones.

PTT not working on Mac starting in v 0.5.0

I started to use VectorAudio a few weeks ago in the MacOS, in the version 0.4.0. It was all working fine, but this week I updated to version 0.5.0 and since then the PTT functionality stopped working. I am able to test the Mic in the setting panel, I am able to set a PTT key, but when connected to Vatsim, I press the PTT and nothing happen, however I am receiving audio from traffics. Also, when I press the PTT, the TX indicator stays green as nothing being pressed.

Things I have tried:

  • changed the input device
  • changed the PTT
  • reboot my machine
  • started the VectorAudio before and after the Euroscope
  • Reinstalled the VectorAudio.

I tried it in the stations SBBE_TWR (118.70) and SBEG_TWR (118.30).

Is it really an issue in the v 0.5.0? Or am I missing something? Any help?

Feature request: "minimalism" view mode

Hi,

First of all thank you for your great contribution for VATSIM community - I've just started using VectorAudio under Ubuntu 22.04.

What I miss, comparing to AFV, is kind of "minimalism" view, especially when you use just one screen, where the app size is minimal that you can see only some basic things like:

  • TX, RX squares
  • Last station callsign
  • Connect / Disconnect buttons

Thanks for considerations!

Feature request: per-station volume setting

Idea: separate volume setting for each frequency
Why? Because sometimes we do monitor other controller's frequency for situational awareness, but it needs to not disturb listening to the main working frequency

Reportedly crackling voice output

Problem

During yesterday's session several pilots reported that my voice would "cut off" or be "crackling".

I checked with TeamSpeak's test function and verified that my microphone sound was clear (it plays back the audio to the output device).
image

I shortly disconnected and checked with VectorAudio's test, too. This looked also good.
image

I also checked that no CPU core was at 100% and that the network was not clogged.
I was able to receive voice from other ATC and pilots fine.
But after that I was out of ideas. Reconnecting did not improve the situation.

Do you have an idea what I could check next in such a situation?

System

Manjaro, Linux 5.15, currently using pipewire(I switched to that as a primary sound system because in my previous attempted session with pulseaudio I was not able to get any microphone output)

Bluetooth audio headset
image

Currently these VectorAudio settings:
image

Feature Request: RDF Support for EuroScope

Firstly I'm really impressed on you vSMR project :)
Today I logged-in as a Center controller in an event and I found it hard to locate who's actually talking when my airspace was getting crowded...
I believe you know how RDF (https://github.com/chembergj/RDF) is currently working on ES. It needs a bridge reading the stdio of AFV client. Also AFV/VectorAudio and ES don't necessarily need to run on the same machine. So some day ago an idea occurred to me: Can VectorAudio send a message via HTTP to a pre-set network address, and modify the plugin above (or re-write?) to monitor a specific portal so that all RX can be displayed in ES?

Wrong Frequency on Connect

When initially connecting the frequency sometimes is off by 0.001. For example in the following screenshot the correct frequency for CZVR CTR is 133.700 but when connecting initially it connects to 133.699.
1A4D2ABF-97C7-4653-97FD-747A712E5533

Deleting this frequency and re-adding it seems to fix the issue but it is a little bit annoying to have to do every time.

PTT Number designation in Config

Trying to set PTT to F20 but it won't take the assignment press. Trying to assign it manually from the config but I can't seem to figure what number mapping is being used in the config file.

Can you provide that information?

Add easier installation on macOS via Cask

Hi there!
First of all: GREAT software. It is important, that VATSIM becomes more open to other OSes, other than Windows. I've just tried your software on my M1 Mac Mini and it seem to be working great, even at this early stage of development.

I want to contribute to the software with my skills, so I started making a Cask for Homebrew, so that the software can easily be installed and upgraded using Homebrew.

I've created a repo with the cask on here and wanted to ask, if I should make PR, so that the Cask folder is implemented in the project here. That way, we could maintain the Homebrew tap and Cask in one repo, and users would not have to search for my repo. The cask works (just tested it).
Another idea would be, that we add my repo to the README, so that users see that the software can be installed via the Cask.

How are your thoughts about this? I would love to maintain the package for the software.

Cheers

Marc

Unable to connect to position (AFV API Issue?)

Hi Pierre,

I've got VectorAudio installed and configured, and I'm connected to the network (through VRC). When I try to connect VectorAudio, the callsign I'm connected as does not auto-add as it should (at least from what I understand). When I try to manually add it, it doesn't do anything. The afv.log file shows a couple of errors related to the API.

Log File

UI reacting to input across desktops

I am using Ubuntu 22.04 with GNOME on X11.
To save screen space, I usually have euroscope on full screen and VectorAudio on a second desktop of the same monitor that I switch between.

However, I noticed that VectorAudio sometimes reacts to clicks (setting gain volume, opening the license file or toggling TX or even disconnecting me) while I am still on the desktop with euroscope on it.
Not every click does get picked up, but it's often enough that it's pretty easy to reproduce. I have tested and confirmed the issue still exists on VectorAudio v0.7.0.

After reconnect TX went to the wrong frequency

In this setting
image

I was disconnected from VATSIM with EuroScope and after reconnect I was not reachable on voice.
So I manually disconnected VECTOR and connected again.

After that my transmissions went to the EDDS_TWR frequency ;)
Unchecking all boxes and checking them again fixed it.

I love that new visual style btw! :) And the secondary voice output SPK is a godsend! Thank you!

Ubuntu 22.04: segfault in afv_native::audio::PortAudioAudioDevice::getCompatibleInputDevicesForApi()

Opening any of the device dropdowns in the settings
image

gives a segfault in afv_native::audio::PortAudioAudioDevice::getCompatibleInputDevicesForApi(unsigned int):

(gdb) run
Starting program: /home/jonas/src/github.com/jonaseberle/VectorAudio/build/vector_audio 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff6c5c640 (LWP 1336252)]
[New Thread 0x7fffec780640 (LWP 1336253)]
[New Thread 0x7fffebe3e640 (LWP 1336254)]
[New Thread 0x7fffeb63d640 (LWP 1336255)]
[New Thread 0x7fffeae3c640 (LWP 1336256)]
[New Thread 0x7fffea63b640 (LWP 1336257)]
[New Thread 0x7fffe9e3a640 (LWP 1336258)]
[New Thread 0x7fffe9639640 (LWP 1336259)]
[New Thread 0x7fffe8e38640 (LWP 1336260)]
[New Thread 0x7fffc3fff640 (LWP 1336261)]
[New Thread 0x7fffc37fe640 (LWP 1336262)]
[New Thread 0x7fffc2ffd640 (LWP 1336263)]
[New Thread 0x7fffc2492640 (LWP 1336272)]
TerminateHostApis in 
TerminateHostApis out
[New Thread 0x7fffc1c91640 (LWP 1336273)]

Thread 1 "vector_audio" received signal SIGSEGV, Segmentation fault.
0x00007ffff79ea3fd in afv_native::audio::PortAudioAudioDevice::getCompatibleInputDevicesForApi(unsigned int) () from /home/jonas/src/github.com/jonaseberle/VectorAudio/build/extern/afv-native/libafv.so

Ubuntu 22.04 is using pulseaudio

Retain user settings after upgrade

Currently, settings are stored in the config.toml file (Stored in /Applications/VectorAudio.app/Contents/Resources/config.toml on macOS). If you upgrade using the dmg installer and drag VectorAudio.app to /Applications, then this file gets deleted when upgrading to a new version of Vector Audio.

The users settings should be retained upon upgrading versions.

Unable to identify my PTT device

image
image

Hi, the problem is as the screenshot above. I tried to set PTT in VectorAudio but nothing happened when I was pushing my PTT button. But worked for AFV.

Feature request: Allow listening to my sound output

Problem

I am looking for reassurance that my voice is working when starting a controlling session. I am currently doing "radio checks" on other controller's frequency because I am quite regularly not audible.

I am able to check that the microphone works in general with other programs, but I am currently not able to "hear" what VectorAudio "hears".

I would really like to listen to my voice - also to hear the effect of these settings:
image

Related: #18

Suggestion

A "Loopback" function:

Do you see any technical possibility to listen in to the microphone input before it is being sent to the audio server?
input -> VectorAudio -> output

Or could we even listen in to our voice channel on the server while we are transmitting? Is that technically feasible?
input -> VectorAudio -> audio server -> VectorAudio -> output

v1.3.1 on MacOS crashes when clicking connect

Hey,

Haven't used Vector Audio in a while, so upgraded from a pre v1 version to v1.3.1 by overwriting the existing app file in /Applications.

The application launches fine, and I gave it the permissions it asks for, but when clicking "Connect" in Vector audio, the application crashes. Below is the macOS Crash report as well as the vector_audio.log file.

MacOS Crash report: http://i.kmoberg.io/6hnmC8
vector_audio.log: http://i.kmoberg.io/XpLQj1

CTD on start-up

macOS 12.5, M2 MacBook Air 8CPU 8GPU 16RAM
Shows the following message when crashing:


Translated Report (Full Report Below)

Process: vector_audio [4877]
Path: /Applications/VectorAudio.app/Contents/MacOS/vector_audio
Identifier: vector_audio
Version: 1 (1)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 501

Date/Time: 2022-08-05 11:18:00.6331 +0800
OS Version: macOS 12.5 (21G72)
Report Version: 12
Anonymous UUID: AB8335AD-33FD-5043-57AC-8C45F69C82CF

Time Awake Since Boot: 4000 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018
Exception Codes: 0x0000000000000001, 0x0000000000000018
Exception Note: EXC_CORPSE_NOTIFY

Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [4877]

VM Region Info: 0x18 is not in any region. Bytes before following region: 68719476712
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
commpage (reserved) 1000000000-7000000000 [384.0G] ---/--- SM=NUL ...(unallocated)

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 vector_audio 0x104d3cc18 afv_unix::updater::updater() + 556
1 vector_audio 0x104d3cc14 afv_unix::updater::updater() + 552
2 vector_audio 0x104c59520 main + 1000
3 dyld 0x10536908c start + 520

Thread 1:
0 libsystem_kernel.dylib 0x1af662270 __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x1af69c83c _pthread_cond_wait + 1236
2 libc++.1.dylib 0x1af5eb320 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 100
3 vector_audio 0x104caecc8 std::__1::cv_status std::__1::condition_variable::wait_until<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&) + 244
4 vector_audio 0x104cbffb0 spdlog::details::mpmc_blocking_queuespdlog::details::async_msg::dequeue_for(spdlog::details::async_msg&, std::__1::chrono::duration<long long, std::_1::ratio<1l, 1000l> >) + 100
5 vector_audio 0x104cbfe34 spdlog::details::thread_pool::process_next_msg
() + 128
6 vector_audio 0x104cbfcf4 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, spdlog::details::thread_pool::thread_pool(unsigned long, unsigned long, std::__1::function<void ()>)::'lambda'()> >(void*) + 68
7 libsystem_pthread.dylib 0x1af69c26c _pthread_start + 148
8 libsystem_pthread.dylib 0x1af69708c thread_start + 8

Thread 2:
0 libsystem_pthread.dylib 0x1af697078 start_wqthread + 0

Thread 3:
0 libsystem_pthread.dylib 0x1af697078 start_wqthread + 0

Thread 4:
0 libsystem_pthread.dylib 0x1af697078 start_wqthread + 0

Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x000000016b1ab630 x1: 0x0000000000000000 x2: 0x000000014ab00000 x3: 0x000000014ab69ae0
x4: 0x00000000000000d0 x5: 0x000000014ab69ae0 x6: 0x000000000000000d x7: 0x0000000000000001
x8: 0x0000000000000000 x9: 0xc90dcdda174a0025 x10: 0x0000000000179f41 x11: 0x0000000000096600
x12: 0x000000014ab00000 x13: 0x0000000000000000 x14: 0x00000000d86246b0 x15: 0x000000000005b9fe
x16: 0x00000000000005b9 x17: 0x00000000000005b9 x18: 0x0000000000000000 x19: 0x000000014ab66970
x20: 0x000000014ab669a8 x21: 0x000000014ab669d8 x22: 0x0000000000000021 x23: 0x000000016b1ab648
x24: 0x0000000000000030 x25: 0x000000014ab66990 x26: 0x0000000000000000 x27: 0x0000000000000000
x28: 0x0000000000000000 fp: 0x000000016b1ab6b0 lr: 0x0000000104d3cc14
sp: 0x000000016b1ab600 pc: 0x0000000104d3cc18 cpsr: 0x20001000
far: 0x0000000000000018 esr: 0x92000006 (Data Abort) byte read Translation fault

Binary Images:
0x104c54000 - 0x105033fff vector_audio (1) /Applications/VectorAudio.app/Contents/MacOS/vector_audio
0x105364000 - 0x1053c3fff dyld () <75627683-a780-32ad-ae34-cf86dd23a26b> /usr/lib/dyld
0x1af65d000 - 0x1af694fff libsystem_kernel.dylib (
) <67f22904-88ed-3847-bbf0-5c4c599fd79e> /usr/lib/system/libsystem_kernel.dylib
0x1af695000 - 0x1af6a1fff libsystem_pthread.dylib () /usr/lib/system/libsystem_pthread.dylib
0x1af5de000 - 0x1af644fff libc++.1.dylib (
) /usr/lib/libc++.1.dylib
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=792.9M resident=0K(0%) swapped_out_or_unallocated=792.9M(100%)
Writable regions: Total=293.5M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=293.5M(100%)

                            VIRTUAL   REGION 

REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 256K 2
Activity Tracing 256K 1
CG backing stores 3328K 4
CG image 1904K 2
ColorSync 544K 24
CoreAnimation 16K 1
CoreGraphics 16K 1
CoreUI image data 160K 1
Dispatch continuations 64.0M 1
Foundation 16K 1
Kernel Alloc Once 32K 1
MALLOC 92.8M 37
MALLOC guard page 192K 10
MALLOC_MEDIUM (reserved) 120.0M 1 reserved VM address space (unallocated)
STACK GUARD 56.1M 5
Stack 10.1M 5
VM_ALLOCATE 1120K 16
__AUTH 1774K 148
__AUTH_CONST 9217K 295
__CTF 756 1
__DATA 8109K 284
__DATA_CONST 10.3M 297
__DATA_DIRTY 602K 101
__FONT_DATA 4K 1
__GLSLBUILTINS 5176K 1
__LINKEDIT 579.5M 6
__OBJC_CONST 1244K 124
__OBJC_RO 83.0M 1
__OBJC_RW 3168K 1
__TEXT 213.3M 313
__UNICODE 592K 1
dyld private memory 1024K 1
mapped file 149.6M 18
shared memory 848K 13
=========== ======= =======
TOTAL 1.4G 1719
TOTAL, minus reserved VM space 1.3G 1719


Full Report

{"app_name":"vector_audio","timestamp":"2022-08-05 11:18:00.00 +0800","app_version":"1","slice_uuid":"f01411fd-5dd5-381c-ad77-16a4105bfd07","build_version":"1","platform":1,"share_with_app_devs":1,"is_first_party":1,"bug_type":"309","os_version":"macOS 12.5 (21G72)","incident_id":"FEBA209A-9AB2-4122-9CE6-AA9B652F6633","name":"vector_audio"}
{
"uptime" : 4000,
"procLaunch" : "2022-08-05 11:18:00.5076 +0800",
"procRole" : "Foreground",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "Mac14,2",
"procStartAbsTime" : 97030589173,
"coalitionID" : 2184,
"osVersion" : {
"train" : "macOS 12.5",
"build" : "21G72",
"releaseType" : "User"
},
"captureTime" : "2022-08-05 11:18:00.6331 +0800",
"incident" : "FEBA209A-9AB2-4122-9CE6-AA9B652F6633",
"bug_type" : "309",
"pid" : 4877,
"procExitAbsTime" : 97033577707,
"translated" : false,
"cpuType" : "ARM-64",
"procName" : "vector_audio",
"procPath" : "/Applications/VectorAudio.app/Contents/MacOS/vector_audio",
"bundleInfo" : {"CFBundleVersion":"1","CFBundleShortVersionString":"1"},
"parentProc" : "launchd",
"parentPid" : 1,
"crashReporterKey" : "AB8335AD-33FD-5043-57AC-8C45F69C82CF",
"sip" : "enabled",
"vmRegionInfo" : "0x18 is not in any region. Bytes before following region: 68719476712\n REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL\n UNUSED SPACE AT START\n---> \n commpage (reserved) 1000000000-7000000000 [384.0G] ---/--- SM=NUL ...(unallocated)",
"isCorpse" : 1,
"exception" : {"codes":"0x0000000000000001, 0x0000000000000018","rawCodes":[1,24],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000018"},
"termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":4877},
"vmregioninfo" : "0x18 is not in any region. Bytes before following region: 68719476712\n REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL\n UNUSED SPACE AT START\n---> \n commpage (reserved) 1000000000-7000000000 [384.0G] ---/--- SM=NUL ...(unallocated)",
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":79864,"threadState":{"x":[{"value":6091879984},{"value":0},{"value":5548015616},{"value":5548448480},{"value":208},{"value":5548448480},{"value":13},{"value":1},{"value":0},{"value":14487461912898043941},{"value":1548097},{"value":615936},{"value":5548015616},{"value":0},{"value":3630319280},{"value":375294},{"value":1465},{"value":1465},{"value":0},{"value":5548435824},{"value":5548435880},{"value":5548435928},{"value":33},{"value":6091880008},{"value":48},{"value":5548435856},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4375956500},"cpsr":{"value":536875008},"fp":{"value":6091880112},"sp":{"value":6091879936},"esr":{"value":2449473542,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":4375956504,"matchesCrashFrame":1},"far":{"value":24}},"queue":"com.apple.main-thread","frames":[{"imageOffset":953368,"symbol":"afv_unix::updater::updater()","symbolLocation":556,"imageIndex":0},{"imageOffset":953364,"symbol":"afv_unix::updater::updater()","symbolLocation":552,"imageIndex":0},{"imageOffset":21792,"symbol":"main","symbolLocation":1000,"imageIndex":0},{"imageOffset":20620,"symbol":"start","symbolLocation":520,"imageIndex":1}]},{"id":79865,"frames":[{"imageOffset":21104,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":30780,"symbol":"_pthread_cond_wait","symbolLocation":1236,"imageIndex":3},{"imageOffset":54048,"symbol":"std::__1::condition_variable::__do_timed_wait(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >)","symbolLocation":100,"imageIndex":4},{"imageOffset":371912,"symbol":"std::__1::cv_status std::__1::condition_variable::wait_until<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >(std::__1::unique_lockstd::__1::mutex&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > > const&)","symbolLocation":244,"imageIndex":0},{"imageOffset":442288,"symbol":"spdlog::details::mpmc_blocking_queuespdlog::details::async_msg::dequeue_for(spdlog::details::async_msg&, std::__1::chrono::duration<long long, std::_1::ratio<1l, 1000l> >)","symbolLocation":100,"imageIndex":0},{"imageOffset":441908,"symbol":"spdlog::details::thread_pool::process_next_msg()","symbolLocation":128,"imageIndex":0},{"imageOffset":441588,"symbol":"void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, spdlog::details::thread_pool::thread_pool(unsigned long, unsigned long, std::__1::function<void ()>)::'lambda'()> >(void*)","symbolLocation":68,"imageIndex":0},{"imageOffset":29292,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":3},{"imageOffset":8332,"symbol":"thread_start","symbolLocation":8,"imageIndex":3}]},{"id":79866,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]},{"id":79867,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]},{"id":79869,"frames":[{"imageOffset":8312,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":3}]}],
"usedImages" : [
{
"source" : "P",
"arch" : "arm64",
"base" : 4375003136,
"CFBundleShortVersionString" : "1",
"size" : 4063232,
"uuid" : "f01411fd-5dd5-381c-ad77-16a4105bfd07",
"path" : "/Applications/VectorAudio.app/Contents/MacOS/vector_audio",
"name" : "vector_audio",
"CFBundleVersion" : "1"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 4382408704,
"size" : 393216,
"uuid" : "75627683-a780-32ad-ae34-cf86dd23a26b",
"path" : "/usr/lib/dyld",
"name" : "dyld"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7237652480,
"size" : 229376,
"uuid" : "67f22904-88ed-3847-bbf0-5c4c599fd79e",
"path" : "/usr/lib/system/libsystem_kernel.dylib",
"name" : "libsystem_kernel.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7237881856,
"size" : 53248,
"uuid" : "f32ff902-ba43-30b0-ad43-a2a8a9ff69fe",
"path" : "/usr/lib/system/libsystem_pthread.dylib",
"name" : "libsystem_pthread.dylib"
},
{
"source" : "P",
"arch" : "arm64e",
"base" : 7237132288,
"size" : 421888,
"uuid" : "ca366de6-c395-319a-b3ab-e22126d28394",
"path" : "/usr/lib/libc++.1.dylib",
"name" : "libc++.1.dylib"
},
{
"size" : 0,
"source" : "A",
"base" : 0,
"uuid" : "00000000-0000-0000-0000-000000000000"
}
],
"sharedCache" : {
"base" : 7234584576,
"size" : 3144695808,
"uuid" : "ffede77c-d90b-366b-96f2-665c2f50ee59"
},
"vmSummary" : "ReadOnly portion of Libraries: Total=792.9M resident=0K(0%) swapped_out_or_unallocated=792.9M(100%)\nWritable regions: Total=293.5M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=293.5M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nAccelerate framework 256K 2 \nActivity Tracing 256K 1 \nCG backing stores 3328K 4 \nCG image 1904K 2 \nColorSync 544K 24 \nCoreAnimation 16K 1 \nCoreGraphics 16K 1 \nCoreUI image data 160K 1 \nDispatch continuations 64.0M 1 \nFoundation 16K 1 \nKernel Alloc Once 32K 1 \nMALLOC 92.8M 37 \nMALLOC guard page 192K 10 \nMALLOC_MEDIUM (reserved) 120.0M 1 reserved VM address space (unallocated)\nSTACK GUARD 56.1M 5 \nStack 10.1M 5 \nVM_ALLOCATE 1120K 16 \n__AUTH 1774K 148 \n__AUTH_CONST 9217K 295 \n__CTF 756 1 \n__DATA 8109K 284 \n__DATA_CONST 10.3M 297 \n__DATA_DIRTY 602K 101 \n__FONT_DATA 4K 1 \n__GLSLBUILTINS 5176K 1 \n__LINKEDIT 579.5M 6 \n__OBJC_CONST 1244K 124 \n__OBJC_RO 83.0M 1 \n__OBJC_RW 3168K 1 \n__TEXT 213.3M 313 \n__UNICODE 592K 1 \ndyld private memory 1024K 1 \nmapped file 149.6M 18 \nshared memory 848K 13 \n=========== ======= ======= \nTOTAL 1.4G 1719 \nTOTAL, minus reserved VM space 1.3G 1719 \n",
"legacyInfo" : {
"threadTriggered" : {
"queue" : "com.apple.main-thread"
}
},
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "5fc94383418129005b4e9ae0",
"factorPackIds" : {

  },
  "deploymentId" : 240000430
},
{
  "rolloutId" : "607844aa04477260f58a8077",
  "factorPackIds" : {
    "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"
  },
  "deploymentId" : 240000066
}

],
"experiments" : [

]
}
}

Model: Mac14,2, BootROM 7459.141.1, proc 8:4:4 processors, 16 GB, SMC
Graphics: Apple M2, Apple M2, Built-In
Display: Color LCD, spdisplays_2560x1664Retina, Main, MirrorOff, Online
Memory Module: LPDDR5
AirPort: Wi-Fi, wl0: Apr 6 2022 05:55:54 version 20.90.45.0.8.7.118 FWID 01-e7138ff2
Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB31Bus
USB Device: USB31Bus
Thunderbolt Bus: MacBook Air, Apple Inc.
Thunderbolt Bus: MacBook Air, Apple Inc.

PTT key

My keyboard has F13 to F24 keys but only F13-f15 are recognized.

Is it a desirable behavior ?

Handle airport frequencies that are not defined in the database

Some frequencies related to airports are not added in the AFV database by design, in this case, the client should create the frequency automatically with one transceiver set at the airport location.

Implementation suggested:

  • Load in memory an airport database (see this repo)
  • Add logic that if a station is not found, it needs to check if the ICAO exists in the airpot database, if it does, then it needs to create the frequency and change the client position to that airport location in afv_native
  • Upon adding the frequency, AFV native will use the client position

See #5

macOS blurry font in title bar

Software

  • Vector Audio version: 1.33.1
  • macOS Version: 12.3 (21E230)

Hardware

  • MacBook Air M1 (13-inch, 2022)

Blurry title bar text :
image
"Normal" title bar text in comparison :
image

Levelling

It seems like pilots with their mic settings set too high are much louder in Vector than AFV client. Is leveling planned?

[REQUEST] Show last received freq & callsign

Thanks for the software, works great!

It'd be very nice if we can see the latest received frequency & callsign somewhere in the UI just like with the official client. Especially for muted mics / rogue pilots it's very handy information to have.

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.