Skip to content

Commit d99d8a5

Browse files
committed
v1.0.10
1 parent 34dbbd6 commit d99d8a5

8 files changed

Lines changed: 282 additions & 271 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
All notable changes to this project are documented in this file.
44

5+
## [1.0.10] – 2025-12-21
6+
### Added
7+
- New low-CPU VU meter implementation.
8+
- GUI now shows whether a stream is connected.
9+
- GUI now indicates whether the audio output is ready.
10+
- GUI displays the number of buffer duplications (not audible).
11+
12+
### Improved
13+
- Audio thread priority increased to 40 for better real-time performance.
14+
- Buffer duplication during underruns optimized to further reduce audible artifacts.
15+
16+
517
## [1.0.9] – 2025-12-14
618
### Removed
719
- Removed silence handling for resynchronisation – no longer required.

bin/udp_player

100644100755
-64.3 KB
Binary file not shown.

source/udp_player

100644100755
-64.3 KB
Binary file not shown.

source/udp_player.ctps

Lines changed: 36 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
<IsVisibleTab Value="True"/>
2525
<EditorIndex Value="1"/>
2626
<WindowIndex Value="0"/>
27-
<TopLine Value="335"/>
28-
<CursorPos X="143" Y="341"/>
27+
<TopLine Value="133"/>
28+
<CursorPos X="23" Y="139"/>
2929
<UsageCount Value="200"/>
3030
<Loaded Value="True"/>
3131
<LoadedDesigner Value="True"/>
@@ -40,8 +40,8 @@
4040
<UnitName Value="Unit2"/>
4141
<EditorIndex Value="0"/>
4242
<WindowIndex Value="0"/>
43-
<TopLine Value="310"/>
44-
<CursorPos X="57" Y="277"/>
43+
<TopLine Value="256"/>
44+
<CursorPos X="2" Y="39"/>
4545
<UsageCount Value="200"/>
4646
<Loaded Value="True"/>
4747
<LoadedDesigner Value="True"/>
@@ -53,126 +53,113 @@
5353
<WindowIndex Value="0"/>
5454
<TopLine Value="3193"/>
5555
<CursorPos X="49" Y="3202"/>
56-
<UsageCount Value="10"/>
56+
<UsageCount Value="8"/>
5757
</Unit>
5858
</Units>
59-
<JumpHistory HistoryIndex="27">
59+
<JumpHistory HistoryIndex="22">
6060
<Position>
6161
<Filename Value="unit1.pas"/>
62-
<Caret Line="542" Column="37" TopLine="463"/>
62+
<Caret Line="261" Column="32" TopLine="254"/>
6363
</Position>
6464
<Position>
6565
<Filename Value="unit1.pas"/>
66-
<Caret Line="361" Column="7" TopLine="354"/>
66+
<Caret Line="267" Column="37" TopLine="259"/>
6767
</Position>
6868
<Position>
6969
<Filename Value="unit1.pas"/>
70-
<Caret Line="511" Column="2" TopLine="334"/>
70+
<Caret Line="119" Column="43" TopLine="114"/>
7171
</Position>
7272
<Position>
7373
<Filename Value="unit1.pas"/>
74-
<Caret Line="482" Column="35" TopLine="473"/>
74+
<Caret Line="134" Column="11" TopLine="125"/>
7575
</Position>
7676
<Position>
7777
<Filename Value="unit1.pas"/>
78-
<Caret Line="492" Column="51" TopLine="488"/>
78+
<Caret Line="258" Column="63" TopLine="250"/>
7979
</Position>
8080
<Position>
8181
<Filename Value="unit1.pas"/>
82-
<Caret Line="59" Column="50" TopLine="51"/>
82+
<Caret Line="261" Column="32" TopLine="253"/>
8383
</Position>
8484
<Position>
8585
<Filename Value="unit1.pas"/>
86-
<Caret Line="447" Column="9" TopLine="441"/>
86+
<Caret Line="267" Column="37" TopLine="259"/>
8787
</Position>
8888
<Position>
8989
<Filename Value="unit1.pas"/>
90-
<Caret Line="356" Column="2" TopLine="349"/>
90+
<Caret Line="119" Column="43" TopLine="114"/>
9191
</Position>
9292
<Position>
9393
<Filename Value="unit1.pas"/>
94-
<Caret Line="403" TopLine="396"/>
94+
<Caret Line="134" Column="11" TopLine="125"/>
9595
</Position>
9696
<Position>
9797
<Filename Value="unit1.pas"/>
98-
<Caret Line="499" TopLine="487"/>
98+
<Caret Line="258" Column="63" TopLine="250"/>
9999
</Position>
100100
<Position>
101101
<Filename Value="unit1.pas"/>
102-
<Caret Line="404" Column="38" TopLine="396"/>
102+
<Caret Line="261" Column="32" TopLine="253"/>
103103
</Position>
104104
<Position>
105105
<Filename Value="unit1.pas"/>
106-
<Caret Line="404" Column="6" TopLine="396"/>
106+
<Caret Line="266" Column="87" TopLine="254"/>
107107
</Position>
108108
<Position>
109109
<Filename Value="unit1.pas"/>
110-
<Caret Line="480" Column="45" TopLine="471"/>
110+
<Caret Line="262" Column="11" TopLine="260"/>
111111
</Position>
112112
<Position>
113113
<Filename Value="unit1.pas"/>
114-
<Caret Line="621" TopLine="605"/>
114+
<Caret Line="265" Column="46" TopLine="265"/>
115115
</Position>
116116
<Position>
117117
<Filename Value="unit1.pas"/>
118-
<Caret Line="120" Column="36" TopLine="109"/>
118+
<Caret Line="259" TopLine="253"/>
119119
</Position>
120120
<Position>
121121
<Filename Value="unit1.pas"/>
122-
<Caret Line="447" Column="23" TopLine="440"/>
122+
<Caret Line="258" TopLine="253"/>
123123
</Position>
124124
<Position>
125125
<Filename Value="unit1.pas"/>
126-
<Caret Line="448" Column="42" TopLine="440"/>
126+
<Caret Line="259" TopLine="253"/>
127127
</Position>
128128
<Position>
129129
<Filename Value="unit1.pas"/>
130-
<Caret Line="449" Column="42" TopLine="440"/>
130+
<Caret Line="258" TopLine="253"/>
131131
</Position>
132132
<Position>
133133
<Filename Value="unit1.pas"/>
134-
<Caret Line="490" Column="14" TopLine="476"/>
134+
<Caret Line="270" Column="53" TopLine="262"/>
135135
</Position>
136136
<Position>
137137
<Filename Value="unit1.pas"/>
138-
<Caret Line="491" Column="14" TopLine="477"/>
138+
<Caret Line="259" Column="40" TopLine="250"/>
139139
</Position>
140140
<Position>
141141
<Filename Value="unit1.pas"/>
142-
<Caret Line="493" Column="33" TopLine="479"/>
142+
<Caret Line="275" Column="40" TopLine="269"/>
143143
</Position>
144144
<Position>
145145
<Filename Value="unit1.pas"/>
146-
<Caret Line="494" Column="33" TopLine="480"/>
146+
<Caret Line="274" Column="40" TopLine="268"/>
147147
</Position>
148148
<Position>
149149
<Filename Value="unit1.pas"/>
150-
<Caret Line="498" Column="48" TopLine="489"/>
151-
</Position>
152-
<Position>
153-
<Filename Value="unit1.pas"/>
154-
<Caret Line="59" Column="11" TopLine="51"/>
155-
</Position>
156-
<Position>
157-
<Filename Value="unit1.pas"/>
158-
<Caret Line="405" Column="21" TopLine="392"/>
159-
</Position>
160-
<Position>
161-
<Filename Value="unit1.pas"/>
162-
<Caret Line="402" Column="64" TopLine="393"/>
163-
</Position>
164-
<Position>
165-
<Filename Value="unit1.pas"/>
166-
<Caret Line="461" Column="14" TopLine="457"/>
167-
</Position>
168-
<Position>
169-
<Filename Value="unit1.pas"/>
170-
<Caret Line="362" Column="25" TopLine="349"/>
150+
<Caret Line="273" Column="40" TopLine="267"/>
171151
</Position>
172152
</JumpHistory>
173153
<RunParams>
174154
<FormatVersion Value="2"/>
175155
<Modes ActiveMode=""/>
176156
</RunParams>
177157
</ProjectSession>
158+
<Debugging>
159+
<Watches>
160+
<Item>
161+
<Expression Value="300"/>
162+
</Item>
163+
</Watches>
164+
</Debugging>
178165
</CONFIG>

