@jjlmoya/utils-hardware 1.28.0 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +3 -1
- package/src/entries.ts +7 -1
- package/src/index.ts +2 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +1 -1
- package/src/tool/mouseJitterAngleSnappingTest/bibliography.astro +14 -0
- package/src/tool/mouseJitterAngleSnappingTest/bibliography.ts +16 -0
- package/src/tool/mouseJitterAngleSnappingTest/component.astro +110 -0
- package/src/tool/mouseJitterAngleSnappingTest/entry.ts +29 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/de.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/en.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/es.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/fr.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/id.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/it.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/ja.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/ko.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/nl.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/pl.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/pt.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/ru.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/sv.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/tr.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/i18n/zh.ts +289 -0
- package/src/tool/mouseJitterAngleSnappingTest/index.ts +9 -0
- package/src/tool/mouseJitterAngleSnappingTest/logic.ts +245 -0
- package/src/tool/mouseJitterAngleSnappingTest/model.ts +38 -0
- package/src/tool/mouseJitterAngleSnappingTest/mouse-jitter-angle-snapping-test.css +412 -0
- package/src/tool/mouseJitterAngleSnappingTest/render.ts +48 -0
- package/src/tool/mouseJitterAngleSnappingTest/seo.astro +15 -0
- package/src/tool/mouseJitterAngleSnappingTest/ui.ts +29 -0
- package/src/tool/subwooferCrossoverTest/bibliography.astro +14 -0
- package/src/tool/subwooferCrossoverTest/bibliography.ts +16 -0
- package/src/tool/subwooferCrossoverTest/component.astro +253 -0
- package/src/tool/subwooferCrossoverTest/entry.ts +29 -0
- package/src/tool/subwooferCrossoverTest/i18n/de.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/en.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/es.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/fr.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/id.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/it.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/ja.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/ko.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/nl.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/pl.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/pt.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/ru.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/sv.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/tr.ts +188 -0
- package/src/tool/subwooferCrossoverTest/i18n/zh.ts +188 -0
- package/src/tool/subwooferCrossoverTest/index.ts +11 -0
- package/src/tool/subwooferCrossoverTest/logic.ts +30 -0
- package/src/tool/subwooferCrossoverTest/seo.astro +15 -0
- package/src/tool/subwooferCrossoverTest/subwoofer-crossover-test.css +282 -0
- package/src/tool/subwooferCrossoverTest/ui.ts +20 -0
- package/src/tools.ts +3 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SubwooferCrossoverTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'subwoofer-crossover-testi-online';
|
|
7
|
+
const title = 'Subwoofer Crossover Testi';
|
|
8
|
+
const description =
|
|
9
|
+
'Tarayıcınızda 200 Hz\'den 10 Hz\'e sinüs taraması yaparak subwoofer\'ınızın nerede zayıfladığını, kesildiğini veya ana hoparlörlere geçiş yaptığını bulun.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Bir subwoofer crossover testi neyi ölçer?',
|
|
14
|
+
answer:
|
|
15
|
+
'Ana hoparlörleriniz ile subwoofer arasında basın sürekli olarak duyulmadığı noktayı belirlemenize yardımcı olur. Bir boşluk, ani seviye değişikliği veya eksik bir aralık; yanlış crossover frekansına, faz sorununa, oda iptaline veya subwoofer sınırına işaret edebilir.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Bu test neden 200 Hz\'den 10 Hz\'e tarama yapar?',
|
|
19
|
+
answer:
|
|
20
|
+
'Çoğu ev sineması crossover\'ı 60 Hz ile 120 Hz arasında bulunurken, birçok kompakt hoparlör bu aralığın üstünde veya altında çıkış kaybetmeye başlar. 200 Hz\'den tarama yapmak, ton derin sub-basa ulaşmadan önce hoparlör-subwoofer geçişini duymayı kolaylaştırır.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Bu çevrimiçi subwoofer bas testi hoparlörlere zarar verebilir mi?',
|
|
24
|
+
answer:
|
|
25
|
+
'Evet, yüksek ses seviyesinde çok düşük frekanslar küçük hoparlörleri aşırı yükleyebilir veya bir subwoofer\'ı zorlayabilir. Düşük sesle başlayın, güçlendirilmiş bas modlarından kaçının ve takırtı, vuruntu veya mekanik zorlanma duyarsanız hemen durdurun.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'İşaretlenen düşüş frekansı, kullanmam gereken tam crossover ayarı mıdır?',
|
|
29
|
+
answer:
|
|
30
|
+
'Hayır. Bunu bir laboratuvar ölçümü olarak değil, bir dinleme ipucu olarak değerlendirin. En iyi crossover ayarı ayrıca hoparlör özelliklerine, oda yerleşimine, faza, mesafe düzeltmesine ve kalibrasyon hedefine bağlıdır.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: 'Güvenli bir dinleme seviyesi ayarlayın',
|
|
37
|
+
text: 'Önce sistem sesini kısın. Tarama, üretilmiş bir sinüs dalgası kullanır, bu nedenle tarayıcı sesi mütevazı görünse bile bas yoğunlaşabilir.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '200 Hz - 10 Hz taramasını başlatın',
|
|
41
|
+
text: 'Taramayı Başlat düğmesine basın ve normal oturma yerinizden dinleyin. Ton, subwoofer\'ların, ana hoparlörlerin ve oda akustiğinin örtüştüğü bas aralığında sabit bir şekilde hareket eder.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Düşüşü veya geçişi dinleyin',
|
|
45
|
+
text: 'Basın zayıfladığı, kaybolduğu, konum değiştirdiği veya subwoofer ile ana hoparlörler arasında dengesiz duyulduğu ana dikkat edin.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Frekansı işaretleyin',
|
|
49
|
+
text: 'İlk net sorun noktasında Düşüşü İşaretle düğmesine basın. Bu frekansı crossover, faz, yerleşim veya oda düzeltmesini ayarlamak için bir ipucu olarak kullanın.',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step, index) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
position: index + 1,
|
|
71
|
+
name: step.name,
|
|
72
|
+
text: step.text,
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
+
'@context': 'https://schema.org',
|
|
78
|
+
'@type': 'SoftwareApplication',
|
|
79
|
+
name: title,
|
|
80
|
+
description,
|
|
81
|
+
applicationCategory: 'UtilityApplication',
|
|
82
|
+
operatingSystem: 'All',
|
|
83
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
+
inLanguage: 'tr',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<SubwooferCrossoverTestUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faq: faqData,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
bibliography,
|
|
95
|
+
seo: [
|
|
96
|
+
{ type: 'title', text: 'Hoparlörleriniz Ve Subwoofer Arasındaki Bas Boşluğunu Bulun', level: 2 },
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Bir subwoofer, köşede ayrı bir kutu gibi duyulmamalıdır. Notalar ana hoparlörlerinizden sub\'a geçerken bas eşit kalmalıdır. Bu test <strong>200 Hz\'den 10 Hz\'e</strong> tarama yapar, böylece geçişin zayıf, gümbürtülü, konumlandırılabilir veya sessiz hale geldiği tam bölgeyi duyabilirsiniz.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'table',
|
|
103
|
+
headers: ['Ne duyuyorsunuz', 'Genellikle ne anlama gelir', 'İlk ne denenmeli'],
|
|
104
|
+
rows: [
|
|
105
|
+
['Bas 70-100 Hz civarında kaybolur', 'Subwoofer ve hoparlörler crossover yakınında birbirini iptal ediyor olabilir.', 'Fazı ters çevirin, mesafe/gecikmeyi ayarlayın, ardından taramayı tekrarlayın.'],
|
|
106
|
+
['Bas dar bir bantta gümbürtülü hale gelir', 'Oda modu veya hoparlörler ile subwoofer arasında çok fazla örtüşme.', 'Crossover\'ı biraz düşürün veya subwoofer\'ı/dinleme pozisyonunu hareket ettirin.'],
|
|
107
|
+
['Bas subwoofer\'ın konumundan geliyor gibi', 'Crossover çok yüksek veya subwoofer seviyesi çok yüksek olabilir.', '80 Hz veya daha düşüğünü deneyin ve subwoofer kazancını azaltın.'],
|
|
108
|
+
['Derin bas 30-40 Hz altında kaybolur', 'Birçok sub için normal uzatma sınırı, özellikle kompakt modellerde.', 'Fiziksel olabilecek bir sorunu kovalamadan önce subwoofer özelliklerini kontrol edin.'],
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Düşüş Frekansı Size Ne Söyler', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'diagnostic',
|
|
114
|
+
variant: 'info',
|
|
115
|
+
title: 'İşaretlenmiş frekansı ayar ipucu olarak kullanın',
|
|
116
|
+
badge: 'Dinleme ipuçları',
|
|
117
|
+
html: '<p>İşaretlenen nokta AVR crossover\'ınıza yakınsa, sorun muhtemelen entegrasyondur: faz, mesafe, polarite, seviye veya filtrelerin eğimi. İşaretlenen nokta çok daha düşükse, subwoofer\'ın çıkış sınırına ulaştığını duyuyor olabilirsiniz. Başınızı hareket ettirdiğinizde sorun çok değişiyorsa, oda sonuca hakimdir.</p>',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Yaygın Crossover Aralıkları',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'table',
|
|
126
|
+
headers: ['Hoparlör tipi', 'Tipik crossover başlangıç noktası', 'Neden'],
|
|
127
|
+
rows: [
|
|
128
|
+
['Küçük uydular', '100-150 Hz', 'Küçük kabinler genellikle sinema seviyelerinde temiz üst bas çalamaz.'],
|
|
129
|
+
['Kitaplık hoparlörleri', '70-100 Hz', 'Genellikle sub\'ı konumlandırılabilir hale getirmeden temiz bir geçiş için yeterli bas.'],
|
|
130
|
+
['Kule hoparlörler', '50-80 Hz', 'Daha büyük woofer\'lar daha fazla orta bas işleyebilir, ancak oda yine de subwoofer bas yönetimini tercih edebilir.'],
|
|
131
|
+
['THX tarzı kurulum', '80 Hz', 'Birçok sistem için iyi çalışan ve derin bası sub\'a yönlendiren pratik bir varsayılan değer.'],
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
{ type: 'title', text: 'Crossover Sorunu Mu Oda Sorunu Mu?', level: 3 },
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: 'Crossover veya faz sorunu',
|
|
141
|
+
description: 'Zayıf nokta crossover frekansı yakınında görünür ve faz, polarite, mesafe veya crossover ayarını değiştirdikten sonra iyileşir.',
|
|
142
|
+
points: ['Genellikle aynı koltuktan tekrarlanabilir.', 'Çoğunlukla 60-120 Hz civarında merkezlenir.'],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
title: 'Oda iptali',
|
|
146
|
+
description: 'Zayıf nokta, başınızı hareket ettirdiğinizde, koltuk değiştirdiğinizde veya subwoofer\'ı kısa bir mesafe kaydırdığınızda önemli ölçüde değişir.',
|
|
147
|
+
points: ['Pozisyona çok bağlıdır.', 'Genellikle ayarlardan çok yerleşimle çözülür.'],
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
title: 'Testi çalıştırmanın en iyi yolu',
|
|
154
|
+
html: 'Gerçekten film izlediğiniz veya müzik dinlediğiniz yerde oturun. Subwoofer\'ın yanında durmayın. Kabinin yanında iyi ses veren bir crossover, kanepede hala bir boşluk bırakabilir.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'summary',
|
|
158
|
+
title: 'Taramadan sonra ne değiştirilmeli',
|
|
159
|
+
items: [
|
|
160
|
+
'Boşluk mevcut crossover\'a yakınsa, 10 Hz değişiklikler deneyin ve taramayı tekrarlayın.',
|
|
161
|
+
'Zayıf bant crossover yakınındaysa, subwoofer faz anahtarını veya gecikme ayarını deneyin.',
|
|
162
|
+
'Bas bir koltukta güçlenir ve diğerinde kaybolursa, tüm AVR ayarlarını değiştirmeden önce subwoofer\'ı hareket ettirin.',
|
|
163
|
+
'Yerleşim veya crossover değişikliklerinden sonra, alıcının yeni kurulumu ölçmesi için oda düzeltmesini yeniden çalıştırın.',
|
|
164
|
+
'İşaretlenmiş frekansı ayarlamaya rehberlik etmesi için kullanın, ardından müzik, filmler ve tanıdık bas hatlarıyla onaylayın.',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
ui: {
|
|
169
|
+
sweepLabel: 'Subwoofer düşük frekans taraması',
|
|
170
|
+
currentFrequency: 'Mevcut frekans',
|
|
171
|
+
targetFrequency: 'Hedef',
|
|
172
|
+
elapsed: 'Geçen süre',
|
|
173
|
+
statusReady: 'Düşük taramaya hazır',
|
|
174
|
+
statusRunning: 'Aşağı tarıyor',
|
|
175
|
+
statusStopped: 'Tarama durduruldu',
|
|
176
|
+
start: 'Taramayı başlat',
|
|
177
|
+
stop: 'Taramayı durdur',
|
|
178
|
+
markDropout: 'Düşüşü işaretle',
|
|
179
|
+
reset: 'Sıfırla',
|
|
180
|
+
volume: 'Çıkış seviyesi',
|
|
181
|
+
duration: 'Tarama süresi',
|
|
182
|
+
safeStart: 'Düşük sesle başlayın, ardından basın duyulması zorlaştığı ilk frekansı işaretleyin.',
|
|
183
|
+
roomNote: 'Oda konumu ve faz, sonucu önemli ölçüde değiştirebilir.',
|
|
184
|
+
dropoutLabel: 'İşaretlenmiş nokta',
|
|
185
|
+
dropoutEmpty: 'Henüz işaretlenmedi',
|
|
186
|
+
crossoverEstimate: 'Tahmini düşüş noktası',
|
|
187
|
+
},
|
|
188
|
+
};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { SubwooferCrossoverTestUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'subwoofer-crossover-test';
|
|
7
|
+
const title = '低音炮分频测试';
|
|
8
|
+
const description =
|
|
9
|
+
'在浏览器中运行从200Hz到10Hz的正弦波扫描,找到低音炮衰减、中断或交接给主音箱的位置。';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: '低音炮分频测试测量什么?',
|
|
14
|
+
answer:
|
|
15
|
+
'它帮助您听到主音箱和低音炮之间低音不再连续的点。间隙、突然的电平变化或缺失的频段可能表明分频频率不正确、相位问题、房间抵消或低音炮的极限。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: '为什么这个测试从200Hz向下扫描到10Hz?',
|
|
19
|
+
answer:
|
|
20
|
+
'大多数家庭影院分频点设置在60Hz到120Hz之间,而许多紧凑型音箱在此范围之上或之下开始失去输出。从200Hz开始扫描,可以在音调到达深沉次低音之前轻松听到音箱到低音炮的交接。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '这个在线低音炮低音测试会损坏音箱吗?',
|
|
24
|
+
answer:
|
|
25
|
+
'是的,高音量下的极低频率可能会使小型音箱过载或给低音炮带来压力。从低音量开始,避免增强的低音模式,如果听到嘎嘎声、敲击声或机械压力声,请立即停止。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '标记的衰减频率是我应该使用的确切分频设置吗?',
|
|
29
|
+
answer:
|
|
30
|
+
'不是。请将其视为听力线索,而不是实验室测量。最佳分频设置还取决于音箱规格、房间布置、相位、距离校正和校准目标。',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: '设置安全的聆听音量',
|
|
37
|
+
text: '首先降低系统音量。扫描使用生成的正弦波,因此即使浏览器音量看起来适中,低音也可能变得强烈。',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '启动200Hz至10Hz扫描',
|
|
41
|
+
text: '按下开始扫描,从您通常的座位聆听。音调稳定地穿过低音炮、主音箱和房间声学重叠的低音范围。',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: '聆听衰减或交接',
|
|
45
|
+
text: '注意低音变弱、消失、位置改变或在低音炮和主音箱之间听起来不均匀的时刻。',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: '标记频率',
|
|
49
|
+
text: '在第一个明显的问题点按下标记衰减。使用该频率作为调整分频、相位、摆放或房间校正的线索。',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step, index) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
position: index + 1,
|
|
71
|
+
name: step.name,
|
|
72
|
+
text: step.text,
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
+
'@context': 'https://schema.org',
|
|
78
|
+
'@type': 'SoftwareApplication',
|
|
79
|
+
name: title,
|
|
80
|
+
description,
|
|
81
|
+
applicationCategory: 'UtilityApplication',
|
|
82
|
+
operatingSystem: 'All',
|
|
83
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
+
inLanguage: 'zh',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<SubwooferCrossoverTestUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faq: faqData,
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
bibliography,
|
|
95
|
+
seo: [
|
|
96
|
+
{ type: 'title', text: '找到音箱与低音炮之间的低音间隙', level: 2 },
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: '低音炮不应该听起来像角落里一个单独的箱子。当音符从主音箱移动到低音炮时,低音应保持均匀。此测试从<strong>200Hz扫描到10Hz</strong>,让您能够听到交接变得薄弱、轰鸣、可定位或无声的精确区域。',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'table',
|
|
103
|
+
headers: ['您听到的', '通常意味着什么', '首先尝试什么'],
|
|
104
|
+
rows: [
|
|
105
|
+
['低音在70-100Hz附近消失', '低音炮和音箱可能在分频点附近相互抵消。', '反转相位,调整距离/延迟,然后重复扫描。'],
|
|
106
|
+
['低音在一个窄带内轰鸣', '房间模式或音箱与低音炮之间重叠过多。', '稍微降低分频点,或移动低音炮/听音位置。'],
|
|
107
|
+
['低音似乎来自低音炮的位置', '分频点可能太高或低音炮电平太高。', '尝试80Hz或更低,并降低低音炮增益。'],
|
|
108
|
+
['深沉低音在30-40Hz以下衰减', '许多低音炮的正常延伸极限,尤其是紧凑型。', '在追查可能是物理性的问题之前,先检查低音炮规格。'],
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: '衰减频率告诉您什么', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'diagnostic',
|
|
114
|
+
variant: 'info',
|
|
115
|
+
title: '将标记的频率用作调校线索',
|
|
116
|
+
badge: '听力线索',
|
|
117
|
+
html: '<p>如果标记的点接近您的AVR分频点,问题可能在于整合:相位、距离、极性、电平或滤波器的斜率。如果标记的点低得多,您可能听到的是低音炮达到输出极限。如果移动头部时问题变化很大,则是房间主导了结果。</p>',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: '常见的分频范围',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'table',
|
|
126
|
+
headers: ['音箱类型', '典型的分频起始点', '原因'],
|
|
127
|
+
rows: [
|
|
128
|
+
['小型卫星音箱', '100-150 Hz', '小箱体通常无法在影院音量下播放干净的中上低音。'],
|
|
129
|
+
['书架式音箱', '70-100 Hz', '通常有足够的低音进行干净的交接,而不会使低音炮可定位。'],
|
|
130
|
+
['落地式音箱', '50-80 Hz', '较大的低音单元可以处理更多的中低音,但房间可能仍倾向于低音炮低音管理。'],
|
|
131
|
+
['THX风格设置', '80 Hz', '一个实用的默认值,适用于许多系统,并将深沉低音路由到低音炮。'],
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
{ type: 'title', text: '分频问题还是房间问题?', level: 3 },
|
|
135
|
+
{
|
|
136
|
+
type: 'comparative',
|
|
137
|
+
columns: 2,
|
|
138
|
+
items: [
|
|
139
|
+
{
|
|
140
|
+
title: '分频或相位问题',
|
|
141
|
+
description: '弱点出现在分频频率附近,并且在改变相位、极性、距离或分频设置后会改善。',
|
|
142
|
+
points: ['通常从同一座位可重复。', '通常集中在60-120Hz左右。'],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
title: '房间抵消',
|
|
146
|
+
description: '当您移动头部、换座位或将低音炮移动一小段距离时,弱点会发生剧烈变化。',
|
|
147
|
+
points: ['非常依赖位置。', '通常通过摆放而非设置来解决。'],
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'tip',
|
|
153
|
+
title: '运行测试的最佳方式',
|
|
154
|
+
html: '坐在您实际观看电影或听音乐的位置。不要站在低音炮旁边。在箱体旁边听起来不错的分频,在沙发上仍可能留下间隙。',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'summary',
|
|
158
|
+
title: '扫描后要更改什么',
|
|
159
|
+
items: [
|
|
160
|
+
'如果间隙接近当前分频点,尝试10Hz的调整并重复扫描。',
|
|
161
|
+
'如果弱带位于分频点附近,尝试低音炮的相位开关或延迟设置。',
|
|
162
|
+
'如果低音在一个座位上变强而在另一个座位上消失,在更改所有AVR设置之前先移动低音炮。',
|
|
163
|
+
'摆放或分频更改后,重新运行房间校正,以便接收器测量新设置。',
|
|
164
|
+
'使用标记的频率指导调校,然后用音乐、电影和熟悉的低音线确认。',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
ui: {
|
|
169
|
+
sweepLabel: '低音炮低频扫描',
|
|
170
|
+
currentFrequency: '当前频率',
|
|
171
|
+
targetFrequency: '目标',
|
|
172
|
+
elapsed: '已用时间',
|
|
173
|
+
statusReady: '准备低频扫描',
|
|
174
|
+
statusRunning: '正在向下扫描',
|
|
175
|
+
statusStopped: '扫描已停止',
|
|
176
|
+
start: '开始扫描',
|
|
177
|
+
stop: '停止扫描',
|
|
178
|
+
markDropout: '标记衰减',
|
|
179
|
+
reset: '重置',
|
|
180
|
+
volume: '输出电平',
|
|
181
|
+
duration: '扫描时长',
|
|
182
|
+
safeStart: '以低音量开始,然后标记低音变得难以听到的第一个频率。',
|
|
183
|
+
roomNote: '房间位置和相位可能会显著改变结果。',
|
|
184
|
+
dropoutLabel: '标记点',
|
|
185
|
+
dropoutEmpty: '尚未标记',
|
|
186
|
+
crossoverEstimate: '估计衰减点',
|
|
187
|
+
},
|
|
188
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../../types';
|
|
2
|
+
import { subwooferCrossoverTest } from './entry';
|
|
3
|
+
|
|
4
|
+
export * from './entry';
|
|
5
|
+
|
|
6
|
+
export const SUBWOOFER_CROSSOVER_TEST_TOOL: ToolDefinition = {
|
|
7
|
+
entry: subwooferCrossoverTest,
|
|
8
|
+
Component: () => import('./component.astro'),
|
|
9
|
+
SEOComponent: () => import('./seo.astro'),
|
|
10
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
11
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface SweepSnapshot {
|
|
2
|
+
frequencyHz: number;
|
|
3
|
+
progress: number;
|
|
4
|
+
elapsedSeconds: number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const SWEEP_START_HZ = 200;
|
|
8
|
+
export const SWEEP_END_HZ = 10;
|
|
9
|
+
|
|
10
|
+
export function getExponentialSweepFrequency(
|
|
11
|
+
elapsedSeconds: number,
|
|
12
|
+
durationSeconds: number,
|
|
13
|
+
startHz = SWEEP_START_HZ,
|
|
14
|
+
endHz = SWEEP_END_HZ,
|
|
15
|
+
): SweepSnapshot {
|
|
16
|
+
const safeDuration = Math.max(1, durationSeconds);
|
|
17
|
+
const progress = Math.min(1, Math.max(0, elapsedSeconds / safeDuration));
|
|
18
|
+
const frequencyHz = startHz * Math.pow(endHz / startHz, progress);
|
|
19
|
+
|
|
20
|
+
return {
|
|
21
|
+
frequencyHz,
|
|
22
|
+
progress,
|
|
23
|
+
elapsedSeconds: Math.max(0, elapsedSeconds),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function formatFrequency(value: number): string {
|
|
28
|
+
if (value >= 100) return `${Math.round(value)} Hz`;
|
|
29
|
+
return `${value.toFixed(1)} Hz`;
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { subwooferCrossoverTest } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'en' } = Astro.props;
|
|
11
|
+
const content = await subwooferCrossoverTest.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|