Музыкальный вайбкодинг (19 онлайн)

Code Your Own Synth Plug-Ins With C++ and JUCE
Designing Audio Effect Plugins in C++ For AAX, AU, and VST3 with DSP Theory by Will C. Pirkle
 

Вложения

  • Like
Реакции: Lux
с++ без привязки к дсп по опыту смысла нет учить
Ну как же так? С++ это прежде всего язык программирования на котором общаются с компилятором. Если же исходить из того что эта тема, тема музыкального вайбкодинга... Ну не знаю, вайбкодить вслепую, не понимая всего, что нейронка подкидывает в качестве ответов на промты, ну такое себе. Я бы все-таки занялся изучением языка первично, а использовать эти знания можно в любой сфере.
 
  • Like
Реакции: Lux
@Zerocool, Оно примерно так и есть. Плюс он сам скрипт пишет очень грязно и нестабильно. Мы пробовали сейчас интегрировать это всё в игровые скрипты. Это полных ахтунг. Пока сам всё руками не переберёшь, это всё крайне нестабильная и глючная история. Не знаю как с ла2а, и алгоритмических сценариях, но в игровом движке работает хреново до безумия. Главная проблема там в нестабильности кода, т.к. он плохо понимает вообще логику движка, практически не делает проверку подлинности функции (а это крайне важно, иначе будут постоянные эрроры), при этом пишет через 3 погибели длиннючую и глючную простыню, на элементарный триггер скрипт. Короче не удивительно что современный игрострой стал неимаверно лагучим и глючным дерьмом)))
 
вот что клод нагенерил, если интересно покрутить
а вот что deepseek пофиксил в версии клода :Dle18:

LA-2A Plugin — Critical Fixes & Professional-Grade Improvements​

Below you’ll find a detailed explanation of every discovered issue, the reasoning behind the fix, and the full corrected source files.
All changes are designed to bring the emulation to a professional, release‑ready level while preserving drop‑in compatibility with JUCE 8 / C++17.


Critical Bug: Inverted Feedback Divider (Gain Reduction)​

Problem:
In the original LA2A_DSPChain.h and LA2A_OptoCell.h the feedback divider was computed as:

cpp
gainReduction = R_in / (R_in + R_cds); // WRONG
In a real LA‑2A the LDR is in shunt to ground; the signal arriving at the 12AX7 grid is:

text
V_grid = V_in * R_cds / (R_cds + R_in)
When the light gets brighter (R_cds decreases) the gain drops – that’s the compression mechanism. The incorrect formula increases the gain with more light, making the plugin act as an expander instead of a compressor.

Fix:
Replace with the correct formula everywhere:

cpp
gainReduction = R_cds / (R_cds + R_in);
All related metering (getCurrentGRdB) and README examples are updated accordingly.


Sidechain Pickup Point Mismatch​

Problem:
The sidechain signal was taken directly from the 12AX7 anode (ax7_out). In the original LA‑2A the sidechain feed comes after the output transformer. This changes the loop’s frequency response and harmonic content, affecting the “feel” of compression.

Fix:
Reorder the processing chain:

  1. Input → apply feedback gain reduction (using R_cds from previous sample).
  2. 12AX7 stage → 12BH7 follower → Output transformer.
  3. Take the output transformer signal as the sidechain pick‑up.
  4. Process sidechain → update opto‑cell’s R_cds for the next sample.
This preserves the authentic feedback path and gives the characteristic LA‑2A “grab”.


Missing Oversampling​

Problem:
Tube non‑linearities, the output transformer saturation and the 6AQ5 soft‑clip all generate harmonics that can fold back below Nyquist, causing audible aliasing at normal sample rates.

Fix:
Wrap the entire DSP chain inside a juce::dsp::Oversampling<float> (2x or 4x). All processing is done at the oversampled rate; only the final output is down‑sampled. This is mandatory for a professional product.


Missing Stereo Link​

Problem:
Independent per‑channel compression causes the stereo image to shift with loud transients on one side only.