source/unit1.frm

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
object Form1: TForm1
22
Left = 242
3-
Height = 69
3+
Height = 99
44
Top = 158
55
Width = 401
66
Caption = 'UDP player'
7-
ClientHeight = 69
7+
ClientHeight = 99
88
ClientWidth = 401
99
Position = poDesktopCenter
1010
LCLVersion = '8.7'
1111
OnClose = FormClose
1212
OnCreate = FormCreate
1313
object Label1: TLabel
14-
Left = 188
14+
Left = 184
1515
Height = 23
16-
Top = 11
16+
Top = 8
1717
Width = 49
1818
Caption = 'Label1'
1919
end
2020
object Button1: TButton
2121
Left = 256
2222
Height = 25
23-
Top = 9
23+
Top = 8
2424
Width = 53
2525
Caption = 'close'
2626
TabOrder = 0
2727
OnClick = Button1Click
2828
end
2929
object Label2: TLabel
30-
Left = 10
30+
Left = 8
3131
Height = 23
32-
Top = 11
32+
Top = 8
3333
Width = 176
3434
Caption = 'in Alsa buffered samples:'
3535
end
3636
object SpeedButton1: TSpeedButton
3737
Left = 328
3838
Height = 25
39-
Top = 9
39+
Top = 8
4040
Width = 30
4141
Glyph.Data = {
4242
36090000424D3609000000000000360000002800000018000000180000000100
@@ -118,27 +118,45 @@ object Form1: TForm1
118118
ShowCaption = False
119119
OnClick = SpeedButton1Click
120120
end
121-
object ProgressBar1: TProgressBar
121+
object Label3: TLabel
122+
Left = 8
123+
Height = 23
124+
Top = 24
125+
Width = 134
126+
Caption = 'Buffer duplications:'
127+
end
128+
object Label4: TLabel
129+
Left = 184
130+
Height = 23
131+
Top = 24
132+
Width = 49
133+
Caption = 'Label4'
134+
end
135+
object Label5: TLabel
122136
Left = 8
123-
Height = 8
137+
Height = 23
124138
Top = 40
125-
Width = 387
126-
Color = clLime
127-
Max = 32768
128-
ParentColor = False
129-
TabOrder = 1
139+
Width = 185
140+
Caption = 'Audiostream disconnected'
141+
end
142+
object Label6: TLabel
143+
Left = 214
144+
Height = 23
145+
Top = 40
146+
Width = 144
147+
Caption = 'Output device failure'
130148
end
131-
object ProgressBar2: TProgressBar
149+
object PaintBoxVU: TPaintBox
132150
Left = 8
133-
Height = 8
134-
Top = 48
151+
Height = 17
152+
Top = 72
135153
Width = 387
136-
Max = 32768
137-
TabOrder = 2
154+
OnPaint = PaintBoxVUPaint
138155
end
139156
object Timer1: TTimer
140-
Interval = 40
157+
Interval = 30
141158
OnTimer = Timer1Timer
142-
Left = 68
159+
Left = 336
160+
Top = 64
143161
end
144162
end

0 commit comments

Comments
 (0)