Skip to content

Commit d05affd

Browse files
authored
feat: ui & backend redesign
* feat: major rework * fix: use GITHUB_REF_NAME instead of GITHUB_REF * fix: remove quotes * fix: update .gitignore * fix: disable publish * fix: update artifact naming in build workflow * fix: update build script * fix: version is not set on windows runner * fix: version is not set on windows runner * feat: add release job to create GitHub release * fix: update to actions/download-artifact@v4 * fix: update artifact paths * fix: update build workflow * fix: disable arm build for windows * chore: cleanup build job * feat: implement sorting for streams table * feat: add sorting functionality for tags and info columns in streams table * chore: minor improvements * fix: formatting & electron-builder config
1 parent a2cfdb7 commit d05affd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+19333
-27020
lines changed

.doc/details.png

257 KB
Loading

.doc/settings.png

210 KB
Loading

.doc/streams.png

200 KB
Loading

.github/workflows/build.yml

+41-25
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,15 @@
1-
name: Build App
1+
name: Build and Release App
22

33
on:
44
push:
5-
branches: [ main ]
5+
tags:
6+
- "*"
67

78
jobs:
89
build:
910
strategy:
1011
matrix:
11-
include:
12-
- os: ubuntu-latest
13-
arch: x64
14-
platform: linux
15-
- os: ubuntu-latest
16-
arch: arm64
17-
platform: linux
18-
- os: windows-latest
19-
arch: x64
20-
platform: win32
21-
- os: macos-latest
22-
arch: x64
23-
platform: darwin
24-
- os: macos-latest
25-
arch: arm64
26-
platform: darwin
12+
os: [ubuntu-latest, windows-latest, macos-latest]
2713

2814
runs-on: ${{ matrix.os }}
2915

@@ -34,19 +20,49 @@ jobs:
3420
- name: Setup Node.js
3521
uses: actions/setup-node@v4
3622
with:
37-
node-version: '22'
23+
node-version: "22"
24+
25+
- name: Set version
26+
run: npm version ${{ github.ref_name }} --no-git-tag-version
3827

3928
- name: Install Dependencies
4029
run: npm install
4130

42-
- name: Build App
43-
run: npx electron-rebuild --arch=${{ matrix.arch }}
31+
- name: Build Frontend
32+
run: npm run build
4433

45-
- name: Build App
46-
run: npx electron-packager . AES67 --out=release-builds --icon=./assets/icon --arch=${{ matrix.arch }} --platform=${{ matrix.platform }}
34+
- name: Package App
35+
run: npx electron-builder --publish never
4736

4837
- name: Upload Artifacts
4938
uses: actions/upload-artifact@v4
5039
with:
51-
name: AES67-${{ matrix.platform }}-${{ matrix.arch }}
52-
path: release-builds/AES67-${{ matrix.platform }}-${{ matrix.arch }}
40+
name: Artifacts-${{ runner.os }}
41+
path: |
42+
release-builds/*.msi
43+
release-builds/*.zip
44+
release-builds/*.deb
45+
release-builds/*.rpm
46+
release-builds/*.dmg
47+
48+
release:
49+
needs: build
50+
runs-on: ubuntu-latest
51+
steps:
52+
- name: Download All Artifacts
53+
uses: actions/download-artifact@v4
54+
with:
55+
path: artifacts
56+
57+
- name: Create GitHub Release
58+
id: create_release
59+
uses: softprops/action-gh-release@v1
60+
with:
61+
name: Stream Monitor ${{ github.ref_name }}
62+
draft: true
63+
files: |
64+
artifacts/**/*.msi
65+
artifacts/**/*.zip
66+
artifacts/**/*.deb
67+
artifacts/**/*.rpm
68+
artifacts/**/*.dmg

.gitignore

+22-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
1-
AES67-darwin-x64/
2-
AES67-win32-x64/
3-
release-builds/
4-
node_modules/
5-
package-lock.json
61
.DS_Store
2+
node_modules
3+
/dist
4+
release-builds
5+
6+
# local env files
7+
.env.local
8+
.env.*.local
9+
10+
# Log files
11+
npm-debug.log*
12+
yarn-debug.log*
13+
yarn-error.log*
14+
pnpm-debug.log*
15+
16+
# Editor directories and files
17+
.idea
18+
.vscode
19+
*.suo
20+
*.ntvs*
21+
*.njsproj
22+
*.sln
23+
*.sw?

