ttg73ml commited on
Commit
363272d
·
verified ·
1 Parent(s): d3b6483

Upload fake_audio_cutter_demo.txt

Browse files
Files changed (1) hide show
  1. fake_audio_cutter_demo.txt +179 -0
fake_audio_cutter_demo.txt ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+
3
+ فائل انفارمیشن بیج اور کلوز کنٹرول | Audio Info Badge & Close Button
4
+ مقصد اور کام: جیسے ہی کوئی آڈیو فائل اپلوڈ یا لوڈ ہوتی ہے، سب سے اوپر یہ بیج نمودار ہوتا ہے۔ اس کے بائیں جانب میوزک کا ویکٹر آئیکن اور ساتھ آڈیو کا نام ظاہر ہوتا ہے۔ فائل کے نام کے ساتھ آڈیو کا فارمیٹ اور سیمپل ریٹ (جیسے 24kHz Mono WAV) دکھائی دیتا ہے۔
5
+ کلوز بٹن (Close 'X' Icon): بیج کے دائیں کونے پر ایک گول 'X' کراس بٹن ہوتا ہے۔
6
+ تکنیکی منطق (Behavior & Logic): اس کراس بٹن پر کلک کرنے سے موجودہ آڈیو فوری طور پر میموری سے ان لوڈ ہو جاتی ہے، پلیئر رک جاتا ہے، تمام ٹیمپریری آبجیکٹ یو آر ایل (Blob URLs) میموری سے خارج (Revoke) کر دیے جاتے ہیں، اور ویوفارم کارڈ غائب ہو کر اصل ڈراپ زون حالت میں واپس چلا جاتا ہے۔
7
+ متحرک ویوفارم کینوس اور پلے ہیڈ | Waveform Canvas & Playhead Engine
8
+ مقصد اور کام: یہ اسٹوڈیو کا مرکزی ویژول ٹریک ہے۔ ایچ ٹی ایم ایل کینوس (HTML5 Canvas) کے ذریعے آڈیو کے ایمپلیٹیوڈ ڈیٹا کی بنیاد پر خوبصورت عمودی بارز بنتی ہیں جن کے کونے گول (Rounded) ہوتے ہیں اور درمیان میں ایک باریک سنٹرل بیس لائن ہوتی ہے۔
9
+ پلے ہیڈ (Playhead Indicator): ویوفارم کے اوپر ایک باریک نیلی لکیر لائیو حرکت کرتی ہے جو آڈیو کے موجودہ پلے بیک ٹائم کو فیصد کے حساب سے ظاہر کرتی ہے۔
10
+ اسکرول فرینڈلی ٹچ سسٹم: ٹریک پر خاص طور پر touch-action: pan-y لاگو ہوتا ہے جس کی بدولت موبائل اور ٹچ اسکرین پر اوپر نیچے اسکرولنگ بغیر کسی رکاوٹ کے کام کرتی ہے اور ویوفارم پر اسکرول کرنے سے ٹچ بلاک نہیں ہوتا۔
11
+ سیکنگ (Direct Waveform Seeking): صارف ویوفارم کے کسی بھی حصے پر کلک یا ٹیپ کر کے آڈیو کو فوری اس مقام پر لے جا سکتا ہے۔
12
+ ڈریگ ایبل سلیکشن اوورلے اور ہینڈلز | Draggable Selection Overlay & Trimming Handles
13
+ مقصد اور کام: جب آڈیو کو کٹ کرنا مقصود ہو تو ویوفارم کے اوپر ایک شفاف رنگین سلیکشن ونڈو ظاہر ہوتی ہے۔ اس ونڈو کے بائیں جانب اسٹارٹ ہینڈل اور دائیں جانب اینڈ ہینڈل موجود ہوتا ہے۔
14
+ ہینڈلز کی لچک: صارف شروع یا آخر کے ہینڈل کو ماؤس یا انگلی سے پکڑ کر آسانی سے دائیں بائیں سرکا سکتا ہے۔
15
+ پوری سلیکشن کا تبادلہ: دونوں ہینڈلز کے درمیانی حصے کو پکڑ کر پوری سلیکشن ونڈو کو ایک ساتھ آگے یا پیچھے سلائیڈ کیا جا سکتا ہے بغیر اس کے مجموعی دورانیے کو تبدیل کیے۔
16
+ سیلیکشن ڈیوریشن پل (Selection Duration Pill): ٹائم رو میں ایک سرخ یا نمایاں بیج نمودار ہوتا ہے جو ریئل ٹائم میں دکھاتا ہے کہ منتخب کردہ حصہ کتنے سیکنڈ یا منٹ کا ہے۔
17
+ پوائنٹر کیپچر (Pointer Capture Safety): ہینڈل ڈریگ کرتے وقت براؤزر ایونٹ کو کیپچر رکھتا ہے تاکہ اگر ماؤس کینوس سے باہر بھی نکل جائے تو ڈریگنگ نہ ٹوٹے اور نہ ہی کوئی ایرر آئے۔
18
+ اسپیکر آئیکن اور ٹوگل میوٹ بٹن | Speaker Icon & Toggle Mute Control
19
+ مقصد اور کام: یہ کنٹرول پلے بیک بار کے بائیں جانب واقع ہوتا ہے۔ اس کا مقصد ایک کلک پر آڈیو کی آواز کو بغیر روکے فوراً بند (Mute) یا بحال (Unmute) کرنا ہے۔
20
+ ویژول اسٹیٹ: جب آواز آن ہو تو اسپیکر سے نکلتی لہروں والا ویکٹر آئیکن ظاہر رہتا ہے۔ جب صارف اس پر کلک کرتا ہے تو اسپیکر کے اوپر کراس لکیر والا میوٹ آئیکن آ جاتا ہے۔
21
+ تکنیکی منطق: یہ سسٹم آڈیو عنصر کی پراپرٹی audio.muted کو الٹ دیتا ہے اور پلے بیک رفتار یا ٹائم اسٹیمپ کو چھیڑے بغیر آواز کو بند یا آن کر دیتا ہے۔
22
+ پلے بیک اسپیڈ بٹن | Playback Speed Cycle Pill
23
+ مقصد اور کام: یہ ایک بیضوی (Pill) بٹن ہے جس پر موجودہ پلے بیک رفتار درج ہوتی ہے، جیسے 1.0x۔
24
+ تکنیکی منطق اور سائیکل: جب صارف اس پر بار بار کلک کرتا ہے تو یہ ایک پیشگی ترتیب شدہ لسٹ کے مطابق رفتار کو خودکار تبدیل کرتا ہے:
25
+ نارمل رفتار: 1.0x
26
+ تیز رفتار: 1.25x
27
+ مزید تیز: 1.5x
28
+ دگنی رفتار: 2.0x
29
+ دھیمی رفتار: 0.75x
30
+ فائدہ: اس سے لمبی گفتگو یا حوالہ جاتی آواز کو تیزی سے سن کر مطلوبہ الفاظ یا خاموشیاں باآسانی تلاش کی جا سکتی ہیں۔
31
+ ریوائنڈ کنٹرول بٹن | Rewind Control Button (-3s / -5s)
32
+ مقصد اور کام: یہ بٹن آڈیو کو موجودہ پوزیشن سے چند سیکنڈ پیچھے لے جانے کے لیے استعمال ہوتا ہے (ڈیفالٹ تین یا پانچ سیکنڈ)۔ اس پر بائیں جانب مڑے ہوئے دوہرے تیروں کا ویکٹر آئیکن بنا ہوتا ہے۔
33
+ تکنیکی منطق: جب اس پر کلک کیا جاتا ہے تو آڈیو کے موجودہ ٹائم میں سے سیکنڈز منفی ہو جاتے ہیں۔ اگر کراپ موڈ فعال ہو تو یہ ریوائنڈ ہوتے وقت سلیکشن کے شروع والے نقطے سے پیچھے نہیں جاتا تاکہ آڈیو کٹ رینج کے اندر ہی رہے۔
34
+ آڈیو پلے اور پاز بٹن | Audio Play & Pause Master Button
35
+ مقصد اور کام: یہ کنٹرول پینل کا سب سے نمایاں گول بٹن ہے جس کے اندر خوبصورت گریڈینٹ رنگ موجود ہوتا ہے۔
36
+ ویژول ٹوگل: جب آڈیو رکی ہوئی ہو تو مثلث شکل کا پلے (Play) آئیکن نظر آتا ہے۔ جب آڈیو چل رہی ہو تو فوری طور پر دو عمودی سلاخوں والا پاز (Pause) آئیکن نمودار ہو جاتا ہے۔
37
+ کراپ رینج انٹیلی جنس: اگر کراپ موڈ آن ہو اور صارف پلے دبائے تو آڈیو منتخب کردہ رینج کے اسٹارٹ سے شروع ہوتی ہے۔ جیسے ہی پلے ہیڈ منتخب کردہ رینج کے آخری سرے تک پہنچتا ہے، آڈیو خودکار طور پر پاز ہو جاتی ہے اور پلے ہیڈ واپس سلیکشن کے آغاز پر سیٹ ہو جاتا ہے۔
38
+ فارورڈ کنٹرول بٹن | Forward Control Button (+3s / +5s)
39
+ مقصد اور کام: یہ بٹن آڈیو کو موجودہ پوزیشن سے چند سیکنڈ آگے لے جانے کے لیے استعمال ہوتا ہے۔ اس پر دائیں جانب رخ کیے ہوئے دوہرے تیروں کا ویکٹر آئیکن بنا ہوتا ہے۔
40
+ تکنیکی منطق: یہ موجودہ ٹائم میں سیکنڈز کا اضافہ کرتا ہے۔ اگر کراپ موڈ آن ہو تو یہ سلیکشن کے آخری پوائنٹ سے آگے نہیں بڑھتا، جس سے صارف آسانی سے مخصوص الفاظ کو بار بار سن کر تسلی کر سکتا ہے۔
41
+ کینچی والا کراپ موڈ بٹن | Scissors Crop Mode Toggle Button
42
+ مقصد اور کام: یہ ٹرمنگ اسٹوڈیو کا گیٹ وے بٹن ہے۔ اس پر ایک خوبصورت باریک کینچی (Scissors) کا ویکٹر آئیکن بنا ہوتا ہے۔
43
+ ویژول ایکٹیویشن: جب اس پر کلک کیا جاتا ہے تو یہ ایکٹو اسٹیٹ میں چلا جاتا ہے (سرخ یا نمایاں بیک گراؤنڈ کے ساتھ چمکتا ہے)۔
44
+ انٹرفیس کی تبدیلی: کینچی پر کلک ہوتے ہی:
45
+ نارمل ایکشن کنٹرولز وقتی طور پر چھپ جاتے ہیں۔
46
+ ویوفارم پر کراپ سلیکشن اوورلے اور دونوں سائیڈوں کے ہینڈلز روشن ہو جاتے ہیں۔
47
+ سلیکشن ڈیوریشن پل ظاہر ہو جاتی ہے۔
48
+ اس بٹن کے ساتھ فوری طور پر دو نئے ایکشن پلز (Trim اور Cancel) نمودار ہو جاتے ہیں۔
49
+ اگر کینچی کے بٹن کو دوبارہ دبایا جائے تو کراپ موڈ بند ہو جاتا ہے اور اسکرین نارمل حالت میں واپس آ جاتی ہے۔
50
+ ٹرم اور کینسل ایکشن پلز | Trim & Cancel Action Pills
51
+ ظہور کی شرط: یہ دونوں بٹنز صرف اسی وقت اسکرین پر آتے ہیں جب کینچی والے بٹن کے ذریعے کراپ موڈ آن کیا گیا ہو۔
52
+ ٹرم بٹن (Trim Selection Pill):
53
+ اس پر سبز رنگ اور چیک مارک (Checkmark) کا آئیکن ہوتا ہے۔
54
+ جیسے ہی صارف اس پر کلک کرتا ہے، میموری کے اندر موجود ویب آڈیو بفر سے سلیکٹ کیا گیا حصہ ریاضیاتی طور پر کاٹ کر ایک نیا 16-Bit PCM WAV آڈیو بنا دیا جاتا ہے۔
55
+ کٹی ہوئی آڈیو فوری طور پر ویوفارم پر لوڈ ہو جاتی ہے، نیا دورانیہ اپڈیٹ ہو جاتا ہے، کراپ موڈ بند ہو جاتا ہے، اور یہ نئی کٹی ہوئی آڈیو وائس کلوننگ یا ڈاؤنلوڈ کے لیے تیار ہو جاتی ہے۔
56
+ کینسل بٹن (Cancel Pill):
57
+ اس پر کراس کا آئیکن ہوتا ہے۔
58
+ اس پر کلک کرنے سے سلیکشن ونڈو ختم ہو جاتی ہے، کوئی آڈیو کٹ نہیں ہوتی، اور صارف واپس نارمل ویوفارم موڈ میں آ جاتا ہے۔
59
+ انڈو اور بحالی کا بٹن | Undo & Revert Trim Dynamic Button
60
+ ظہور کی شرط: یہ بٹن عام حالت میں بالکل پوشیدہ (Hidden) رہتا ہے۔ یہ صرف اور صرف اس وقت نمودار ہوتا ہے جب آڈیو کو کینچی کے ذریعے کامیابی سے ٹرم کر دیا گیا ہو۔
61
+ مقام اور بناوٹ: یہ کینچی والے بٹن کے عین بائیں جانب نمودار ہوتا ہے۔ اس پر گول گھومے ہوئے مڑے تیر کا ویکٹر آئیکن بنا ہوتا ہے۔
62
+ تکنیکی منطق: اگر صارف سے غلطی سے غلط حصہ کٹ جائے تو پریشان ہونے کی ضرورت نہیں۔ اس انڈو بٹن پر ایک کلک کرنے سے سسٹم اصل (اورینجیل) آڈیو کو فوری بحال کر دیتا ہے، نیا ویوفارم دوبارہ کھینچتا ہے، اور یہ بٹن خود بخود واپس غائب ہو جاتا ہے۔
63
+ آڈیو ڈاؤنلوڈ بٹن | Download Audio Direct Button
64
+ مقصد اور کام: پلے بیک پینل کے دائیں جانب تیر کا نشان نیچے کی طرف بنا ہوتا ہے جو ٹرے کے اندر اتر رہا ہوتا ہے۔
65
+ تکنیکی منطق: اس پر کلک کرتے ہی براؤزر میں کسی سرور کال کے بغیر، کلائنٹ سائیڈ پر بنی ہوئی موجودہ آڈیو فائل (خواہ وہ اوریجنل ہو یا کینچی سے ٹرم کی ہوئی ہو) ایک معیاری WAV فائل کے طور پر صارف کی ڈیوائس پر ڈاؤنلوڈ ہو جاتی ہے۔ ڈاؤنلوڈ ہونے والی فائل کا نام خودکار طور پر _trimmed.wav کے سابقے کے ساتھ محفوظ ہوتا ہے۔
66
+ لائٹ اور ڈارک موڈ مطابقت | Adaptive Contrast & Infinite Click Reliability
67
+ ڈارک موڈ ویژول: گہرے پس منظر پر لومینس پرپل ویوفارم، سفید ہینڈل بارز اور نیلا چمکدار پلے ہیڈ ظاہر ہوتا ہے۔
68
+ لائٹ موڈ ویژول: سفید پس منظر پر تمام فونٹ اور اعداد گہرے سیاہ/سلیٹ (#0f172a / #334155) رنگ میں تبدیل ہو جاتے ہیں تاکہ سفید پر ہلکا رنگ چھپ نہ جائے، اور ویوفارم بارز گہرے انڈیگو رنگ میں تبدیل ہو جاتی ہیں۔ تھیم بدلتے ہی ویوفارم بغیر پیج ریفریش کیے خود کو فوری نئے رنگ میں ری ڈرا کر لیتا ہے۔
69
+ لامحدود کلک برداشت (Infinite Click Stress Tolerance): تمام بٹنز میں ری اینٹرینسی تالے (Re-entrancy Locks) لگائے جاتے ہیں تاکہ اگر کوئی صارف ایک سیکنڈ میں درجنوں بار بٹن پر کلک کرے یا آن آف کرے تو نہ کوڈ اٹکے، نہ براؤزر کریش ہو، اور نہ ہی آڈیو بفر خراب ہو۔
70
+
71
+ --------------------------
72
+ جامع انٹرفیس اسٹرکچر ٹری | Universal Component & DOM Tree Structure
73
+
74
+ یہ اسٹوڈیو کا مکمل اسٹرکچرل اور ہائیرارکل (Hierarchical) خاکہ ہے جو ظاہر کرتا ہے کہ تمام ایچ ٹی ایم ایل عناصر، ڈریگ ایبل کنٹینرز، ٹائم لیبلز اور کنٹرول بٹنز کس طرح ایک دوسرے کے اندر ترتیب دیے گئے ہیں:
75
+
76
+ └── Waveform Card Master Container (.waveform-card)
77
+ │
78
+ ├── Top Badge & Information Row (.waveform-top-row)
79
+ │ └── File Information Chip (.waveform-badge)
80
+ │ ├── Music Note Icon (Vector SVG)
81
+ │ ├── File Name Label (#fileName)
82
+ │ ├── Audio Format Tag (#formatTag) [e.g. 24kHz Mono WAV]
83
+ │ └── Remove / Close Button (#closeBtn) [Vector SVG 'X']
84
+ │
85
+ ├── Waveform Track Canvas Box (.waveform-canvas-box) [touch-action: pan-y]
86
+ │ ├── High-DPI Waveform Canvas (#canvas) [Rounded Bars + Baseline]
87
+ │ │
88
+ │ ├── Draggable Selection Window (.waveform-selection-overlay)
89
+ │ │ ├── Start Drag Handle (.waveform-handle.start)
90
+ │ │ │ └── Handle Vertical Grab Bar (.waveform-handle-bar)
91
+ │ │ │
92
+ │ │ └── End Drag Handle (.waveform-handle.end)
93
+ │ │ └── Handle Vertical Grab Bar (.waveform-handle-bar)
94
+ │ │
95
+ │ └── Active Playhead Indicator (.wf-playhead) [Real-time Dynamic Left %]
96
+ │
97
+ ├── Time & Selection Status Row (.waveform-time-row)
98
+ │ ├── Current Playback Time (#currentTime) [00:00.0]
99
+ │ │
100
+ │ ├── Selection Duration Pill (.crop-duration-pill) [Appears in Crop Mode]
101
+ │ │ ├── Mini Scissors Icon (Vector SVG)
102
+ │ │ └── Selection Span Label (#cropDurationText)
103
+ │ │
104
+ │ └── Total Audio Duration (#totalDuration) [00:00.0]
105
+ │
106
+ └── Master Controls Bar (.waveform-controls)
107
+ │
108
+ ├── Left Group: Audio Properties (.ctrl-group)
109
+ │ ├── Toggle Mute Button (#volBtn)
110
+ │ │ ├── Volume High Icon (Vector SVG)
111
+ │ │ └── Volume Muted Icon (Vector SVG)
112
+ │ └── Playback Speed Pill (#speedBtn) [Cycles: 1.0x ➔ 1.25x ➔ 1.5x ➔ 2.0x ➔ 0.75x]
113
+ │
114
+ ├── Center Group: Transport Controls (.ctrl-group)
115
+ │ ├── Rewind Button (#rewindBtn) [-3s / -5s Jump Back]
116
+ │ │
117
+ │ ├── Master Play / Pause Button (#playBtn) [Primary Gradient Circle]
118
+ │ │ ├── Play Triangle Icon (Vector SVG)
119
+ │ │ └── Pause Dual Bars Icon (Vector SVG)
120
+ │ │
121
+ │ └── Forward Button (#forwardBtn) [+3s / +5s Jump Forward]
122
+ │
123
+ └── Right Group: Scissors Editing & Action Controls (.ctrl-group)
124
+ │
125
+ ├── Normal State Controls (#normalControls) [Active by Default]
126
+ │ ├── Undo / Revert Trim Button (#undoBtn) [Hidden until trimmed]
127
+ │ ├── Scissors Crop Mode Button (#cutBtn) [Scissors SVG]
128
+ │ └── Download Audio Button (#downloadBtn) [Download SVG]
129
+ │
130
+ └── Crop Active Action Group (#cropControls) [Active in Scissors Mode]
131
+ ├── Trim Selection Pill (#applyTrimBtn) [Checkmark SVG + 'Trim']
132
+ └── Cancel Crop Pill (#cancelTrimBtn) [Cross SVG + 'Cancel']
133
+
134
+ لائف سائیکل اور ڈیٹا فلو ٹری | Audio Lifecycle & Data Processing Flow Tree
135
+
136
+ یہ فلو ٹری واضح کرتا ہے کہ کس طرح ایک آڈیو کلائنٹ سائیڈ میموری میں ڈی کوڈ ہوتی ہے، ویوفارم لہروں میں تبدیل ہوتی ہے، اور کینچی کے ذریعے بغیر سرور کے کاٹی جاتی ہے:
137
+
138
+ [Audio Input Source] (File Upload / Drag & Drop / Recorded Blob)
139
+ │
140
+ ▼
141
+ [Web Audio API Engine] (AudioContext.decodeAudioData)
142
+ │
143
+ ├──► [Raw PCM Channel Data Extraction]
144
+ │ └──► [Canvas Waveform Calculation] (RMS / Peak Bars + Baseline Draw)
145
+ │
146
+ └──► [Audio Playback Element Binding]
147
+ ├──► [Playhead Sync Engine] (timeupdate ➔ percentage position)
148
+ └──► [Time Display Formatter] (Current Time / Total Duration)
149
+ │
150
+ ▼
151
+ [User Clicks Scissors Button ✂️]
152
+ │
153
+ ├──► Normal Controls Hidden (#normalControls ➔ display: none)
154
+ ├──► Crop Pills Shown (#cropControls ➔ display: flex)
155
+ ├──► Selection Overlay Rendered (with Start & End Handles)
156
+ └──► Live Pointer Listeners Active (Drag Start / Drag End / Move Box)
157
+ │
158
+ ▼
159
+ [User Clicks 'Trim Selection' Pill]
160
+ │
161
+ ├──► [In-Memory 16-Bit PCM WAV Slicing] (audioBufferToWavBlob)
162
+ │ ├── Start Frame = Math.floor(cropStart * sampleRate)
163
+ │ ├── End Frame = Math.floor(cropEnd * sampleRate)
164
+ │ └── RIFF/WAVE 44-byte Header + PCM Data Binary Assembly
165
+ │
166
+ ├──► [New Trimmed Blob Generation]
167
+ ├──► [Audio Player & Canvas Reloaded with Trimmed Audio]
168
+ ├──► [Undo Button (#undoBtn) Activated & Rendered Visible]
169
+ └──► [Crop Overlay Deactivated ➔ Normal Controls Restored]
170
+ │
171
+ ▼
172
+ [User Clicks 'Undo' Button (Optional Revert)]
173
+ │
174
+ ├──► Original Untrimmed Blob Restored to Player & Canvas
175
+ └──► Undo Button (#undoBtn) Hidden Automatically
176
+
177
+
178
+
179
+