<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Boobalan Arjunan</title>
    <description>The latest articles on DEV Community by Boobalan Arjunan (@boobalan_arjunan).</description>
    <link>https://dev.to/boobalan_arjunan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4184493%2F31d4087b-c115-4a5d-bb32-982835587c7d.jpg</url>
      <title>DEV Community: Boobalan Arjunan</title>
      <link>https://dev.to/boobalan_arjunan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/boobalan_arjunan"/>
    <language>en</language>
    <item>
      <title>Teaching Generative Audio Models Non-Western Rhythms: Fine-Tuning ACE-Step 1.5 with LoRA on 6/8 South Indian Percussion</title>
      <dc:creator>Boobalan Arjunan</dc:creator>
      <pubDate>Fri, 16 Oct 2026 10:55:15 +0000</pubDate>
      <link>https://dev.to/boobalan_arjunan/teaching-generative-audio-models-non-western-rhythms-fine-tuning-ace-step-15-with-lora-on-68-7nn</link>
      <guid>https://dev.to/boobalan_arjunan/teaching-generative-audio-models-non-western-rhythms-fine-tuning-ace-step-15-with-lora-on-68-7nn</guid>
      <description>&lt;p&gt;State-of-the-art music generation models like &lt;strong&gt;ACE-Step 1.5&lt;/strong&gt; are technical marvels, but they carry a known systemic blindspot: they were trained predominantly on Western 4/4 structures.&lt;/p&gt;

&lt;p&gt;When you prompt foundation models for traditional South Indian acoustic percussion like &lt;strong&gt;Parai, Thappu, or high-energy Dappankuthu&lt;/strong&gt;, the output falls flat. The reason is musical and mathematical: our folk drumming relies on &lt;strong&gt;6/8 compound time signatures (tha-ki-tta, tha-ki-tta)&lt;/strong&gt; and rapid acoustic transient spikes that standard cross-attention layers fail to resolve on standard binary grids.&lt;/p&gt;

&lt;p&gt;To solve this, I fine-tuned and open-sourced &lt;strong&gt;SouthIndiaParaiLoRA&lt;/strong&gt; on top of the ACE-Step 1.5 foundation architecture.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔬 Engineering &amp;amp; Training Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Base Architecture&lt;/strong&gt;: ACE-Step 1.5 (&lt;code&gt;acestep-v15-x1-base&lt;/code&gt; &amp;amp; &lt;code&gt;turbo&lt;/code&gt; compatible)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dataset&lt;/strong&gt;: 393 studio-quality stems of authentic Parai, Thappu, Thappattam, and Urumi loops (80 – 172 BPM)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware&lt;/strong&gt;: 30 epochs on an NVIDIA A40 (48GB VRAM) via RunPod&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LoRA Configuration&lt;/strong&gt;: Rank 64, Alpha 128&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimization&lt;/strong&gt;: Slashed final loss by &lt;strong&gt;75.5%&lt;/strong&gt; (from a 1.97 baseline down to &lt;strong&gt;0.48&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ How to Run in ACE-Step Playground &amp;amp; ComfyUI
&lt;/h2&gt;

&lt;p&gt;The model weights are released in standard &lt;code&gt;.safetensors&lt;/code&gt; format:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. ACE-Step Playground
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Clone the engine: &lt;code&gt;ACE-Step-1.5-PlayGround--Engine&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Drop &lt;code&gt;adapter_model.safetensors&lt;/code&gt; and &lt;code&gt;adapter_config.json&lt;/code&gt; into:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   checkpoints/SouthIndiaParaiLoRA/final/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Launch the WebUI and select &lt;code&gt;SouthIndiaParaiLoRA&lt;/code&gt; from the LoRA dropdown.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2. ComfyUI Workflow
&lt;/h3&gt;

&lt;p&gt;Load &lt;code&gt;adapter_model.safetensors&lt;/code&gt; directly into your standard ACE-Step 1.5 LoRA loader node.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Example Prompt
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt: High energy South Indian dappankuthu street festival drumming, massive thappu ensemble, authentic 6/8 compound folk rhythm at 145 BPM, urumi and parai dynamic groove
Lyrics: [Instrumental]
LoRA Scale: 0.85

🎧 Model Weights &amp;amp; 7 Audio Demos

The adapter weights and 7 pre-rendered audio demos across different tempos and rhythmic variations are available under Apache 2.0 on Hugging Face:

👉 [Hugging Face Model Card &amp;amp; Demos]

(https://huggingface.co/boobalanit/ACE-Step-1.5-SouthIndiaParaiLoRA)

I'd love to hear feedback from fellow researchers, audio engineers, and developers experimenting with ACE-Step or regional music synthesis!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>deeplearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>WaveWash: Clean, Repair, and Dedupe Audio Datasets Before ML Training</title>
      <dc:creator>Boobalan Arjunan</dc:creator>
      <pubDate>Wed, 14 Oct 2026 11:09:26 +0000</pubDate>
      <link>https://dev.to/boobalan_arjunan/wavewash-clean-repair-and-dedupe-audio-datasets-before-ml-training-4jk4</link>
      <guid>https://dev.to/boobalan_arjunan/wavewash-clean-repair-and-dedupe-audio-datasets-before-ml-training-4jk4</guid>
      <description>&lt;p&gt;Training speech models (Whisper, TTS, voice cloning) often breaks down because of dirty audio data: clipping, DC offset, background noise, low SNR, and duplicate samples quietly inflating validation metrics.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;WaveWash&lt;/strong&gt; to automate audio quality control and data prep so developers don't have to write one-off scripts or manually listen to thousands of audio files.&lt;/p&gt;




&lt;h2&gt;
  
  
  What WaveWash Does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tuned Presets:&lt;/strong&gt; Built-in profiles for ASR (Whisper), TTS, Speaker ID, and Music Generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe Auto-Repairs:&lt;/strong&gt; Corrects DC offset, mild clipping, and normalizes loudness (EBU R128).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Segregation:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;clean/&lt;/code&gt; : Audio that passed all checks.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;_error/&lt;/code&gt; : Rejected files categorized by reason (&lt;code&gt;low_snr/&lt;/code&gt;, &lt;code&gt;clipping/&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;_duplicates/&lt;/code&gt; : Exact and near-duplicates set aside (nothing is deleted).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;_logs/&lt;/code&gt; : Complete audit logs (CSV, JSON, and Markdown summaries).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Config Local Web UI:&lt;/strong&gt; Ships directly inside the Python package — no Node.js build required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-Destructive:&lt;/strong&gt; Your original files are never modified.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;p&gt;Install and launch the local web UI in two commands:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
pip install wavewash
wavewash app

It opens your browser at http://127.0.0.1:8420.

You can also run it directly from the terminal:

wavewash run --input ./raw_audio --output ./clean_audio --purpose asr


Links
PyPI: https://pypi.org/project/wavewash/
GitHub: https://github.com/BoobalanArjunan/wavewash
It's currently in early alpha (v0.1.0a1). Feedback, issues, and feature suggestions are very welcome!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
