Skip to content

Stream music/audio to WLED Sound Reactive. Real time audio data analysis: volume, FFT, pitch detection etc.Include RTMGC. Include Real Time Music Mood Detection.WLED audio sync integrated v1 for esp8266 & v2 message for esp32.

License

zak-45/WLEDAudioSync-Chataigne-Module

Repository files navigation

image + image =

WLEDAudioSync Module for Chataigne.

Stream music/audio datas to WLED Audio reactive.

Real time audio analysis : the real time audio datas are not supposed to be fully accurate for scientific works but enough for light show creation. See : https://youtu.be/YtS6dwke0LE

Real Time Beat/ BPM sent to OSC

Real Time Music Genre Classification sent to OSC : get real-time music genre predictions based on the analysed audio stream.

Real Time Music Mood Detection sent to OSC: set Colors based on the music mood.

Should work on any OS where Chataigne is running.

This can be used with or without WLED device

- Send your music from any computer to WLED sound reactive LED.

- Should Work on any OS where Chataigne run ( Win/Mac/Linux/Pi ). 

- You only need to have WLED Sound Reactive version installed. 
  No Hardware( micro: analog or digital) required. 

- Use UDP Multicast, so your LED strip can be anywhere.
  adjustable rate let you choose between bandwidth / reactivity

- Send different message version, to different UDP port with different settings at same time
  thanks to Chataigne's Multiple Instances feature. 
  
- Capture audio datas ( snapshot ) and replay them ( replay ). 

- All WLED Sound Reactive effects supported: volume based or FFT based.

- Message version 1 (V1) and version 2 (V2) included, so can stream even to ESP8266 

- Real time FFT Analysis fully customisable by GUI
  this provide different way for effects customisation.

- Real time pitch detection : freq / pitch / note / octave
  thanks to Chataigne...

- Real Time audio analysis :
  thanks to https://friture.org/

- Real Time Beat and BPM  send data via OSC
  thanks to https://github.com/DrLuke/aubio-beat-osc

- Real Time Music Genre Classification send data via OSC  
  thanks to Essentia.js https://mtg.github.io/essentia.js/

- Real Time Music Mood Detection send data via OSC
  thanks to : https://github.com/tyiannak/color_your_music_mood

For Chataigne : http://benjamin.kuperberg.fr/chataigne/en#download --> min version 1.9.17b10

For beat / BPM see : https://github.com/zak-45/WLEDAudioSyncRTBeat

For Friture see : https://friture.org/

For RMTGC see: https://github.com/zak-45/WLEDAudioSyncRTMGC

For RTMMD see: https://github.com/zak-45/WLEDAudioSyncRTMood


Installation :

For Windows

Download release : Windows Installer

You have two options :

-1- WLEDAudioSync.exe provide full installation, options :

This will install chataigne module / and optionally : Chataigne  && all portable apps e.g. Friture / WrtmgcSRV ...

Nota : Provide portable Nodejs with WrtmgcSRV.js preconfigured (optional but recommanded to use RTMGC).

-2- WLEDAudioSync-Portable.zip is a 'portable' version :

If you want only to use the WLED audio sync feature in a easy way, this one is for you.

Just unzip it and execute WLEDAudioSync.cmd.
This will do all necessary steps to have a running Chataigne with Beat detection.
No installation, only required folder creation (done when first time run it).
--- Check "%USERPROFILE%\Documents\Chataigne" folder

You need to accept the unknown app and allow firewall

image

Manual (any OS with Chataigne installed)

Take all from this repository and 
Copy  to <MyDocuments>\chataigne\modules\WLEDAudioSync.

This is enough if you want to use WLED audio sync only.

Options

You will need additional step for beat / BPM / RTMGC or RTMMD if you want to use these features.
       For BPM, you can download binary from https://github.com/zak-45/WLEDAudioSyncRTBeat
       For RTMGC, you can download binary from https://github.com/zak-45/WLEDAudioSyncRTMGC
       For RTMMD, you can download binary from https://github.com/zak-45/WLEDAudioSyncRTMood
       To use integrated tools (not mandatory), you need to customize :
       rtmmd.cmd, rtmgc.cmd, aubio.cmd, friture.cmd, multicast.cmd


Use it (Win 'portable' version):

Open folder with unzipped files and click on WLEDAudioSync.cmd

image

You will be able to found the running program under 'hidden icons':

image

If you "left - click" on it, this will open the main interface. ("right - click" is for EXIT) :

image

From there, you will be able to modify settings /parameters. This should be necessary only the first time to put your audio parameters and the defaults one e.g. run at startup, minimized etc ...

