xLightsSequencer / xLights

xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers.
GNU General Public License v3.0
543 stars 201 forks source link

A different music file for value curves. #3820

Open HPMDS opened 1 year ago

HPMDS commented 1 year ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

For example: With the music: "Queen - We Will Rock You", I would love to use a music value curve on the DMX effect for the dimmer of a fixture sync with another secondary mp3 file with only the audio of the drum (for example using STEM Separation to separate the instruments), while playing the original song file in the speakers.

Describe the solution you'd like A clear and concise description of what you want to happen.

I want to have audio files usability as a mixture of timing track and value curve (especially in the DMX Effect)

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

The only other alternative I found was mix the song on Audacity with only the audio of each timing exclusive for one effect and use xScheduler with the original audio track, I haven't test it because it would be very complicated to do and I don't know if there is a easier method for achieving this effect.

Additional context Add any other context or screenshots about the feature request here.

(This is a different song from the example above)

This is de dimmer value curve using the full song. Xlights Audio Original

This is the dimmer value curve using only the vocal track. Xlights Audio Voz

HPMDS commented 1 year ago

I just found out this is a duplicated issue from #3620 and #2715, but I think it still a good solution, and by the way a good way of dealing with this would be importing a project directly from Audacity .aup3 and choose a main track for the sound output or the overall, and on the value curve when using a Music (Inverted Music and Music Trigger Fade) use the Timming track selector as a audio track selector. image

DoctorWiz commented 1 year ago

This is an enhancement I would also like to see. I do have a workaround but it is a little cumbersome and requires some basic coding skills. You can load the spleet/stem audio file into Audacity and then go to Tools->Sample Data Export and create a text file of values. Then use Python, Java, or the language of your choice to parse that and convert or scale the values and put them in a Value Curves .xvc file. Both are very simple file formats, just not directly compatible. You can do it for the entire song, or just any portion you specify. Now apply the custom Value Curve file you created to the effect setting you want. (Note that 'Linear' scale output from Audacity is the most similar and requires the least fiddling with. Mostly you just need to scale the floating point numbers up by a factor of 4 or 5, and convert from value-per-line text into comma-separated-values in the Value Curves file. Exact scale factor will vary according to the 'volume' of the audio file.)

HPMDS commented 1 year ago

Do you have a example of that code somewhere?

DoctorWiz commented 1 year ago

My script is part of a larger set of utilities in C# winforms but I'll see if I can extract just that part for you. It's rather complicated because I way overthought it and it does rounding and bounds checking, centering... A far simpler version is possible.

computergeek1507 commented 1 year ago

I would be curious about your c# application, I hope to add multi audio support as part of my master research.

DoctorWiz commented 1 year ago

Sorry about the delay... My original C# app has several of my custom libraries, and uses a number of 3rd party UI controls, none of which are truly necessary. So I've created a stripped down version for you and anyone else who may be interested. ValueCurveGenerator.zip The logic is in frmValues.cs -> FileAnalyze(...) and FileExport(...) For more info contact wizard at wizlights dot com.

Apollorion commented 10 months ago

Theres an easy (sorta hacky) way to do this today with xlights. I spent like 4 hours today trying to figure this out.

  1. Create a new sequence with your isolated track
  2. Create all the value curves and effects to your hearts desire for the entirety of your isolated track
  3. Save the sequence fseq file.
  4. Create another new sequence with your original, unisolated track.
  5. File -> Sequence Settings -> Data Layer -> Import -> Select the isolated fseq file.
  6. Profit!

Nothing will show up in the sequencer for the selected models, but you will see your lights do whatever you told them to do from the isolated track playing correctly with the unisolated track. You can even still modify the models in the new sequence and it will take precedence over the isolated sequence.

AzGilrock commented 10 months ago

Theres an easy (sorta hacky) way to do this today with xlights. I spent like 4 hours today trying to figure this out.

  1. Create a new sequence with your isolated track
  2. Create all the value curves and effects to your hearts desire for the entirety of your isolated track
  3. Save the sequence fseq file.
  4. Create another new sequence with your original, unisolated track.
  5. File -> Sequence Settings -> Data Layer -> Import -> Select the isolated fseq file.
  6. Profit!

Nothing will show up in the sequencer for the selected models, but you will see your lights do whatever you told them to do from the isolated track playing correctly with the unisolated track. You can even still modify the models in the new sequence and it will take precedence over the isolated sequence.

Shhh....those secrets are for elite users. :)