@jjlmoya/utils-games-development 1.53.0 → 1.55.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 +2 -1
- package/src/entries.ts +6 -1
- package/src/index.ts +2 -0
- package/src/tests/contrast_legibility.test.ts +245 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/itchioGameTester/itchio-game-tester.css +3 -3
- package/src/tool/localizationSanitizer/localization-sanitizer.css +13 -13
- package/src/tool/retroSfxGenerator/bibliography.astro +6 -0
- package/src/tool/retroSfxGenerator/bibliography.ts +16 -0
- package/src/tool/retroSfxGenerator/client.ts +256 -0
- package/src/tool/retroSfxGenerator/component.astro +146 -0
- package/src/tool/retroSfxGenerator/entry.ts +27 -0
- package/src/tool/retroSfxGenerator/i18n/de.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/en.ts +224 -0
- package/src/tool/retroSfxGenerator/i18n/es.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/fr.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/id.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/it.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ja.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ko.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/nl.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/pl.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/pt.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ru.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/sv.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/tr.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/zh.ts +211 -0
- package/src/tool/retroSfxGenerator/index.ts +11 -0
- package/src/tool/retroSfxGenerator/logic.test.ts +40 -0
- package/src/tool/retroSfxGenerator/logic.ts +214 -0
- package/src/tool/retroSfxGenerator/retro-sfx-generator.css +429 -0
- package/src/tool/retroSfxGenerator/seo.astro +15 -0
- package/src/tool/retroSfxGenerator/ui.ts +41 -0
- package/src/tool/saveFileEditor/game-save-file-editor.css +5 -5
- package/src/tool/spriteSheetPacker/sprite-sheet-packer.css +5 -5
- package/src/tool/steamBbcodeTranslator/app-client.ts +125 -0
- package/src/tool/steamBbcodeTranslator/bbcode-parser.ts +110 -0
- package/src/tool/steamBbcodeTranslator/bibliography.astro +6 -0
- package/src/tool/steamBbcodeTranslator/bibliography.ts +14 -0
- package/src/tool/steamBbcodeTranslator/component.astro +83 -0
- package/src/tool/steamBbcodeTranslator/entry.ts +28 -0
- package/src/tool/steamBbcodeTranslator/html-parser.ts +42 -0
- package/src/tool/steamBbcodeTranslator/html-renderer.ts +71 -0
- package/src/tool/steamBbcodeTranslator/i18n/de.ts +207 -0
- package/src/tool/steamBbcodeTranslator/i18n/en.ts +236 -0
- package/src/tool/steamBbcodeTranslator/i18n/es.ts +207 -0
- package/src/tool/steamBbcodeTranslator/i18n/fr.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/id.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/it.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ja.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ko.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/nl.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/pl.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/pt.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ru.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/sv.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/tr.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/zh.ts +195 -0
- package/src/tool/steamBbcodeTranslator/index.ts +12 -0
- package/src/tool/steamBbcodeTranslator/logic.test.ts +41 -0
- package/src/tool/steamBbcodeTranslator/logic.ts +96 -0
- package/src/tool/steamBbcodeTranslator/markdown-parser.ts +115 -0
- package/src/tool/steamBbcodeTranslator/markdown-renderer.ts +85 -0
- package/src/tool/steamBbcodeTranslator/seo.astro +15 -0
- package/src/tool/steamBbcodeTranslator/steam-bbcode-translator.css +392 -0
- package/src/tool/steamBbcodeTranslator/storage.ts +30 -0
- package/src/tool/steamBbcodeTranslator/types.ts +36 -0
- package/src/tool/steamBbcodeTranslator/ui.ts +18 -0
- package/src/tool/steamCapsuleGenerator/steam-capsule-generator.css +6 -6
- package/src/tools.ts +4 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'retro-sfx-generator',
|
|
7
|
+
title: 'Retro Sound Effect Generator for Games',
|
|
8
|
+
description: 'Create short retro game sound effects in your browser with instant presets, waveform controls, a live oscilloscope, and one-click WAV export.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Waveform',
|
|
11
|
+
waveformSquare: 'Square',
|
|
12
|
+
waveformSawtooth: 'Sawtooth',
|
|
13
|
+
waveformSine: 'Sine',
|
|
14
|
+
waveformTriangle: 'Triangle',
|
|
15
|
+
waveformNoise: 'Noise',
|
|
16
|
+
presetLabel: 'Quick sound bank',
|
|
17
|
+
presetExplosion: 'Explosion',
|
|
18
|
+
presetLaser: 'Laser',
|
|
19
|
+
presetJump: 'Jump',
|
|
20
|
+
presetCoin: 'Coin',
|
|
21
|
+
presetPowerUp: 'Power-up',
|
|
22
|
+
frequencyLabel: 'Start frequency',
|
|
23
|
+
frequencyEndLabel: 'End frequency',
|
|
24
|
+
durationLabel: 'Length',
|
|
25
|
+
decayLabel: 'Decay',
|
|
26
|
+
sweepLabel: 'Pitch sweep',
|
|
27
|
+
vibratoLabel: 'Vibrato',
|
|
28
|
+
lowpassLabel: 'Low-pass',
|
|
29
|
+
highpassLabel: 'High-pass',
|
|
30
|
+
noiseMixLabel: 'Noise mix',
|
|
31
|
+
toneSection: 'Tone',
|
|
32
|
+
dynamicsSection: 'Dynamics',
|
|
33
|
+
filterSection: 'Texture',
|
|
34
|
+
playButton: 'Play sound',
|
|
35
|
+
stopButton: 'Stop',
|
|
36
|
+
downloadButton: 'Download WAV',
|
|
37
|
+
randomizeButton: 'Randomize',
|
|
38
|
+
resetButton: 'Reset',
|
|
39
|
+
waveformPreviewLabel: 'Live waveform',
|
|
40
|
+
generatedLabel: 'Generated',
|
|
41
|
+
statusReady: 'Ready to audition',
|
|
42
|
+
statusPlaying: 'Playing in your browser',
|
|
43
|
+
statusStopped: 'Playback stopped',
|
|
44
|
+
statusDownloaded: 'WAV downloaded',
|
|
45
|
+
statusAudioBlocked: 'Playback needs an audio-enabled browser tab',
|
|
46
|
+
statusGenerating: 'Rendering sound',
|
|
47
|
+
presetHint: 'Choose a starting point, then shape the signal with the controls below.',
|
|
48
|
+
monoWavHint: '44.1 kHz · 16-bit mono WAV',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Make Game Audio During a Jam Without Leaving the Browser',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'A good game sound effect needs to communicate an action quickly. A bright pitch rise can read as a jump or power-up, a fast downward sweep can feel like a laser or falling object, and a noisy decaying burst can suggest an explosion. This generator turns those familiar arcade patterns into editable browser audio. Pick a preset, listen immediately, and adjust the signal while the waveform preview shows how the sound changes over time.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Sound presets', value: '5 starting patterns' },
|
|
65
|
+
{ label: 'Oscillator choices', value: '5 waveform shapes' },
|
|
66
|
+
{ label: 'Export format', value: '16-bit PCM WAV' },
|
|
67
|
+
{ label: 'Processing', value: 'Browser-based' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'What the Controls Change',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Pitch and movement',
|
|
81
|
+
description: 'The tone controls define the identity of the sound.',
|
|
82
|
+
points: [
|
|
83
|
+
'Start frequency sets the initial pitch of the oscillator',
|
|
84
|
+
'Pitch sweep moves toward a calculated end frequency',
|
|
85
|
+
'Vibrato adds a gentle periodic pitch movement',
|
|
86
|
+
'Square, sawtooth, sine, triangle, and noise create different harmonic textures',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Shape and texture',
|
|
91
|
+
description: 'The dynamics and texture controls define how the sound lands.',
|
|
92
|
+
points: [
|
|
93
|
+
'Length controls the time available for the effect to speak',
|
|
94
|
+
'Decay makes the amplitude fall away faster or more gradually',
|
|
95
|
+
'Low-pass filtering softens bright high frequencies',
|
|
96
|
+
'High-pass filtering removes some low-frequency weight and noise mix adds grit',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'A Practical Recipe for Common Game Events',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Event', 'Useful starting point', 'First adjustment to try'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Explosion', 'Noise with a low pitch', 'Increase length and lower the low-pass filter for a heavier burst'],
|
|
111
|
+
['Laser', 'Sawtooth with a falling sweep', 'Shorten the length and raise the high-pass filter for a sharper attack'],
|
|
112
|
+
['Jump', 'Square with a rising sweep', 'Reduce decay to keep the upward motion audible'],
|
|
113
|
+
['Coin', 'Square with a short rising sweep', 'Raise the start frequency for a brighter pickup sound'],
|
|
114
|
+
['Power-up', 'Triangle with a long rising sweep', 'Add a little vibrato for a more animated result'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Why WAV Is a Useful Jam Export',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'WAV is a practical handoff format for a prototype because it is easy to import into common game engines, audio editors, and asset pipelines without requiring a particular compression library. This tool writes a small mono PCM WAV file in memory and downloads it directly. The generated file is intentionally short and uncompressed; after the game loop works, you can decide whether the final build should use a compressed format such as Ogg Vorbis or another platform-specific asset format.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Listen at the intended game volume',
|
|
129
|
+
html: 'A sound that feels exciting in isolation can become tiring when triggered many times per second. Test the downloaded WAV in the game, leave headroom for music and ambience, and keep repeated UI or pickup sounds short enough that they do not smear into one another.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Frequently Asked Questions',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: 'Does the generator upload my sounds?',
|
|
136
|
+
answer: 'No. The synthesis, preview, and WAV encoding happen in the browser session. Nothing needs to be sent to a server to create or download the file.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: 'Can I use the downloaded sounds in my game?',
|
|
140
|
+
answer: 'The generated audio is designed as a starting asset for prototypes and game-jam projects. Check the rules of your project or event, and review the final sound in the context of your own game before shipping.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: 'Why does the pitch sweep change the end frequency?',
|
|
144
|
+
answer: 'The sweep slider maps a negative value to a falling frequency and a positive value to a rising frequency. The interface recalculates the end frequency from the starting pitch so the motion remains proportional when you retune a sound.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: 'What should I do if there is no sound?',
|
|
148
|
+
answer: 'Make sure the browser tab is allowed to play audio and click Play sound again. Browsers commonly require a user gesture before an audio context can start.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Choose a sound pattern',
|
|
154
|
+
text: 'Select Explosion, Laser, Jump, Coin, or Power-up from the quick sound bank.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Shape the signal',
|
|
158
|
+
text: 'Adjust the waveform, pitch, sweep, length, decay, vibrato, and texture sliders while watching the live waveform.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Audition the result',
|
|
162
|
+
text: 'Click Play sound to hear the current parameters through the browser audio output.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Download a WAV',
|
|
166
|
+
text: 'Click Download WAV to save the current sound as a 44.1 kHz, 16-bit mono PCM file for your prototype.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Retro Sound Effect Generator for Games',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'USD',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: 'Does the generator upload my sounds?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'No. The synthesis, preview, and WAV encoding happen in the browser session.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
'@type': 'Question',
|
|
196
|
+
name: 'Can I use the downloaded sounds in my game?',
|
|
197
|
+
acceptedAnswer: {
|
|
198
|
+
'@type': 'Answer',
|
|
199
|
+
text: 'The generated audio is designed as a starting asset for prototypes and game-jam projects.',
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
'@context': 'https://schema.org',
|
|
206
|
+
'@type': 'HowTo',
|
|
207
|
+
name: 'How to create a retro game sound effect',
|
|
208
|
+
step: [
|
|
209
|
+
{
|
|
210
|
+
'@type': 'HowToStep',
|
|
211
|
+
name: 'Choose a sound pattern',
|
|
212
|
+
text: 'Select a quick sound bank preset.',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
'@type': 'HowToStep',
|
|
216
|
+
name: 'Shape and export',
|
|
217
|
+
text: 'Adjust the controls, preview the result, and download a WAV file.',
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
bibliographyTitle: 'References and Further Reading',
|
|
223
|
+
bibliography: bibliographyEntries,
|
|
224
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'generador-efectos-sonido-retro',
|
|
7
|
+
title: 'Generador de Efectos de Sonido Retro para Juegos',
|
|
8
|
+
description: 'Crea efectos de sonido retro cortos para juegos en tu navegador con preajustes inmediatos, controles de onda, osciloscopio en vivo y exportacion WAV.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Forma de onda',
|
|
11
|
+
waveformSquare: 'Cuadrada',
|
|
12
|
+
waveformSawtooth: 'Diente de sierra',
|
|
13
|
+
waveformSine: 'Senoidal',
|
|
14
|
+
waveformTriangle: 'Triangular',
|
|
15
|
+
waveformNoise: 'Ruido',
|
|
16
|
+
presetLabel: 'Banco de sonidos rapidos',
|
|
17
|
+
presetExplosion: 'Explosion',
|
|
18
|
+
presetLaser: 'Laser',
|
|
19
|
+
presetJump: 'Salto',
|
|
20
|
+
presetCoin: 'Moneda',
|
|
21
|
+
presetPowerUp: 'Potenciador',
|
|
22
|
+
frequencyLabel: 'Frecuencia inicial',
|
|
23
|
+
frequencyEndLabel: 'Frecuencia final',
|
|
24
|
+
durationLabel: 'Duracion',
|
|
25
|
+
decayLabel: 'Decaimiento',
|
|
26
|
+
sweepLabel: 'Barrido de tono',
|
|
27
|
+
vibratoLabel: 'Vibrato',
|
|
28
|
+
lowpassLabel: 'Paso bajo',
|
|
29
|
+
highpassLabel: 'Paso alto',
|
|
30
|
+
noiseMixLabel: 'Mezcla de ruido',
|
|
31
|
+
toneSection: 'Tono',
|
|
32
|
+
dynamicsSection: 'Dinamica',
|
|
33
|
+
filterSection: 'Textura',
|
|
34
|
+
playButton: 'Reproducir sonido',
|
|
35
|
+
stopButton: 'Detener',
|
|
36
|
+
downloadButton: 'Descargar WAV',
|
|
37
|
+
randomizeButton: 'Aleatorio',
|
|
38
|
+
resetButton: 'Restablecer',
|
|
39
|
+
waveformPreviewLabel: 'Forma de onda en vivo',
|
|
40
|
+
generatedLabel: 'Generado',
|
|
41
|
+
statusReady: 'Listo para escuchar',
|
|
42
|
+
statusPlaying: 'Reproduciendo en tu navegador',
|
|
43
|
+
statusStopped: 'Reproduccion detenida',
|
|
44
|
+
statusDownloaded: 'WAV descargado',
|
|
45
|
+
statusAudioBlocked: 'La reproduccion requiere una pestana de navegador con audio habilitado',
|
|
46
|
+
statusGenerating: 'Renderizando sonido',
|
|
47
|
+
presetHint: 'Elige un punto de partida y luego moldea la senal con los controles inferiores.',
|
|
48
|
+
monoWavHint: '44.1 kHz · WAV mono de 16 bits',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Crea audio para juegos en una Game Jam sin salir del navegador',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'Un buen efecto de sonido para juegos debe comunicar una accion de forma inmediata. Una subida de tono brillante evoca un salto o un potenciador, un barrido descendente rapido sugiere un laser o un objeto al caer, y una ráfaga ruidosa con decaimiento simula una explosion. Este generador convierte estos patrones arcade en audio editable en el navegador. Selecciona un preajuste, escucha al instante y ajusta la senal observando la vista previa de la onda.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Preajustes de sonido', value: '5 patrones iniciales' },
|
|
65
|
+
{ label: 'Opciones de oscilador', value: '5 formas de onda' },
|
|
66
|
+
{ label: 'Formato de exportacion', value: 'WAV PCM de 16 bits' },
|
|
67
|
+
{ label: 'Procesamiento', value: 'En navegador' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'Que modifica cada control',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Tono y movimiento',
|
|
81
|
+
description: 'Los controles de tono definen la identidad del sonido.',
|
|
82
|
+
points: [
|
|
83
|
+
'La frecuencia inicial define el tono de partida del oscilador',
|
|
84
|
+
'El barrido de tono desplaza la frecuencia hacia un valor final calculado',
|
|
85
|
+
'El vibrato añade una fluctuacion periodica de tono suave',
|
|
86
|
+
'Las ondas cuadrada, diente de sierra, senoidal, triangular y ruido crean texturas armónicas distintas',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Forma y textura',
|
|
91
|
+
description: 'Los controles de dinamica y textura determinan como finaliza el sonido.',
|
|
92
|
+
points: [
|
|
93
|
+
'La duracion controla el tiempo total de emision del efecto',
|
|
94
|
+
'El decaimiento hace que la amplitud disminuya mas rapido o de forma gradual',
|
|
95
|
+
'El filtro paso bajo suaviza frecuencias altas agudas',
|
|
96
|
+
'El filtro paso alto elimina frecuencias graves y la mezcla de ruido aporta textura rugosa',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'Receta practica para eventos habituales de juego',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Evento', 'Punto de partida util', 'Primer ajuste recomendado'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Explosion', 'Ruido con tono bajo', 'Aumentar la duracion y bajar el filtro paso bajo para una ráfaga mas pesada'],
|
|
111
|
+
['Laser', 'Diente de sierra con barrido descendente', 'Acortar la duracion y subir el filtro paso alto para un ataque mas afilado'],
|
|
112
|
+
['Salto', 'Cuadrada con barrido ascendente', 'Reducir el decaimiento para mantener audible la subida de tono'],
|
|
113
|
+
['Moneda', 'Cuadrada con barrido ascendente corto', 'Elevar la frecuencia inicial para obtener un sonido de recogida brillante'],
|
|
114
|
+
['Potenciador', 'Triangular con barrido ascendente largo', 'Añadir un poco de vibrato para dar mas movimiento'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Por que WAV es un formato util en jams',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'El formato WAV es ideal para prototipos porque se importa facilmente en motores de videojuegos, editores de audio y pipelines sin requerir librerias de descompresion especificas. Esta herramienta genera un archivo WAV PCM mono de 16 bits en memoria y lo descarga directamente. El archivo generado es corto y sin compresion; una vez probado en el juego, se puede convertir a formatos comprimidos como Ogg Vorbis.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Escucha al volumen real del juego',
|
|
129
|
+
html: 'Un sonido impresionante en solitario puede resultar fatigante si se activa repetidamente por segundo. Pruebalo dentro del motor del juego y deja suficiente margen dinamico para la musica.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Preguntas frecuentes',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: '¿El generador sube mis sonidos a un servidor?',
|
|
136
|
+
answer: 'No. La sintesis, la vista previa y la codificacion WAV se realizan integramente en el navegador.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: '¿Puedo usar los sonidos descargados en mi juego comercial?',
|
|
140
|
+
answer: 'El audio generado esta pensado como recurso inicial para prototipos y proyectos de game jams. Revisa las reglas de tu proyecto antes de la publicacion final.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: '¿Por que el barrido de tono cambia la frecuencia final?',
|
|
144
|
+
answer: 'El control deslizante asigna valores negativos a barridos descendentes y positivos a ascendentes, calculando de forma proporcional el tono final.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: '¿Que hago si no escucho ningun sonido?',
|
|
148
|
+
answer: 'Asegurate de que la pestaña del navegador tenga permiso de audio y vuelve a hacer clic en Reproducir sonido.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Selecciona un patron de sonido',
|
|
154
|
+
text: 'Elige Explosion, Laser, Salto, Moneda o Potenciador en el banco rapido.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Moldea la senal',
|
|
158
|
+
text: 'Ajusta los controles de forma de onda, tono, barrido, duracion, decaimiento y textura.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Escucha el resultado',
|
|
162
|
+
text: 'Haz clic en Reproducir sonido para comprobar la sintesis en vivo.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Descarga el archivo WAV',
|
|
166
|
+
text: 'Haz clic en Descargar WAV para obtener un archivo PCM mono de 44.1 kHz y 16 bits.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Generador de Efectos de Sonido Retro para Juegos',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'EUR',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: '¿El generador sube mis sonidos a un servidor?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'No. La sintesis, la vista previa y la codificacion WAV se realizan en el navegador.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'HowTo',
|
|
199
|
+
name: 'Cómo crear un efecto de sonido retro para juegos',
|
|
200
|
+
step: [
|
|
201
|
+
{
|
|
202
|
+
'@type': 'HowToStep',
|
|
203
|
+
name: 'Selecciona un patrón de sonido',
|
|
204
|
+
text: 'Elige un preajuste rápido.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
bibliographyTitle: 'Referencias y lecturas recomendadas',
|
|
210
|
+
bibliography: bibliographyEntries,
|
|
211
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'generateur-effets-sonores-retro',
|
|
7
|
+
title: 'Generateur d Effets Sonores Retro pour Jeux',
|
|
8
|
+
description: 'Creez de courts effets sonores retro pour vos jeux dans votre navigateur avec des prereglages, oscilliscope en direct et export WAV.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Forme d onde',
|
|
11
|
+
waveformSquare: 'Carree',
|
|
12
|
+
waveformSawtooth: 'Dent de scie',
|
|
13
|
+
waveformSine: 'Sinusoidale',
|
|
14
|
+
waveformTriangle: 'Triangulaire',
|
|
15
|
+
waveformNoise: 'Bruit',
|
|
16
|
+
presetLabel: 'Banque de sons rapides',
|
|
17
|
+
presetExplosion: 'Explosion',
|
|
18
|
+
presetLaser: 'Laser',
|
|
19
|
+
presetJump: 'Saut',
|
|
20
|
+
presetCoin: 'Piece',
|
|
21
|
+
presetPowerUp: 'Bonus',
|
|
22
|
+
frequencyLabel: 'Frequence initiale',
|
|
23
|
+
frequencyEndLabel: 'Frequence finale',
|
|
24
|
+
durationLabel: 'Duree',
|
|
25
|
+
decayLabel: 'Declin',
|
|
26
|
+
sweepLabel: 'Balayage de hauteur',
|
|
27
|
+
vibratoLabel: 'Vibrato',
|
|
28
|
+
lowpassLabel: 'Passe-bas',
|
|
29
|
+
highpassLabel: 'Passe-haut',
|
|
30
|
+
noiseMixLabel: 'Melange de bruit',
|
|
31
|
+
toneSection: 'Tonalite',
|
|
32
|
+
dynamicsSection: 'Dynamique',
|
|
33
|
+
filterSection: 'Texture',
|
|
34
|
+
playButton: 'Jouer le son',
|
|
35
|
+
stopButton: 'Arreter',
|
|
36
|
+
downloadButton: 'Telecharger WAV',
|
|
37
|
+
randomizeButton: 'Aleatoire',
|
|
38
|
+
resetButton: 'Reinitialiser',
|
|
39
|
+
waveformPreviewLabel: 'Forme d onde en direct',
|
|
40
|
+
generatedLabel: 'Genere',
|
|
41
|
+
statusReady: 'Pret pour l ecoute',
|
|
42
|
+
statusPlaying: 'Lecture dans votre navigateur',
|
|
43
|
+
statusStopped: 'Lecture arretee',
|
|
44
|
+
statusDownloaded: 'WAV telecharge',
|
|
45
|
+
statusAudioBlocked: 'La lecture necessite un onglet autorisant l audio',
|
|
46
|
+
statusGenerating: 'Rendu du son en cours',
|
|
47
|
+
presetHint: 'Choisissez un point de depart puis ajustez les parametres.',
|
|
48
|
+
monoWavHint: '44.1 kHz · WAV mono 16 bits',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Concevez l audio de votre jeu pendant une game jam directement dans votre navigateur',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'Un bon effet sonore retro doit communiquer une action rapidement. Une montee de ton dynamique evoque un saut ou un bonus, un balayage descendant rapel un laser, et un bruit sourd avec declin simule une explosion. Ce generateur permet de personnaliser ces signaux en temps réel.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Prereglages sonores', value: '5 modeles de base' },
|
|
65
|
+
{ label: 'Formes d onde', value: '5 types d oscillateur' },
|
|
66
|
+
{ label: 'Format d export', value: 'WAV PCM 16 bits' },
|
|
67
|
+
{ label: 'Traitement', value: 'Navigateur local' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'Explication des parametres',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Hauteur et mouvement',
|
|
81
|
+
description: 'Les parametres de hauteur definissent l identite du son.',
|
|
82
|
+
points: [
|
|
83
|
+
'La frequence initiale fixe le ton de depart',
|
|
84
|
+
'Le balayage modifie la frequence vers la valeur finale',
|
|
85
|
+
'Le vibrato ajoute une modulation sinusoidale douce',
|
|
86
|
+
'Les oscillateurs generent diverses textures harmoniques',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Forme et texture',
|
|
91
|
+
description: 'La dynamique et les filtres faconnent l enveloppe.',
|
|
92
|
+
points: [
|
|
93
|
+
'La duree definit le temps total de l effet',
|
|
94
|
+
'Le declin reduit l amplitude au cours du temps',
|
|
95
|
+
'Le filtre passe-bas adoucit les hautes frequences',
|
|
96
|
+
'Le filtre passe-haut et le bruit apportent du grain',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'Recettes pratiques pour evenements de jeu',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Evenement', 'Prereglage conseille', 'Premier ajustement a tester'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Explosion', 'Bruit a basse frequence', 'Augmenter la duree et baisser le passe-bas'],
|
|
111
|
+
['Laser', 'Dent de scie avec balayage descendant', 'Raccourcir la duree et monter le passe-haut'],
|
|
112
|
+
['Saut', 'Carree avec balayage ascendant', 'Reduire le declin pour garder la montee claire'],
|
|
113
|
+
['Piece', 'Carree avec court balayage ascendant', 'Augmenter la frequence initiale pour un son brillant'],
|
|
114
|
+
['Bonus', 'Triangulaire avec long balayage ascendant', 'Ajouter un peu de vibrato pour donner du mouvement'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Pourquoi le format WAV est ideal pour le prototypage',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Le format WAV est directement compatible avec la plupart des moteurs de jeu et logiciels d edition sans necessiter de bibliotheques tierces.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Tester au volume reel du jeu',
|
|
129
|
+
html: 'Un son tres fort en solo peut devenir agressif s il est repete frequemment. Testez directement dans votre moteur de jeu.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Foire Aux Questions',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: 'Mes sons sont-ils envoyes sur un serveur ?',
|
|
136
|
+
answer: 'Non. Tout le traitement est effectue localement dans votre navigateur.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: 'Puis-je utiliser ces sons dans mon jeu ?',
|
|
140
|
+
answer: 'Oui, ces sons sont conçus pour vos prototypes et jeux de jam.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: 'Comment fonctionne le balayage de hauteur ?',
|
|
144
|
+
answer: 'Le curseur calcule la frequence finale proportionnellement a la frequence de depart.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: 'Que faire en cas de silence ?',
|
|
148
|
+
answer: 'Verifiez que l audio est autorise dans les parametres de votre navigateur.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Choisir un prereglage',
|
|
154
|
+
text: 'Selectionnez Explosion, Laser, Saut, Piece ou Bonus.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Ajuster le signal',
|
|
158
|
+
text: 'Modifiez la forme d onde, la hauteur, la duree et les filtres.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Ecouter le rendu',
|
|
162
|
+
text: 'Cliquez sur Jouer le son pour tester le resultat.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Telecharger le WAV',
|
|
166
|
+
text: 'Cliquez sur Telecharger WAV pour obtenir le fichier audio.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Generateur d Effets Sonores Retro pour Jeux',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'EUR',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: 'Mes sons sont-ils envoyes sur un serveur ?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'Non. Tout le traitement est effectue localement dans votre navigateur.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'HowTo',
|
|
199
|
+
name: 'Comment creer un effet sonore retro',
|
|
200
|
+
step: [
|
|
201
|
+
{
|
|
202
|
+
'@type': 'HowToStep',
|
|
203
|
+
name: 'Choisir un prereglage',
|
|
204
|
+
text: 'Selectionnez un son de base.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
bibliographyTitle: 'References',
|
|
210
|
+
bibliography: bibliographyEntries,
|
|
211
|
+
};
|