Fix:
Added a setStereoLink(bool) method. When enabled, the sidechain detector receives the maximum absolute value of both channels, and the same gain reduction is applied to both, keeping the centre stable.


Newton‑Raphson Solver Robustness​

Problem:
The tube solvers use only fixed‑point iteration (or Newton without safeguards). In deep saturation the derivative can become zero, causing divergence and audible “spikes”.

Fix:
Implemented a damped Newton with a fallback to a safe bisection method if the correction exceeds a threshold or convergence fails. This guarantees stability without sacrificing speed.


Emphasis Filter Pivot & Detector Authenticity​

Problem:
The R37 emphasis was a high‑shelf boost (incorrect) and the sidechain detector used an abstract RMS model.

Fix:
  • R37 is now a low‑shelf cut at 1 kHz with up to –10 dB attenuation, matching the original schematic and UA documentation.
  • The detector was replaced with a physics‑based capacitor charge/discharge model (low‑resistance charge, high‑resistance discharge) that replicates the diode+capacitor circuit more faithfully.

Minor Improvements​

  • DC‑block high‑pass was changed from 5 Hz to 20 Hz with 12 dB/oct to prevent subsonic shift after asymmetric clipping.
  • Gain‑staging: INPUT_SCALE and OUTPUT_SCALE are now explicitly tied to a calibration that aims for unity gain when Peak‑Reduction is 0.
  • Metering formula fixed to use the corrected divider.
  • READ.me examples corrected and updated with the new API.
 

Вложения

Ну как же так? С++ это прежде всего язык программирования на котором общаются с компилятором. Если же исходить из того что эта тема, тема музыкального вайбкодинга... Ну не знаю, вайбкодить вслепую, не понимая всего, что нейронка подкидывает в качестве ответов на промты, ну такое себе. Я бы все-таки занялся изучением языка первично, а использовать эти знания можно в любой сфере.
нет так оно не работает нужна цель
с++ огромен и всеобъемлен а ДСП это только малая часть так как с++ относительно быстрработает практически в real-time

мой совет не учить с++ с нуля
а сразу переходить к ДСП фильтрам, delay line, oversampling, interpolation, FFT, saturation, envelope follower и другим базовым вещам, которые реально используются в ДСП аудио
а уже по мере необходимости изучать остальной с++ если оно нужно
 
Последнее редактирование:
  • Like
Реакции: dugdum®
Когда мало мальски в теме - начинаешь поминутно ловить фейспалмы )и так практически со всем что пытаешься его заставить делать )

Ловишь фейспалмы, исправляешь, так и продвигаешься к конечному результату. И достигаешь его, в отличии от тех, кто нихрена не делает, только рисуется и критикует.
 
  • Like
Реакции: Lux и dugdum®
а сразу переходить к ДСП фильтрам, delay line, oversampling, interpolation, FFT, saturation, envelope follower и другим базовым вещам, которые реально используются в ДСП аудио
таки это не с++, а прикладные алгоритмы ) но полностью поддерживаю, так как себя мучил интенсивом от яндекса и писал поисковый сервер и навигатор )
 
Плюс он сам скрипт пишет очень грязно и нестабильно. Мы пробовали сейчас интегрировать это всё в игровые скрипты. Это полных ахтунг. Пока сам всё руками не переберёшь, это всё крайне нестабильная и глючная история.
а каким ИИ и в чём это писалось? чат-бот \ агент в IDE ? платный \ бесплатный ?
если платный агент, то странновато, последнии версии агентов намного лучше с кодом работают :rolleyes: :Dle47:
 
И достигаешь его, в отличии от тех, кто нихрена не делает,
Это ты о себе )?)) , ну так найди себе занятие ) наконец ) и перестань чушь писать на форуме ):)
в музыке понятно не состоялся, - ну говорят сейчас вроде неплохо платят каменщикам (с)
 
@evgeny26, Пробовали бэйзи, это непосредственно агент для юнити, он ещё более-менее вдупляет что он находится в определённой архитектуре. остальные - полный треш, банально нерабочие для этого.
 
  • Cry
