Quick Sign In:  

Forum: Wishes and new features

Topic: Suggest similar cue points when a new cue point is set.
Hey VDJ community!

I recently read this article which provides a simple algorithm for identifying similar parts of a song (based on frequency distribution): https://towardsdatascience.com/finding-choruses-in-songs-with-python-a925165f94a8

The algorithm has already been implemented in Python here: https://github.com/vivjay30/pychorus

In the article, the author focuses on applications to find the "chorus" (most repeated part of a song) provided no additional information about the song.

There are a few constraints that would make this algorithm more precise & efficient:

1. A predefined starting point, and optionally an end point or length.
If a start point is provided, it narrows down the sample the algorithm is matching against in the song. If an end point is provided it also enables the algorithm to increase confidence in a match since it can consider all samples in the window (between the start and end point) when determining if the section matches.

2. A predefined song structure (starting beat, bpm & phrase).
Similar to providing a start & end point of the sample, knowing the starting beat, bpm & phrase enables the algorithm to efficiently match samples by comparing them based on predefined start and end points (on beat, bar, verse etc.) as opposed to arbitrarily comparing every sample. Depending on the application of this structure it could either make the algorithm more efficient or accurate.

3. Isolation of frequency ranges / tracks (stems).
By comparing only samples from the same "stem" track or frequency range (vocals, beat, drums, instruments etc.) this would enable more accurate selection of similar samples since there is less variance introduced from other tracks. Effectively, comparing only isolated tracks reduces the noise that may interfere with sample comparison. For example, when trying to find the vocal chorus of a song, comparing only samples from the vocal track would make it far more accurate (since the instrumental may vary significantly from chorus to chorus).

Taken together all three of these constraints are already available in VDJ! If applied correctly with the original algorithm, this could enable a feature such as suggested cue points (saving countless hours of setting cue points of course):
1. User sets a cue point in VDJ
2. VDJ scans the song for similar sections to where that cue point is set.
3. VDJ suggests cue points to be set (with the same name, color etc.) where similar sections are found.

I have a few asks from the VDJ community:
1. Does the SDK (for plugins) have enough access to implement this feature?
2. If not, could the VDJ team consider providing access and/or implementing this feature?
3. What are your considerations / questions about this approach?

Thanks for reading!

- A long-time VDJ script writer...
 

geposted Fri 01 Oct 21 @ 6:16 am