@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 = 'toon-frequentie-generator-online';
|
|
6
|
+
const title = 'Online Toon en Frequentiegenerator';
|
|
7
|
+
const description =
|
|
8
|
+
'Genereer sinus-, blok-, driehoek- en zaagtandgolven. Test je luidsprekers, koptelefoon of subwoofer met frequenties van 20Hz tot 20kHz.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Waarvoor wordt een frequentiegenerator gebruikt?',
|
|
13
|
+
answer:
|
|
14
|
+
'Het wordt gebruikt om de frequentierespons van luidsprekers en koptelefoons te testen, ongewenste resonanties in meubels te detecteren, gaten in je gehoorbereik te vinden, of zelfs te helpen bij het kalmeren van tinnitus via notch-therapie.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Wat is het verschil tussen een sinusgolf en een blokgolf?',
|
|
18
|
+
answer:
|
|
19
|
+
'Een sinusgolf is een zuivere toon zonder boventonen (glad en rond). Een blokgolf is rijk aan oneven boventonen en klinkt veel agressiever of digitaal. De driehoeksgolf zit er tussenin, nuttig voor audiosynthese.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Kan ik mijn luidsprekers beschadigen met deze tool?',
|
|
23
|
+
answer:
|
|
24
|
+
'Ja, als je zeer hoge volumes gebruikt bij extreme frequenties (vooral bassen onder 30Hz of hoge tonen boven 15kHz). Begin altijd met een laag systeemvolume en verhoog dit geleidelijk.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Wat is het menselijk gehoorbereik?',
|
|
28
|
+
answer:
|
|
29
|
+
'In theorie 20Hz tot 20.000Hz (20kHz). Met de leeftijd is het echter normaal om het vermogen te verliezen om tonen boven 15kHz te horen. Deze test kan je helpen je persoonlijke bovengrens te verifiëren.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Selecteer de golfvorm',
|
|
36
|
+
text: 'Kies tussen Sinus (zuiver), Blok, Driehoek of Zaagtand, afhankelijk van het type test dat je wilt uitvoeren.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Pas de frequentie aan',
|
|
40
|
+
text: 'Verschuif de regelaar om door het hoorbare spectrum te navigeren. Gebruik de sneltoetsen voor 60Hz, 440Hz of 1kHz om snel toegang te krijgen tot referentiefrequenties.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Controleer het volume',
|
|
44
|
+
text: 'Zorg ervoor dat het volume van je luidsprekers laag staat voordat je op Play drukt. Je kunt de gain direct in de tool aanpassen.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analyseer de respons',
|
|
48
|
+
text: 'Luister naar mogelijke vervormingen of momenten waarop het geluid verdwijnt. Dit geeft de fysieke limieten van je audiohardware aan.',
|
|
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: 'nl',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referenties',
|
|
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: 'Alles over Frequenties en Geluidsgolven', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Geluid is pure fysica in beweging. Met deze tool kun je geluidsgolven in real-time manipuleren, van de diepste bas die je in je borst kunt voelen tot de ultrasone hoge tonen die alleen dieren kunnen waarnemen.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Menselijk Gehoorbereik en Presbyacusis', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Een gezond menselijk oor neemt geluiden waar tussen <strong>20Hz en 20kHz</strong>. Met de leeftijd daalt de bovengrens: de meeste volwassenen boven de 50 kunnen tonen boven 12kHz niet meer horen. De 17,4kHz toon, bekend als de "muggentaltoon", is een klassieke test die meestal alleen tieners kunnen doorstaan.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Golfvormen en hun Gebruik', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>Sinus:</strong> zuivere toon zonder boventonen, gebruikt bij medische gehoortesten en instrumentkalibratie. <strong>Blok:</strong> rijk aan oneven boventonen, klinkt als retro 8-bit consoles. <strong>Zaagtand:</strong> bevat alle boventonen, de basis van synthesizers voor elektronische muziek. <strong>Driehoek:</strong> middelpunt tussen sinus en blok — gladder dan blok maar met meer harmonische inhoud dan sinus.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Luidsprekertest en Reiniging door Vibratie', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Een laagfrequente golf (meestal <strong>165Hz</strong>) op maximaal volume met een blok- of zaagtandvorm dwingt het luidsprekerconus om hevig te trillen, waardoor waterdruppels die in het rooster gevangen zitten mechanisch worden uitgestoten. Speel extreem hoge frequenties niet gedurende lange perioden op maximaal volume af: zelfs als je ze niet kunt horen, kan de energie de tweeters van je apparatuur beschadigen.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Audiogenerator',
|
|
129
|
+
title: 'Toongenerator',
|
|
130
|
+
description: 'Genereer zuivere frequenties voor audiotests.',
|
|
131
|
+
freqLabel: 'Frequentie',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (Sub-bass)',
|
|
136
|
+
rangeMax: '20kHz (Ultrasoon)',
|
|
137
|
+
waveLabel: 'Golfvorm',
|
|
138
|
+
waveSine: 'Sinus',
|
|
139
|
+
waveSquare: 'Blok',
|
|
140
|
+
waveSawtooth: 'Zaagtand',
|
|
141
|
+
waveTriangle: 'Driehoek',
|
|
142
|
+
volLabel: 'Volume',
|
|
143
|
+
btnPlay: 'SPEEL TOON AF',
|
|
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 = 'generator-tonow-czestotliwosci-online';
|
|
6
|
+
const title = 'Online Generator Tonów i Częstotliwości';
|
|
7
|
+
const description =
|
|
8
|
+
'Generuj fale sinusoidalne, prostokątne, trójkątne i piłokształtne. Testuj głośniki, słuchawki lub subwoofer częstotliwościami od 20Hz do 20kHz.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Do czego służy generator częstotliwości?',
|
|
13
|
+
answer:
|
|
14
|
+
'Służy do testowania pasma przenoszenia głośników i słuchawek, wykrywania niepożądanych rezonansów w meblach, znajdowania luk w zakresie słuchu, a nawet pomocy w łagodzeniu szumów usznych poprzez terapię notch.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Czym różni się fala sinusoidalna od prostokątnej?',
|
|
18
|
+
answer:
|
|
19
|
+
'Fala sinusoidalna to czysty ton bez składowych harmonicznych (gładki i zaokrąglony). Fala prostokątna jest bogata w nieparzyste harmoniczne i brzmi znacznie bardziej agresywnie lub cyfrowo. Fala trójkątna znajduje się pomiędzy nimi, przydatna w syntezie dźwięku.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Czy mogę uszkodzić głośniki tym narzędziem?',
|
|
23
|
+
answer:
|
|
24
|
+
'Tak, jeśli używasz bardzo wysokiej głośności przy ekstremalnych częstotliwościach (zwłaszcza basów poniżej 30Hz lub sopranów powyżej 15kHz). Zawsze zaczynaj od niskiej głośności systemowej i zwiększaj ją stopniowo.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Jaki jest zakres słuchu człowieka?',
|
|
28
|
+
answer:
|
|
29
|
+
'Teoretycznie od 20Hz do 20 000Hz (20kHz). Jednak z wiekiem normalna jest utrata zdolności słyszenia powyżej 15kHz. Ten test może pomóc Ci zweryfikować Twoją osobistą górną granicę.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Wybierz rodzaj fali',
|
|
36
|
+
text: 'Wybierz między falą sinusoidalną (czystą), prostokątną, trójkątną lub piłokształtną w zależności od rodzaju testu, który chcesz przeprowadzić.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Dostosuj częstotliwość',
|
|
40
|
+
text: 'Przesuń suwak, aby poruszać się po spektrum słyszalnym. Użyj skrótów 60Hz, 440Hz lub 1kHz, aby szybko uzyskać dostęp do częstotliwości odniesienia.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Kontroluj głośność',
|
|
44
|
+
text: 'Upewnij się, że głośność głośników jest niska przed naciśnięciem Play. Możesz dostosować wzmocnienie bezpośrednio w narzędziu.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analizuj odpowiedź',
|
|
48
|
+
text: 'Nasłuchuj ewentualnych zniekształceń lub momentów, w których dźwięk znika. Wskaże to fizyczne limity Twojego sprzętu 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: 'pl',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referencje',
|
|
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: 'Wszystko o Częstotliwościach i Falach Dźwiękowych', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Dźwięk to czysta fizyka w ruchu. To narzędzie pozwala manipulować falami dźwiękowymi w czasie rzeczywistym, od najgłębszych basów, które możesz poczuć w klatce piersiowej, po ultradźwiękowe wysokie tony, które dostrzegają tylko zwierzęta.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Zakres Słuchu Człowieka i Presbycusis', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Zdrowe ludzkie ucho dostrzega dźwięki między <strong>20Hz a 20kHz</strong>. Z wiekiem górna granica spada: większość dorosłych powyżej 50 roku życia nie słyszy powyżej 12kHz. Ton 17,4kHz, znany jako „mosquito tone”, to klasyczny test, który zazwyczaj przechodzą tylko nastolatkowie.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Rodzaje Fal i ich Zastosowanie', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>Sinusoidalna:</strong> czysty ton bez harmonicznych, używany w medycznych badaniach słuchu i kalibracji instrumentów. <strong>Prostokątna:</strong> bogata w nieparzyste harmoniczne, brzmi jak retro konsole 8-bitowe. <strong>Piłokształtna:</strong> zawiera wszystkie harmoniczne, podstawa syntezatorów muzyki elektronicznej. <strong>Trójkątna:</strong> punkt pośredni między sinusoidalną a prostokątną — gładsza niż prostokątna, ale z większą zawartością harmonicznych niż sinusoidalna.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Testowanie Głośników i Czyszczenie Wibracyjne', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Fala o niskiej częstotliwości (zazwyczaj <strong>165Hz</strong>) przy maksymalnej głośności o kształcie prostokątnym lub piłokształtnym zmusza membranę głośnika do gwałtownych wibracji, mechanicznie wypychając krople wody uwięzione w siatce. Nie odtwarzaj ekstremalnie wysokich częstotliwości przy maksymalnej głośności przez dłuższy czas: nawet jeśli ich nie słyszysz, energia może uszkodzić głośniki wysokotonowe w Twoim sprzęcie.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Generator Audio',
|
|
129
|
+
title: 'Generator Tonów',
|
|
130
|
+
description: 'Generuj czyste częstotliwości do testów audio.',
|
|
131
|
+
freqLabel: 'Częstotliwość',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (Sub-bas)',
|
|
136
|
+
rangeMax: '20kHz (Ultradźwięki)',
|
|
137
|
+
waveLabel: 'Przebieg fali',
|
|
138
|
+
waveSine: 'Sinusoidalny',
|
|
139
|
+
waveSquare: 'Prostokątny',
|
|
140
|
+
waveSawtooth: 'Piłokształtny',
|
|
141
|
+
waveTriangle: 'Trójkątny',
|
|
142
|
+
volLabel: 'Głośność',
|
|
143
|
+
btnPlay: 'ODTWÓRZ TON',
|
|
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 = 'gerador-tons-frequencia-online';
|
|
6
|
+
const title = 'Gerador de Tons e Frequências Online';
|
|
7
|
+
const description =
|
|
8
|
+
'Gere ondas sinusoidais, quadradas, triangulares e dente de serra. Teste as suas colunas, auscultadores ou subwoofer com frequências de 20Hz a 20kHz.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Para que serve um gerador de frequência?',
|
|
13
|
+
answer:
|
|
14
|
+
'É utilizado para testar a resposta de frequência de colunas e auscultadores, detetar ressonâncias indesejadas em móveis, encontrar falhas na sua audição ou até ajudar a acalmar o tinido através da terapia notch.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'O que é uma onda sinusoidal versus uma onda quadrada?',
|
|
18
|
+
answer:
|
|
19
|
+
'Uma onda sinusoidal é um tom puro sem harmónicas (suave e redonda). Uma onda quadrada é rica em harmónicas ímpares e soa muito mais agressiva ou digital. A onda triangular situa-se no meio, sendo útil para síntese de áudio.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Posso danificar as minhas colunas com esta ferramenta?',
|
|
23
|
+
answer:
|
|
24
|
+
'Sim, se usar volumes muito altos em frequências extremas (especialmente graves abaixo de 30Hz ou agudos acima de 15kHz). Comece sempre com um volume de sistema baixo e aumente gradualmente.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Qual é o alcance da audição humana?',
|
|
28
|
+
answer:
|
|
29
|
+
'Teoricamente de 20Hz a 20.000Hz (20kHz). No entanto, com a idade é normal perder a capacidade de ouvir acima de 15kHz. Este teste pode ajudar a verificar o seu limite superior pessoal.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Selecionar o tipo de forma de onda',
|
|
36
|
+
text: 'Escolha entre Sinusoidal (pura), Quadrada, Triangular ou Dente de serra, dependendo do tipo de teste que deseja realizar.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Ajustar a frequência',
|
|
40
|
+
text: 'Mova o cursor para navegar no espetro audível. Use os atalhos de 60Hz, 440Hz ou 1kHz para aceder rapidamente a frequências de referência.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Controlar o volume',
|
|
44
|
+
text: 'Certifique-se de que o volume das suas colunas está baixo antes de premir Reproduzir. Pode ajustar o ganho diretamente na ferramenta.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Analisar a resposta',
|
|
48
|
+
text: 'Preste atenção a possíveis distorções ou momentos em que o som desaparece. Isto indicará os limites físicos do seu hardware de áudio.',
|
|
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: 'pt',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const content: ToolLocaleContent<ToneGeneratorUI> = {
|
|
87
|
+
slug,
|
|
88
|
+
title,
|
|
89
|
+
description,
|
|
90
|
+
faqTitle: 'Perguntas Frequentes',
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliographyTitle: 'Referências',
|
|
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: 'Tudo Sobre Frequências e Ondas Sonoras', level: 2 },
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'O som é pura física em movimento. Esta ferramenta permite manipular ondas sonoras em tempo real, desde os graves mais profundos que pode sentir no peito até aos agudos ultrassónicos que apenas os animais conseguem detetar.',
|
|
110
|
+
},
|
|
111
|
+
{ type: 'title', text: 'Alcance da Audição Humana e Presbiacusia', level: 3 },
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: 'Um ouvido humano saudável deteta sons entre <strong>20Hz e 20kHz</strong>. Com a idade, o limite superior desce: a maioria dos adultos com mais de 50 anos não consegue ouvir acima de 12kHz. O tom de 17,4kHz, conhecido como "mosquito tone", é um teste clássico que normalmente apenas adolescentes conseguem passar.',
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Tipos de Onda e Seus Usos', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: '<strong>Sinusoidal:</strong> tom puro sem harmónicas, usado em testes de audição médicos e calibração de instrumentos. <strong>Quadrada:</strong> rica em harmónicas ímpares, soa como consolas retro de 8 bits. <strong>Dente de serra:</strong> contém todas as harmónicas, a base dos sintetizadores de música eletrónica. <strong>Triangular:</strong> ponto médio entre sinusoidal e quadrada — mais suave que a quadrada, mas com mais conteúdo harmónico que a sinusoidal.',
|
|
120
|
+
},
|
|
121
|
+
{ type: 'title', text: 'Teste de Colunas e Limpeza por Vibração', level: 3 },
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Uma onda de baixa frequência (normalmente <strong>165Hz</strong>) no volume máximo com forma quadrada ou dente de serra força o diafragma da coluna a vibrar violentamente, expelindo mecanicamente gotas de água presas na grelha. Não reproduza frequências extremamente altas no volume máximo por longos períodos: mesmo que não as consiga ouvir, a energia pode danificar os tweeters do seu equipamento.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Gerador de Áudio',
|
|
129
|
+
title: 'Gerador de Tons',
|
|
130
|
+
description: 'Gere frequências puras para testes de áudio.',
|
|
131
|
+
freqLabel: 'Frequência',
|
|
132
|
+
preset60: '60Hz',
|
|
133
|
+
preset440: '440Hz',
|
|
134
|
+
preset1k: '1kHz',
|
|
135
|
+
rangeMin: '20Hz (Sub-bass)',
|
|
136
|
+
rangeMax: '20kHz (Ultrassom)',
|
|
137
|
+
waveLabel: 'Forma de onda',
|
|
138
|
+
waveSine: 'Sinusoidal',
|
|
139
|
+
waveSquare: 'Quadrada',
|
|
140
|
+
waveSawtooth: 'Dente de serra',
|
|
141
|
+
waveTriangle: 'Triangular',
|
|
142
|
+
volLabel: 'Volume',
|
|
143
|
+
btnPlay: 'REPRODUZIR TOM',
|
|
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 = 'onlayn-generator-tonov-i-chastot';
|
|
6
|
+
const title = 'Онлайн генератор тонов и частот';
|
|
7
|
+
const description =
|
|
8
|
+
'Генерируйте синусоидальные, прямоугольные, треугольные и пилообразные волны. Тестируйте свои динамики, наушники или сабвуфер на частотах от 20 Гц до 20 кГц.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Для чего используется генератор частот?',
|
|
13
|
+
answer:
|
|
14
|
+
'Он используется для тестирования частотной характеристики динамиков и наушников, обнаружения нежелательных резонансов в мебели, поиска пробелов в вашем слуховом диапазоне или даже для помощи в успокоении тиннитуса с помощью нотч-терапии.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'В чем разница между синусоидальной и прямоугольной волной?',
|
|
18
|
+
answer:
|
|
19
|
+
'Синусоидальная волна — это чистый тон без гармоник (плавный и округлый). Прямоугольная волна богата нечетными гармониками и звучит гораздо более агрессивно или «цифрово». Треугольная волна находится посередине и полезна для аудиосинтеза.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Могу ли я повредить свои динамики этим инструментом?',
|
|
23
|
+
answer:
|
|
24
|
+
'Да, если вы используете очень высокую громкость на экстремальных частотах (особенно басы ниже 30 Гц или высокие частоты выше 15 кГц). Всегда начинайте с низкой громкости системы и увеличивайте ее постепенно.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Каков диапазон человеческого слуха?',
|
|
28
|
+
answer:
|
|
29
|
+
'Теоретически от 20 Гц до 20 000 Гц (20 кГц). Однако с возрастом потеря способности слышать звуки выше 15 кГц является нормальной. Этот тест поможет вам проверить ваш личный верхний предел.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Выберите тип формы волны',
|
|
36
|
+
text: 'Выберите между синусоидальной (чистой), прямоугольной, треугольной или пилообразной в зависимости от типа теста, который вы хотите провести.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Отрегулируйте частоту',
|
|
40
|
+
text: 'Перемещайте ползунок для навигации по слышимому спектру. Используйте ярлыки 60 Гц, 440 Гц или 1 кГц для быстрого доступа к эталонным частотам.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Управляйте громкостью',
|
|
44
|
+
text: 'Перед нажатием кнопки Play убедитесь, что громкость ваших динамиков низкая. Вы можете регулировать усиление прямо в инструменте.',
|
|
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: 'ru',
|
|
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>20 Гц до 20 кГц</strong>. С возрастом верхний предел снижается: большинство взрослых старше 50 лет не слышат звуки выше 12 кГц. Тон 17,4 кГц, известный как «комариный писк», — это классический тест, который обычно проходят только подростки.',
|
|
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>165 Гц</strong>) на максимальной громкости с прямоугольной или пилообразной формой заставляет диффузор динамика сильно вибрировать, механически выталкивая капли воды, застрявшие в сетке. Не воспроизводите экстремально высокие частоты на максимальной громкости в течение длительного времени: даже если вы их не слышите, энергия может повредить твитеры вашего оборудования.',
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
ui: {
|
|
128
|
+
badge: 'Аудиогенератор',
|
|
129
|
+
title: 'Генератор тонов',
|
|
130
|
+
description: 'Генерируйте чистые частоты для аудиотестов.',
|
|
131
|
+
freqLabel: 'Частота',
|
|
132
|
+
preset60: '60 Гц',
|
|
133
|
+
preset440: '440 Гц',
|
|
134
|
+
preset1k: '1 кГц',
|
|
135
|
+
rangeMin: '20 Гц (Саб-бас)',
|
|
136
|
+
rangeMax: '20 кГц (Ультразвук)',
|
|
137
|
+
waveLabel: 'Форма волны',
|
|
138
|
+
waveSine: 'Синус',
|
|
139
|
+
waveSquare: 'Квадрат',
|
|
140
|
+
waveSawtooth: 'Пила',
|
|
141
|
+
waveTriangle: 'Треугольник',
|
|
142
|
+
volLabel: 'Громкость',
|
|
143
|
+
btnPlay: 'ИГРАТЬ ТОН',
|
|
144
|
+
btnStop: 'СТОП',
|
|
145
|
+
},
|
|
146
|
+
};
|