@jjlmoya/utils-hardware 1.2.0 → 1.5.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 +2 -1
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +1 -1
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tool/batteryHealthEstimator/i18n/de.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/id.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/it.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ja.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ko.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/nl.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/pl.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/pt.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/ru.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/sv.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/tr.ts +158 -0
- package/src/tool/batteryHealthEstimator/i18n/zh.ts +158 -0
- package/src/tool/batteryHealthEstimator/index.ts +15 -7
- package/src/tool/deadPixelTest/i18n/de.ts +218 -0
- package/src/tool/deadPixelTest/i18n/id.ts +218 -0
- package/src/tool/deadPixelTest/i18n/it.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ja.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ko.ts +218 -0
- package/src/tool/deadPixelTest/i18n/nl.ts +218 -0
- package/src/tool/deadPixelTest/i18n/pl.ts +218 -0
- package/src/tool/deadPixelTest/i18n/pt.ts +218 -0
- package/src/tool/deadPixelTest/i18n/ru.ts +218 -0
- package/src/tool/deadPixelTest/i18n/sv.ts +218 -0
- package/src/tool/deadPixelTest/i18n/tr.ts +218 -0
- package/src/tool/deadPixelTest/i18n/zh.ts +217 -0
- package/src/tool/deadPixelTest/index.ts +15 -7
- package/src/tool/gamepadTest/i18n/de.ts +186 -0
- package/src/tool/gamepadTest/i18n/id.ts +186 -0
- package/src/tool/gamepadTest/i18n/it.ts +186 -0
- package/src/tool/gamepadTest/i18n/ja.ts +186 -0
- package/src/tool/gamepadTest/i18n/ko.ts +186 -0
- package/src/tool/gamepadTest/i18n/nl.ts +186 -0
- package/src/tool/gamepadTest/i18n/pl.ts +186 -0
- package/src/tool/gamepadTest/i18n/pt.ts +186 -0
- package/src/tool/gamepadTest/i18n/ru.ts +186 -0
- package/src/tool/gamepadTest/i18n/sv.ts +186 -0
- package/src/tool/gamepadTest/i18n/tr.ts +186 -0
- package/src/tool/gamepadTest/i18n/zh.ts +186 -0
- package/src/tool/gamepadTest/index.ts +15 -7
- package/src/tool/gamepadVibrationTester/i18n/de.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/id.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/it.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ja.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ko.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/nl.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/pl.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/pt.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/ru.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/sv.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/tr.ts +155 -0
- package/src/tool/gamepadVibrationTester/i18n/zh.ts +155 -0
- package/src/tool/gamepadVibrationTester/index.ts +15 -7
- package/src/tool/keyboardTest/i18n/de.ts +146 -0
- package/src/tool/keyboardTest/i18n/id.ts +146 -0
- package/src/tool/keyboardTest/i18n/it.ts +146 -0
- package/src/tool/keyboardTest/i18n/ja.ts +146 -0
- package/src/tool/keyboardTest/i18n/ko.ts +146 -0
- package/src/tool/keyboardTest/i18n/nl.ts +146 -0
- package/src/tool/keyboardTest/i18n/pl.ts +146 -0
- package/src/tool/keyboardTest/i18n/pt.ts +146 -0
- package/src/tool/keyboardTest/i18n/ru.ts +146 -0
- package/src/tool/keyboardTest/i18n/sv.ts +146 -0
- package/src/tool/keyboardTest/i18n/tr.ts +146 -0
- package/src/tool/keyboardTest/i18n/zh.ts +146 -0
- package/src/tool/keyboardTest/index.ts +15 -7
- package/src/tool/mousePollingTest/component.astro +1 -1
- package/src/tool/mousePollingTest/i18n/de.ts +135 -0
- package/src/tool/mousePollingTest/i18n/id.ts +135 -0
- package/src/tool/mousePollingTest/i18n/it.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ja.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ko.ts +135 -0
- package/src/tool/mousePollingTest/i18n/nl.ts +135 -0
- package/src/tool/mousePollingTest/i18n/pl.ts +135 -0
- package/src/tool/mousePollingTest/i18n/pt.ts +135 -0
- package/src/tool/mousePollingTest/i18n/ru.ts +135 -0
- package/src/tool/mousePollingTest/i18n/sv.ts +135 -0
- package/src/tool/mousePollingTest/i18n/tr.ts +135 -0
- package/src/tool/mousePollingTest/i18n/zh.ts +135 -0
- package/src/tool/mousePollingTest/index.ts +15 -7
- package/src/tool/mousePollingTest/logic/RatonManager.ts +90 -51
- package/src/tool/mousePollingTest/logic/StatisticalFilter.ts +17 -25
- package/src/tool/toneGenerator/i18n/de.ts +146 -0
- package/src/tool/toneGenerator/i18n/id.ts +146 -0
- package/src/tool/toneGenerator/i18n/it.ts +146 -0
- package/src/tool/toneGenerator/i18n/ja.ts +146 -0
- package/src/tool/toneGenerator/i18n/ko.ts +146 -0
- package/src/tool/toneGenerator/i18n/nl.ts +146 -0
- package/src/tool/toneGenerator/i18n/pl.ts +146 -0
- package/src/tool/toneGenerator/i18n/pt.ts +146 -0
- package/src/tool/toneGenerator/i18n/ru.ts +146 -0
- package/src/tool/toneGenerator/i18n/sv.ts +146 -0
- package/src/tool/toneGenerator/i18n/tr.ts +146 -0
- package/src/tool/toneGenerator/i18n/zh.ts +146 -0
- package/src/tool/toneGenerator/index.ts +15 -7
- package/src/types.ts +1 -1
- package/src/tool/mousePollingTest/worker/mouseWorker.ts +0 -50
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ToneGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generator-nada-frekuensi-online';
|
|
6
|
+
const title = 'Generator Nada dan Frekuensi Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Hasilkan gelombang sinus, kotak, segitiga, dan gigi gergaji. Uji speaker, headphone, atau subwoofer Anda dengan frekuensi dari 20Hz hingga 20kHz.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Untuk apa generator frekuensi digunakan?',
|
|
13
|
+
answer:
|
|
14
|
+
'Digunakan untuk menguji respons frekuensi speaker dan headphone, mendeteksi resonansi yang tidak diinginkan pada furnitur, menemukan celah dalam rentang pendengaran Anda, atau bahkan membantu meredakan tinnitus melalui terapi notch.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Apa perbedaan gelombang sinus versus gelombang kotak?',
|
|
18
|
+
answer:
|
|
19
|
+
'Gelombang sinus adalah nada murni tanpa harmonik (halus dan bulat). Gelombang kotak kaya akan harmonik ganjil dan terdengar jauh lebih agresif atau digital. Gelombang segitiga berada di antaranya, berguna untuk sintesis audio.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Bisakah saya merusak speaker saya dengan alat ini?',
|
|
23
|
+
answer:
|
|
24
|
+
'Ya, jika Anda menggunakan volume sangat tinggi pada frekuensi ekstrem (terutama bass di bawah 30Hz atau treble di atas 15kHz). Selalu mulai dengan volume sistem yang rendah dan tingkatkan secara bertahap.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Berapa rentang pendengaran manusia?',
|
|
28
|
+
answer:
|
|
29
|
+
'Secara teoritis 20Hz hingga 20.000Hz (20kHz). Namun, seiring bertambahnya usia, adalah normal jika kemampuan mendengar di atas 15kHz berkurang. Tes ini dapat membantu memverifikasi batas atas pribadi Anda.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Pilih jenis bentuk gelombang',
|
|
36
|
+
text: 'Pilih antara Sinus (murni), Kotak, Segitiga, atau Gigi Gergaji tergantung pada jenis pengujian yang ingin Anda lakukan.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Sesuaikan frekuensi',
|
|
40
|
+
text: 'Gerakkan penggeser untuk menavigasi spektrum yang dapat didengar. Gunakan pintasan 60Hz, 440Hz, atau 1kHz untuk mengakses frekuensi referensi dengan cepat.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Kontrol volume',
|
|
44
|
+
text: 'Pastikan volume speaker Anda rendah sebelum menekan Play. Anda dapat menyesuaikan gain langsung dari alat.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analisis respons',
|
|
48
|
+
text: 'Dengarkan kemungkinan distorsi atau saat-saat ketika suara menghilang. Ini akan menunjukkan batas fisik perangkat keras audio Anda.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'id',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referensi',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'MDN Web Docs — Web Audio API',
|
|
96
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'ISO 226:2023 — Equal-loudness contours',
|
|
100
|
+
url: 'https://www.iso.org/standard/83117.html',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Segala Hal Tentang Frekuensi dan Gelombang Suara', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Suara adalah fisika murni dalam gerakan. Alat ini memungkinkan Anda memanipulasi gelombang suara secara real time, dari bass terdalam yang dapat Anda rasakan di dada hingga nada tinggi ultrasonik yang hanya dapat dirasakan oleh hewan.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Rentang Pendengaran Manusia dan Presbikusis', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Telinga manusia yang sehat merasakan suara antara <strong>20Hz dan 20kHz</strong>. Seiring bertambahnya usia, batas atas menurun: kebanyakan orang dewasa di atas 50 tahun tidak dapat mendengar di atas 12kHz. Nada 17,4kHz, yang dikenal sebagai "mosquito tone", adalah tes klasik yang biasanya hanya bisa dilewati oleh remaja.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Jenis Gelombang dan Kegunaannya', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>Sinus:</strong> nada murni tanpa harmonik, digunakan dalam tes pendengaran medis dan kalibrasi instrumen. <strong>Kotak:</strong> kaya akan harmonik ganjil, terdengar seperti konsol 8-bit retro. <strong>Gigi Gergaji:</strong> mengandung semua harmonik, dasar dari synthesizer musik elektronik. <strong>Segitiga:</strong> titik tengah antara sinus dan kotak — lebih halus dari kotak tetapi dengan konten harmonik lebih banyak daripada sinus.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Pengujian Speaker dan Pembersihan Getaran', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Gelombang frekuensi rendah (biasanya <strong>165Hz</strong>) pada volume maksimum dengan bentuk kotak atau gigi gergaji memaksa diafragma speaker bergetar hebat, secara mekanis mengeluarkan tetesan air yang terjebak di kisi-kisi. Jangan memutar frekuensi yang sangat tinggi pada volume maksimum untuk waktu yang lama: meskipun Anda tidak dapat mendengarnya, energinya dapat merusak tweeter peralatan Anda.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Generator Audio',
|
|
129
|
+
title: 'Generator Nada',
|
|
130
|
+
description: 'Hasilkan frekuensi murni untuk pengujian audio.',
|
|
131
|
+
freqLabel: 'Frekuensi',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (Sub-bass)',
|
|
136
|
+
rangeMax: '20kHz (Ultrasonik)',
|
|
137
|
+
waveLabel: 'Bentuk Gelombang',
|
|
138
|
+
waveSine: 'Sinus',
|
|
139
|
+
waveSquare: 'Kotak',
|
|
140
|
+
waveSawtooth: 'Gigi Gergaji',
|
|
141
|
+
waveTriangle: 'Segitiga',
|
|
142
|
+
volLabel: 'Volume',
|
|
143
|
+
btnPlay: 'PUTAR NADA',
|
|
144
|
+
btnStop: 'BERHENTI',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ToneGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'generatore-toni-frequenza-online';
|
|
6
|
+
const title = 'Generatore di Toni e Frequenze Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Genera onde sinusoidali, quadre, triangolari e a dente di sega. Testa i tuoi altoparlanti, cuffie o subwoofer con frequenze da 20Hz a 20kHz.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'A cosa serve un generatore di frequenza?',
|
|
13
|
+
answer:
|
|
14
|
+
'Viene utilizzato per testare la risposta in frequenza di altoparlanti e cuffie, rilevare risonanze indesiderate nei mobili, trovare lacune nel proprio campo uditivo o persino aiutare a calmare l\'acufene attraverso la terapia notch.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: "Cos'è un'onda sinusoidale rispetto a un'onda quadra?",
|
|
18
|
+
answer:
|
|
19
|
+
"Un'onda sinusoidale è un tono puro senza armoniche (liscio e rotondo). Un'onda quadra è ricca di armoniche dispari e suona molto più aggressiva o digitale. L'onda triangolare si colloca nel mezzo, utile per la sintesi audio.",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Posso danneggiare i miei altoparlanti con questo strumento?',
|
|
23
|
+
answer:
|
|
24
|
+
'Sì, se utilizzi volumi molto alti a frequenze estreme (specialmente bassi sotto i 30Hz o acuti sopra i 15kHz). Inizia sempre con un volume di sistema basso e aumenta gradualmente.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Qual è il range uditivo umano?',
|
|
28
|
+
answer:
|
|
29
|
+
'Teoricamente da 20Hz a 20.000Hz (20kHz). Tuttavia, con l\'età è normale perdere la capacità di sentire sopra i 15kHz. Questo test può aiutarti a verificare il tuo limite superiore personale.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Seleziona il tipo di forma d\'onda',
|
|
36
|
+
text: 'Scegli tra Sinusoidale (pura), Quadra, Triangolare o Dente di sega a seconda del tipo di test che vuoi eseguire.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Regola la frequenza',
|
|
40
|
+
text: 'Muovi lo slider per navigare nello spettro udibile. Usa le scorciatoie da 60Hz, 440Hz o 1kHz per accedere rapidamente alle frequenze di riferimento.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Controlla il volume',
|
|
44
|
+
text: 'Assicurati che il volume dell\'altoparlante sia basso prima di premere Play. Puoi regolare il guadagno direttamente dallo strumento.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analizza la risposta',
|
|
48
|
+
text: 'Ascolta eventuali distorsioni o momenti in cui il suono scompare. Questo indicherà i limiti fisici del tuo hardware audio.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'it',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Domande Frequenti',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Riferimenti',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'MDN Web Docs — Web Audio API',
|
|
96
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'ISO 226:2023 — Equal-loudness contours',
|
|
100
|
+
url: 'https://www.iso.org/standard/83117.html',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: 'Tutto su Frequenze e Onde Sonore', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Il suono è pura fisica in movimento. Questo strumento ti permette di manipolare le onde sonore in tempo reale, dai bassi più profondi che puoi sentire nel petto agli alti ultrasonici che solo gli animali possono percepire.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Range Uditivo Umano e Presbiacusia', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Un orecchio umano sano percepisce suoni tra <strong>20Hz e 20kHz</strong>. Con l\'età, il limite superiore scende: la maggior parte degli adulti sopra i 50 anni non riesce a sentire sopra i 12kHz. Il tono a 17,4kHz, noto come "mosquito tone", è un classico test che in genere solo gli adolescenti riescono a superare.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Tipi di Onde e loro utilizzi', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>Sinusoidale:</strong> tono puro senza armoniche, utilizzato nei test uditivi medici e nella calibrazione degli strumenti. <strong>Quadra:</strong> ricca di armoniche dispari, suona come le console retrò a 8 bit. <strong>Dente di sega:</strong> contiene tutte le armoniche, la base dei sintetizzatori musicali elettronici. <strong>Triangolare:</strong> punto di mezzo tra sinusoidale e quadra — più liscia della quadra ma con più contenuto armonico della sinusoidale.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Test degli Altoparlanti e Pulizia tramite Vibrazione', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Un\'onda a bassa frequenza (tipicamente <strong>165Hz</strong>) al massimo volume con una forma quadra o a dente di sega costringe il diaframma dell\'altoparlante a vibrare violentemente, espellendo meccanicamente le gocce d\'acqua intrappolate nella griglia. Non riprodurre frequenze estremamente alte al massimo volume per lunghi periodi: anche se non puoi sentirle, l\'energia può danneggiare i tweeter della tua attrezzatura.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Generatore Audio',
|
|
129
|
+
title: 'Generatore di Toni',
|
|
130
|
+
description: 'Genera frequenze pure per test audio.',
|
|
131
|
+
freqLabel: 'Frequenza',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (Sub-bass)',
|
|
136
|
+
rangeMax: '20kHz (Ultrasuoni)',
|
|
137
|
+
waveLabel: 'Forma d\'onda',
|
|
138
|
+
waveSine: 'Sinusoidale',
|
|
139
|
+
waveSquare: 'Quadra',
|
|
140
|
+
waveSawtooth: 'Dente di sega',
|
|
141
|
+
waveTriangle: 'Triangolare',
|
|
142
|
+
volLabel: 'Volume',
|
|
143
|
+
btnPlay: 'RIPRODUCI TONO',
|
|
144
|
+
btnStop: 'STOP',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ToneGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'tone-frequency-generator';
|
|
6
|
+
const title = 'オンライン・トーン&周波数ジェネレーター';
|
|
7
|
+
const description =
|
|
8
|
+
'正弦波、矩形波、三角波、鋸歯状波を生成します。20Hzから20kHzまでの周波数で、スピーカー、ヘッドフォン、またはサブウーファーをテストできます。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '周波数ジェネレーターは何に使用されますか?',
|
|
13
|
+
answer:
|
|
14
|
+
'スピーカーやヘッドフォンの周波数特性のテスト、家具の不要な共振の検出、聴力範囲のチェック、さらにはノッチ療法による耳鳴りの緩和などに使用されます。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '正弦波と矩形波の違いは何ですか?',
|
|
18
|
+
answer:
|
|
19
|
+
'正弦波は高調波を含まない純音(滑らかで丸い音)です。矩形波は奇数次の高調波を豊富に含み、より攻撃的またはデジタルな音がします。三角波はその中間で、音響合成に役立ちます。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'このツールでスピーカーを損傷することはありますか?',
|
|
23
|
+
answer:
|
|
24
|
+
'はい、極端な周波数(特に30Hz以下の低音や15kHz以上の高音)で非常に大きな音量を出すと損傷の原因になります。常にシステム音量を下げた状態から始め、徐々に上げてください。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '人間の聴力範囲はどれくらいですか?',
|
|
28
|
+
answer:
|
|
29
|
+
'理論的には20Hzから20,000Hz(20kHz)です。しかし、加齢とともに15kHz以上の高音を聞き取る能力が低下するのが一般的です。このテストで個人の上限を確認できます。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '波形タイプを選択する',
|
|
36
|
+
text: '実行したいテストの種類に応じて、正弦波(純音)、矩形波、三角波、または鋸歯状波から選択します。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '周波数を調整する',
|
|
40
|
+
text: 'スライダーを動かして可聴範囲を移動します。60Hz、440Hz、1kHzのショートカットを使用して、基準周波数に素早くアクセスできます。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '音量をコントロールする',
|
|
44
|
+
text: '再生ボタンを押す前に、スピーカーの音量が小さいことを確認してください。ツールから直接ゲインを調整できます。',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '応答を分析する',
|
|
48
|
+
text: '歪みや音が消える瞬間がないか確認してください。これにより、オーディオハードウェアの物理的な限界がわかります。',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'ja',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'よくある質問',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'リファレンス',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'MDN Web Docs — Web Audio API',
|
|
96
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'ISO 226:2023 — Equal-loudness contours',
|
|
100
|
+
url: 'https://www.iso.org/standard/83117.html',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: '周波数と音波のすべて', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '音は運動する物理そのものです。このツールを使用すると、胸で感じる深い低音から、動物だけが感知できる超音波のような高音まで、音波をリアルタイムで操作できます。',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: '人間の可聴範囲と老人性難聴', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '健康な人の耳は、<strong>20Hzから20kHz</strong>の間の音を感知します。加齢とともに上限は下がり、50歳以上の成人の多くは12kHz以上が聞こえなくなります。「モスキート音」として知られる17.4kHzの音は、通常ティーンエイジャーだけが合格できる古典的なテストです。',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: '波形の種類と用途', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>正弦波:</strong>高調波のない純音で、医療的な聴力検査や楽器の校正に使用されます。<strong>矩形波:</strong>奇数次の高調波が豊富で、レトロな8ビットゲーム機のような音がします。<strong>鋸歯状波:</strong>すべての高調波を含み、電子音楽シンセサイザーの基礎となります。<strong>三角波:</strong>正弦波と矩形波の中間で、矩形波より滑らかですが、正弦波より多くの高調波を含みます。',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'スピーカーのテストと振動によるクリーニング', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '最大音量で矩形波または鋸歯状波の低周波波(通常は<strong>165Hz</strong>)を再生すると、スピーカーの振動板が激しく振動し、グリルに溜まった水滴を機械的に排出します。非常に高い周波数を最大音量で長時間再生しないでください。たとえ聞こえなくても、そのエネルギーによって機器のツイーターを損傷する可能性があります。',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'オーディオジェネレーター',
|
|
129
|
+
title: 'トーンジェネレーター',
|
|
130
|
+
description: 'オーディオテスト用の純粋な周波数を生成します。',
|
|
131
|
+
freqLabel: '周波数',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (サブバス)',
|
|
136
|
+
rangeMax: '20kHz (超音波)',
|
|
137
|
+
waveLabel: '波形',
|
|
138
|
+
waveSine: '正弦波',
|
|
139
|
+
waveSquare: '矩形波',
|
|
140
|
+
waveSawtooth: '鋸歯状波',
|
|
141
|
+
waveTriangle: '三角波',
|
|
142
|
+
volLabel: '音量',
|
|
143
|
+
btnPlay: 'トーンを再生',
|
|
144
|
+
btnStop: '停止',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ToneGeneratorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'tone-frequency-generator';
|
|
6
|
+
const title = '온라인 톤 및 주파수 생성기';
|
|
7
|
+
const description =
|
|
8
|
+
'사인파, 사각파, 삼각파, 톱니파를 생성합니다. 20Hz에서 20kHz까지의 주파수로 스피커, 헤드폰 또는 서브우퍼를 테스트하세요.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '주파수 생성기는 무엇에 사용되나요?',
|
|
13
|
+
answer:
|
|
14
|
+
'스피커와 헤드폰의 주파수 응답 테스트, 가구의 원치 않는 공진 감지, 청력 범위의 빈틈 찾기, 또는 노치 요법(notch therapy)을 통한 이명 완화 등에 사용됩니다.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '사인파와 사각파의 차이는 무엇인가요?',
|
|
18
|
+
answer:
|
|
19
|
+
'사인파는 고조파가 없는 순수한 음(부드럽고 둥근 소리)입니다. 사각파는 홀수 고조파가 풍부하며 훨씬 더 공격적이거나 디지털적인 소리가 납니다. 삼각파는 그 중간 단계로 오디오 합성에 유용합니다.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '이 도구로 스피커를 손상시킬 수 있나요?',
|
|
23
|
+
answer:
|
|
24
|
+
'네, 극한의 주파수(특히 30Hz 미만의 저음 또는 15kHz 이상의 고음)에서 매우 높은 볼륨을 사용하면 손상될 수 있습니다. 항상 낮은 시스템 볼륨에서 시작하여 점진적으로 높이세요.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '인간의 가청 범위는 어떻게 되나요?',
|
|
28
|
+
answer:
|
|
29
|
+
'이론적으로는 20Hz에서 20,000Hz(20kHz) 사이입니다. 하지만 나이가 들면서 15kHz 이상의 음을 듣는 능력이 떨어지는 것은 정상입니다. 이 테스트는 개인의 가청 상한선을 확인하는 데 도움이 됩니다.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '파형 유형 선택',
|
|
36
|
+
text: '수행하려는 테스트 유형에 따라 사인파(순음), 사각파, 삼각파 또는 톱니파 중에서 선택하세요.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '주파수 조정',
|
|
40
|
+
text: '슬라이더를 움직여 가청 스펙트럼을 탐색하세요. 60Hz, 440Hz 또는 1kHz 단축키를 사용하여 기준 주파수에 빠르게 액세스할 수 있습니다.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '볼륨 조절',
|
|
44
|
+
text: '재생 버튼을 누르기 전에 스피커 볼륨이 낮은지 확인하세요. 도구에서 직접 게인(gain)을 조정할 수 있습니다.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '응답 분석',
|
|
48
|
+
text: '소리가 왜곡되거나 들리지 않는 지점이 있는지 확인하세요. 이는 오디오 하드웨어의 물리적 한계를 나타냅니다.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'UtilityApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'ko',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: '자주 묻는 질문',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: '참조',
|
|
93
|
+
bibliography: [
|
|
94
|
+
{
|
|
95
|
+
name: 'MDN Web Docs — Web Audio API',
|
|
96
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'ISO 226:2023 — Equal-loudness contours',
|
|
100
|
+
url: 'https://www.iso.org/standard/83117.html',
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howTo: howToData,
|
|
104
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
105
|
+
seo: [
|
|
106
|
+
{ type: 'title', text: '주파수와 음파에 대한 모든 것', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '소리는 움직이는 순수한 물리 현상입니다. 이 도구를 사용하면 가슴으로 느낄 수 있는 깊은 저음부터 동물만이 감지할 수 있는 초음파 고음까지 오디오 파형을 실시간으로 조작할 수 있습니다.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: '인간 가청 범위와 노인성 난청', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: '건강한 사람의 귀는 <strong>20Hz에서 20kHz</strong> 사이의 소리를 감지합니다. 나이가 들면서 상한선이 낮아지며, 50세 이상의 성인 대부분은 12kHz 이상의 소리를 듣지 못합니다. "모스키토 음"으로 알려진 17.4kHz 톤은 일반적으로 청소년들만 통과할 수 있는 고전적인 테스트입니다.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: '파형 유형 및 용도', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>사인파:</strong> 고조파가 없는 순음으로, 의료용 청력 테스트 및 악기 보정에 사용됩니다. <strong>사각파:</strong> 홀수 고조파가 풍부하며 레트로 8비트 게임기 같은 소리가 납니다. <strong>톱니파:</strong> 모든 고조파를 포함하며 전자 음악 신시사이저의 기초가 됩니다. <strong>삼각파:</strong> 사인파와 사각파의 중간 지점으로, 사각파보다 부드럽지만 사인파보다 풍부한 배음을 갖습니다.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: '스피커 테스트 및 진동 청소', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: '최대 볼륨에서 사각파나 톱니파 형태의 저주파 음(일반적으로 <strong>165Hz</strong>)을 재생하면 스피커 진동판이 강하게 진동하여 그릴에 맺힌 물방울을 기계적으로 밀어냅니다. 매우 높은 주파수를 최대 볼륨으로 장시간 재생하지 마세요. 소리가 들리지 않더라도 그 에너지가 장비의 트위터를 손상시킬 수 있습니다.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: '오디오 생성기',
|
|
129
|
+
title: '톤 생성기',
|
|
130
|
+
description: '오디오 테스트를 위한 순수 주파수를 생성합니다.',
|
|
131
|
+
freqLabel: '주파수',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (서브 저음)',
|
|
136
|
+
rangeMax: '20kHz (초음파)',
|
|
137
|
+
waveLabel: '파형',
|
|
138
|
+
waveSine: '사인파',
|
|
139
|
+
waveSquare: '사각파',
|
|
140
|
+
waveSawtooth: '톱니파',
|
|
141
|
+
waveTriangle: '삼각파',
|
|
142
|
+
volLabel: '볼륨',
|
|
143
|
+
btnPlay: '톤 재생',
|
|
144
|
+
btnStop: '정지',
|
|
145
|
+
},
|
|
146
|
+
};
|