Реакции: evgeny26
Если кратко описать суть, на данный момент, ии ассистенты там, это просто для совсем раков, которые вообще в кодинге не шарят (типо меня например) возможно это некого рода круто. Я шарил в очень старом движке, который сейчас просто уже не актуален, а учиться новым (языку) - не хочу. По этому, лишь образно вижу, например, какую-то функцию, которая занимала, к примеру, нное количество символов в старом движке, и, если в новой, я вижу тонну символов (раз в 10-20 больше), я просто понимаю, что это какая-то лажа. Чел который у меня кодит, говорит примерно то же самое, но он шарит и за новый язык. Если работать с одним движком, там и так есть уже наработанные шаблоны рабочих скриптов и функций, у каждого кодера, которые будут работать без вопросов всегда. А вот с ассистентом приходится перепроверять ВСЁ тотально, и править почти всегда беЗпристанно. Это просто больше количество времени уходит на это. Как это странно бы не показалось.
 
  • Like
Реакции: Ицык
Ну, а я программирую большой образовательный проект. И хоть и не мало музыкантом работал в жизни, основной специальностью была преподаватель.
И посколькую уже 9 месяцев программирую с помощью ИИ часов по 10 в день, чуть больше тебя в этом понимаю. )
 
Кстати, поделюсь мааленьким кусочком моего проекта, сделанным в декабре.

cortexgym.com/wikitype - это клавиатурный и языковой тренажер. Печатаешь иностранный текст, а браузер произносит слова, которые ты печатаешь. А по наведению тултип с переводом появляется. Для изучения языков очень полезно.
 
Последнее редактирование:
@Константин Викторович, а что они на днях в юньке там обновили в своем встроенном ИИ? Видос свежий видел на днях с их офф.канала. Это же и есть этот бэйзи?
Не знаю. Не сильно по видосам шарю. И дорожную карту их даже не смотрю. Работает и работает, чё-то обновляют. У них и так каждый год вайб движка тотальный. Лень уже вынюхивать чего там происходит внутри. Тем более мы пока на очень любительском уровне всё юзаем, и на самодеятельной основе))
 
  • Like
Реакции: Ицык
Единственно, есть большой плюс от него, это когда нужно заменить, к примеру, одну переменную определённого значения во всех скриптах (их например 1000 штук). Руками это может занять около суток вообще. С ИИ пару минут. Но это можно и в пауер шелле вообще сделать было, 20 лет назад)
 
Единственно, есть большой плюс от него, это когда нужно заменить, к примеру, одну переменную определённого значения во всех скриптах (их например 1000 штук). Руками это может занять около суток вообще. С ИИ пару минут. Но это можно и в пауер шелле вообще сделать было, 20 лет назад)
В VS Code это так же работает без всяких ИИ и шелов. Просто продвинутый редактор, он видит всю папку проекта. Меняешь имя одной переменной, а меняется везде, по всему проекту.
 
И посколькую уже 9 месяцев программирую с помощью ИИ часов по 10 в день, чуть больше тебя в этом понимаю. )
нет , это говорит лишь о том что ты ровным счетом них... , не понимаешь ни в ии ) ни в кодинге ) а просто один из членов многочисленной армии суноговнописателей и говноиикодеров ))
Усиливаете энтропию вселенной и количество мусора в инфосфере )) но вселенная вас за это неизбежно накажет , так или иначе))
Как я уже говорил единственное значимое достижение ии на данный момент - это то что он дает безусловную возможность дилетантам и дуракам увеличить свое эго )))))))...и стать причастными к чему то , к чему бы их в обычных обстоятельствах не подпустили бы на пушечный выстрел ))
поэтому количество яжпрограммистов , яжпсихологов , яжмузыкантов - увеличилось в геометрической прогрессии ) правда с нулевым приростом в качестве)) а точнее по большей части с отрицательным )) ...
 
Последнее редактирование:
  • Like
Реакции: AAG

Сейчас просматривают