Skip to content

Commit 54fc1db

Browse files
committed
Оптимизирована фильтрация и сортировка пресетов для страницы артиста, добавлена сортировка по алфавиту с учетом кириллицы в компоненте ClientSearch. Обновлены данные в generations.json с новым пресетом для "Hotel California" и исправлен URL в presets.json.
1 parent 565a5b9 commit 54fc1db

File tree

4 files changed

+263
-6
lines changed

4 files changed

+263
-6
lines changed

app/preset/[artist]/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ export default function ArtistPage({ params }: ArtistPageProps): ReactElement {
4747
const artistSlug = params.artist;
4848
const artistName = artistSlug.replace(/-/g, " ").toUpperCase();
4949

50-
const artistPresets = presets.filter(
51-
(preset) => preset.origin.artist.slug === artistSlug,
52-
);
50+
const artistPresets = presets
51+
.filter((preset) => preset.origin.artist.slug === artistSlug)
52+
.sort((a, b) => a.origin.song.localeCompare(b.origin.song));
5353

5454
if (artistPresets.length === 0) {
5555
return (

components/ClientSearch.tsx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,17 @@ export default function ClientSearch(): React.ReactElement {
1717
.includes(searchQuery.toLowerCase()) ||
1818
preset.origin.part.toLowerCase().includes(searchQuery.toLowerCase()),
1919
)
20-
.sort((a, b) => a.origin.song.localeCompare(b.origin.song));
20+
.sort((a, b) => {
21+
const isCyrillicA = /^[а-яёА-ЯЁ]/.test(a.origin.song);
22+
const isCyrillicB = /^[а-яёА-ЯЁ]/.test(b.origin.song);
23+
24+
// Если одна песня на кириллице, а другая нет
25+
if (isCyrillicA && !isCyrillicB) return 1; // Кириллица идет после
26+
if (!isCyrillicA && isCyrillicB) return -1; // Латиница идет первой
27+
28+
// Если обе на одном алфавите, сортируем по алфавиту
29+
return a.origin.song.localeCompare(b.origin.song);
30+
});
2131

2232
return (
2333
<>

data/generations.json

Lines changed: 248 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,252 @@
11
{
22
"generations": [
3+
{
4+
"timestamp": "2025-09-02T16:25:42.912Z",
5+
"originalPrompt": "The Eagles Hotel California Solo ",
6+
"proDescription": {
7+
"tone_title": "Hotel California - Solo",
8+
"genre": "Classic Rock / 70s Rock",
9+
"sound_description": "Smooth, singing lead tone with moderate sustain, slight warmth, articulate highs, and a touch of vintage character. The sound is expressive with good note separation and a subtle airiness. Not overly aggressive, with a creamy overdrive that preserves clarity.",
10+
"guitar_rig_description": "1. Noise Gate: not used (signal is not high-gain or noisy). 2. Compressor: used lightly at the start of the chain to even out dynamics and add sustain without squashing the tone. 3. Overdrive/Distortion: mild overdrive pedal to push the amp into creamy breakup, emulating classic tube amp overdrive. 4. Amplifier: vintage-style clean-to-mid-gain tube amp (such as a Fender or early Marshall), set for edge-of-breakup tone. 5. Cabinet: 2x12 or 4x12 open-back cab with vintage-voiced speakers for warmth and chime. 6. EQ: used after the amp to gently roll off excess lows and enhance presence for solo clarity. 7. Modulation: not used (core solo is dry, but may have subtle chorus in some live versions; for studio, leave off). 8. Delay: analog or tape-style delay with short repeats and low mix for depth and dimension without distraction. 9. Reverb: plate or spring reverb for natural ambience, subtle to keep the solo forward in the mix.",
11+
"references": [
12+
"The Eagles - Hotel California (original recording)",
13+
"The Eagles - Hell Freezes Over (live version)",
14+
"Joe Walsh - Analog Man (for similar lead sounds)"
15+
],
16+
"song_part": "guitar solo",
17+
"preferred_pickup": "bridge position humbucker or vintage-voiced single-coil, tone = 7",
18+
"additional_info": "Use a guitar with a humbucker in the bridge or a Les Paul-style guitar for warmth and sustain. Medium gauge strings (10-46 or 10-52) help with tone and bending. Play with a medium pick and use expressive vibrato and controlled bends. Palm muting and dynamic picking enhance the solo's phrasing."
19+
},
20+
"realRig": {
21+
"pedalboard": [
22+
"Keeley Compressor Plus",
23+
"Ibanez TS808 Tube Screamer",
24+
"MXR Carbon Copy Analog Delay",
25+
"Boss RV-6 (Plate mode)",
26+
"Boss GE-7 Equalizer"
27+
],
28+
"amplifier": "Fender '65 Twin Reverb",
29+
"cabinet": "Fender 212 Cabinet with Celestion G12-65 (2x12, open-back)",
30+
"settings": {
31+
"amp": {
32+
"Volume": 5,
33+
"Treble": 6,
34+
"Middle": 5,
35+
"Bass": 4,
36+
"Reverb": 2,
37+
"Bright Switch": "On"
38+
},
39+
"compressor": {
40+
"Sustain": 9,
41+
"Level": 10,
42+
"Blend": 10,
43+
"Attack": "fast"
44+
},
45+
"overdrive": {
46+
"Drive": 4,
47+
"Tone": 6,
48+
"Level": 7
49+
},
50+
"delay": {
51+
"Delay Time": "380ms",
52+
"Repeats": 2,
53+
"Mix": 15
54+
},
55+
"eq": {
56+
"100Hz": "-2dB",
57+
"1.6kHz": "+2dB",
58+
"3.2kHz": "+1dB"
59+
},
60+
"reverb": {
61+
"Level": 15,
62+
"Decay": 20,
63+
"Tone": 12
64+
}
65+
}
66+
},
67+
"finalChain": {
68+
"noisegate": {
69+
"type": "Noise Gate",
70+
"enabled": false,
71+
"params": {
72+
"Sensitivity": 50,
73+
"Decay": 50
74+
}
75+
},
76+
"compressor": {
77+
"type": "K Comp",
78+
"enabled": true,
79+
"params": {
80+
"Level": 56,
81+
"Sustain": 43,
82+
"Clipping": 40
83+
}
84+
},
85+
"modulation": {
86+
"type": "CE-1",
87+
"enabled": false,
88+
"params": {
89+
"Rate": 50,
90+
"Depth": 50,
91+
"Intensity": 50
92+
}
93+
},
94+
"effect": {
95+
"type": "T Screamer",
96+
"enabled": true,
97+
"params": {
98+
"Level": 61,
99+
"Drive": 33,
100+
"Tone": 46
101+
}
102+
},
103+
"amplifier": {
104+
"type": "Twin Reverb",
105+
"enabled": true,
106+
"params": {
107+
"Gain": 64,
108+
"Master": 67,
109+
"Bass": 46,
110+
"Middle": 52,
111+
"Treble": 59,
112+
"Bright": 55
113+
}
114+
},
115+
"cabinet": {
116+
"type": "TR212",
117+
"enabled": true,
118+
"params": {
119+
"Level": 50,
120+
"LowCut": 53,
121+
"HighCut": 56
122+
}
123+
},
124+
"eq": {
125+
"type": "6-Band",
126+
"enabled": true,
127+
"params": {
128+
"100": 43,
129+
"220": 48,
130+
"500": 52,
131+
"1200": 56,
132+
"2600": 60,
133+
"6400": 53
134+
}
135+
},
136+
"reverb": {
137+
"type": "Plate",
138+
"enabled": true,
139+
"params": {
140+
"Level": 38,
141+
"Decay": 41
142+
}
143+
},
144+
"delay": {
145+
"type": "Analog Delay",
146+
"enabled": true,
147+
"params": {
148+
"Intensity": 26,
149+
"Rate": 35,
150+
"Echo": 29
151+
}
152+
}
153+
},
154+
"versions": [
155+
{
156+
"chain": {
157+
"noisegate": {
158+
"type": "Noise Gate",
159+
"enabled": false,
160+
"params": {
161+
"Sensitivity": 50,
162+
"Decay": 50
163+
}
164+
},
165+
"compressor": {
166+
"type": "K Comp",
167+
"enabled": true,
168+
"params": {
169+
"Level": 56,
170+
"Sustain": 43,
171+
"Clipping": 40
172+
}
173+
},
174+
"modulation": {
175+
"type": "CE-1",
176+
"enabled": false,
177+
"params": {
178+
"Rate": 50,
179+
"Depth": 50,
180+
"Intensity": 50
181+
}
182+
},
183+
"effect": {
184+
"type": "T Screamer",
185+
"enabled": true,
186+
"params": {
187+
"Level": 61,
188+
"Drive": 33,
189+
"Tone": 46
190+
}
191+
},
192+
"amplifier": {
193+
"type": "Twin Reverb",
194+
"enabled": true,
195+
"params": {
196+
"Gain": 64,
197+
"Master": 67,
198+
"Bass": 46,
199+
"Middle": 52,
200+
"Treble": 59,
201+
"Bright": 55
202+
}
203+
},
204+
"cabinet": {
205+
"type": "TR212",
206+
"enabled": true,
207+
"params": {
208+
"Level": 50,
209+
"LowCut": 53,
210+
"HighCut": 56
211+
}
212+
},
213+
"eq": {
214+
"type": "6-Band",
215+
"enabled": true,
216+
"params": {
217+
"100": 43,
218+
"220": 48,
219+
"500": 52,
220+
"1200": 56,
221+
"2600": 60,
222+
"6400": 53
223+
}
224+
},
225+
"reverb": {
226+
"type": "Plate",
227+
"enabled": true,
228+
"params": {
229+
"Level": 38,
230+
"Decay": 41
231+
}
232+
},
233+
"delay": {
234+
"type": "Analog Delay",
235+
"enabled": true,
236+
"params": {
237+
"Intensity": 26,
238+
"Rate": 35,
239+
"Echo": 29
240+
}
241+
}
242+
},
243+
"prompt": "The Eagles Hotel California Solo ",
244+
"timestamp": "2025-09-02T16:25:42.912Z"
245+
}
246+
],
247+
"id": "gen_mf2rfcax_jf3qzejj5",
248+
"status": "draft"
249+
},
3250
{
4251
"timestamp": "2025-09-02T16:12:03.915Z",
5252
"originalPrompt": "Metallica For Whom The Bell Tolls \nIntro",
@@ -12102,6 +12349,6 @@
1210212349
],
1210312350
"meta": {
1210412351
"version": "1.0.0",
12105-
"lastUpdated": "2025-09-02T16:12:03.925Z"
12352+
"lastUpdated": "2025-09-02T16:25:42.922Z"
1210612353
}
1210712354
}

data/presets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3289,6 +3289,6 @@
32893289
"position": "bridge"
32903290
},
32913291
"slug": "for-whom-the-bell-tolls-guitar-intro",
3292-
"tabsUrl": "https://www.songsterr.com/a/wsa/metallica-for-whom-the-bell-tolls-tab-s572"
3292+
"tabsUrl": "https://www.songsterr.com/a/wsa/metallica-for-whom-the-bell-tolls-tab-s572t2"
32933293
}
32943294
]

0 commit comments

Comments
 (0)