README.md

+38-28
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,57 @@
1-
# AES67 Stream Monitor
2-
Cross plattform AES67 monitoring app. The app was primarily tested in a hybrid Dante/AES67 environment. Features include:
3-
* Auto discovery of streams via Session Announcement Protocol and manually adding streams by pasting SDP data
4-
* Filter and sort streams
5-
* listen to streams by selecting which channels you want to listen to (Stereo and Mono supported)
6-
* wide format support: 44100Hz, 48000Hz and 96000Hz (and more) if the soundcard supports it, L16 and L24 PCM with up to 64 channels and all packet times according to AES67 spec are supported
7-
* Settings for Network interface, audio device, buffering for RTP and more
1+
# Stream Monitor
2+
3+
Cross plattform Audio over IP monitoring app. The app was primarily tested in a hybrid Dante/AES67 environment. Features include:
4+
5+
- Auto discovery of streams via Session Announcement Protocol and manually adding streams by pasting SDP data
6+
- Filter and sort streams
7+
- listen to streams by selecting which channels you want to listen to (Stereo and Mono supported)
8+
- wide format support: 44100Hz, 48000Hz and 96000Hz (and more) if the soundcard supports it, L16 and L24 PCM with up to 64 channels and all packet times according to AES67 spec are supported
9+
- Settings for Network interface, audio device, buffering for RTP and more
810

911
Here are some screenshots of how the app looks:
10-
![Screenshot](doc/screenshot.png "Screenshot")
11-
![Screenshot](doc/details.png "Screenshot details")
12-
![Screenshot](doc/settings.png "Screenshot settings")
12+
![Screenshot](.doc/streams.png "Screenshot")
13+
![Screenshot](.doc/details.png "Screenshot details")
14+
![Screenshot](.doc/settings.png "Screenshot settings")
1315

1416
## Installation
17+
1518
```
1619
git clone https://github.com/philhartung/aes67-monitor.git
1720
cd aes67-monitor
1821
npm install
1922
```
20-
The app should then be installed. Audify (audio backend used) prebuilds are available for most major platforms and Node versions. If you need to build Audify from source, see https://github.com/almogh52/audify#requirements-for-source-build.
23+
24+
The app should then be installed. Audify (audio backend used) prebuilds are available for most major platforms and Node versions. If you need to build Audify from source, see https://github.com/almogh52/audify#requirements-for-source-build.
2125

2226
After installation you can start the app with `npm start`.
2327

2428
## Building
29+
2530
To build a binary for your system, first install the app and then run:
31+
2632
```
2733
npm run build
2834
```
35+
2936
This will create a folder for your platform and CPU architecture, containing the binary.
3037

31-
## Status
32-
This app is still in early development. Some things that need to be reworked before a more stable release include, but are not limited to:
33-
* ~~rewrite RTP audio backend to support more audio formats (it is currently limited to 48000Hz L24 at 48 samples/packet and quite buggy, also add the option for buffering)~~ done
34-
* ~~rewrite SDP module and SAP backend~~ done
35-
* ~~proper support for settings~~ done
36-
* make settings persistent between restarts
37-
* needs a lot more testing
38-
39-
Also I would like to add more features such as:
40-
* dBFS and LUFS metering
41-
* ~~possibility to add streams from raw sdp~~ done
42-
* RTP packet monitoring (like seqnum, timestamp, etc)
43-
* ~~make the table sortable~~ done
44-
45-
46-
## License and copyright notice
47-
This repository contains code under the MIT License from [twbs/bootstrap](https://github.com/twbs/bootstrap).
38+
## Development
39+
40+
### Compiles and hot-reloads for development
41+
42+
```
43+
npm run serve
44+
```
45+
46+
### Compiles and start electron for development
47+
48+
```
49+
npm start
50+
```
51+
52+
### Lints and fixes files
53+
54+
```
55+
npm run lint
56+
npm run format
57+
```

assets/icon.icns

-38.5 KB
Binary file not shown.

assets/icon.ico

-168 KB
Binary file not shown.

assets/icon.png

-20 KB
Binary file not shown.

babel.config.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module.exports = {
2+
presets: ["@vue/cli-plugin-babel/preset"],
3+
};

css/app.css

-115
This file was deleted.

0 commit comments

Comments
 (0)