image

image

If you want to be able to acces main dashboard menu via a Web Browser :

image

Once done, click on save and close Chataigne with the 'cross X'

image

You are ready now to send your audio datas to any WLED device with audio reactive firmware configured to receive them.

If you want to modify data sent, you can access the main features from any web browser, this mean even from your phone / tablet, by entering the IP address of your running PC and port number '9998' e.g. http://192.168.x.y:9998

image

Use it (full options):

Open  Chataigne.

Go to Modules, right click, Protocol/Community Modules, WLEDAudioSync.

image

Initial settings with WLED : https://youtu.be/5Y2O9qGDVE0

On Inspector:

  Multicast Mode: need to be checked
  IP Address to bind: select the computer IP address if more than one.
  Send Test Message: if more than one network interface and had trouble to send data to MulticastGroup, click on it to send a test message.
  Live : use real time audio data, uncheck when want to use the replay feature.
  Visualize live audio : run Friture, live audio analyzer.
  Audio V1 : V1 message format
  Audio V2 : V2 message format ( to be used mainly )
  Delay : delay in ms before sending audio data. audio data during delay are lost.
  Volume Multiplier : multiply Chataigne volume audio data before sent
  Frequency Magnitude Multiplier : multiply Chataigne FFT Magnitude data before sent
  Take snapshot : This will take audio datas snapshot and save them to file. Used by the replay feature.
  
  Local : send to local IP (127.0.0.1). This will freeze audio data to send.
  Remote Host : MulticastGroup address
  Remote Port : port number to bind
  
  Use BPM : will create corresponding process for Beat via OSC
    if unchecked and WLEDAudioSyncRTBeat process is running, this will kill it.
  Input audio : audio devices detected by WLEDAudioSyncRTBeat list command 
    the one selected will be used when 'Force reload' clicked.
  Script file : script file name for OSC module
    use OSCBPM.js under modules folder.
  Force reload : kill (if running) and create a new WLEDAudioSyncRTBeat process.
  
  Use RTMGC : this will execute the Nodejs server and launch chrome
  Server Port : port number for the Nodejs server , default to 8000
  Script file: script file name for OSC module
    use OSCRTMGC.js under modules folder.
  
  Update Rate : frequence to send audio data message to WLED (fps)
    set rate from 1 fps to 1000 (for test stress: dangerous), 50 is recommended.
  

image

image

image

On Command Tester, Replay / FFT : all WLEDAudioSync available commands

    Replay / Snapshot : provide you the possibility to 'replay' audio data from snapshot with defined duration (max 1500 ms).
        The snapshot is not limited to the played effect, you can change settings and/or effect.

image

image

   FFT / WLED : got two choices on how FFT data will be captured. OLD or NEW. 
      / Custom : custom FFT data analysis capture with variable size.

image

image


Let see that on the FFT Analysis Chataigne sound card Module. You can even do any modification you like afterward.

NEW image

OLD image

Custom / size 0.10 image


Audio Configuration:

Linux : https://wiki.ubuntu.com/record_system_sound

Mac : https://github.com/ExistentialAudio/BlackHole

Win : https://thegeekpage.com/stereo-mix/

For audio control, Voicemeeter is one of the best tools : https://voicemeeter.com/

2023-03-24.18-20-57.mp4


Real Time audio analysis: all values you see there can be used by State Machine or others and by scripts.

2023-04-08.00-49-54.mp4

RTMGC : real time music genre detection. Detected music genre is sent to Chataigne via OSC.

2023-05-14.16-42-14_Trim_Trim_Trim_Trim.mp4

LedFx demo

Click here : https://youtu.be/yu8QgQlLT5g

image


WLED demo

click here : https://youtu.be/NIcdctzx6TY?feature=shared

image


***Info ***

This module use WLED Audio Sync feature to send data via UDP / Multicast. Message version 1 & 2 are provided. // On 10/03/2023: Multicast do not work as expected on Chataigne, mainly when more than one network card. Small python utility provided to bind on UDP port on specified IP address and join the MulticastGroup in case of. See : https://github.com/zak-45/WLEDAudioSyncMCast

On 26/03/2023: for ESP8266, old SR WLED fw version required : 0.13.0b3 https://wled-install.github.io/. Port to the 0.14.xx version is on TO DO list...

About

Stream music/audio to WLED Sound Reactive. Real time audio data analysis: volume, FFT, pitch detection etc.Include RTMGC. Include Real Time Music Mood Detection.WLED audio sync integrated v1 for esp8266 & v2 message for esp32.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published