Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Take inspiration from YTPs; add a mode that creates sped up and slowed down copies of the carrier before finding matches #38

Open
optionboom opened this issue Mar 26, 2023 · 4 comments

Comments

@optionboom
Copy link
Contributor

In YTPs, it's common to use sped up and slowed down audio/video clips of the source. We could do the same thing, which would add variety to the output, especially for short carriers, and increase how much the output matches the modulator. The benefit would be more noticeable at larger frame-lengths.

The specific process I'm envisioning is that copies of the carrier are made at something like 70%, 200%, and 300% speed, then a new file is created that's the original and the copies all stitched together end-to-end. I assume all that can be done with ffmpeg. After that, the new file is analyzed like normal.

I feel like this is within the scope of the project in a way just pitching up/down frames or vocoding the output wouldn't be, but I don't think it should be default behavior.

@ArdenButterfield
Copy link
Owner

This is a cool idea! The process you've described sounds very doable within how the code is currently structured. This makes me think about pitch vs speed vs tempo shifting: Do we want to speed up the carrier in a way that changes the pitch or not? I agree that changing the speed without the pitch would make more of a difference on large frame-lengths. I'm not opposed to changing the pitch of frames either— that's certainly within the realm of YTPs as well.

@optionboom
Copy link
Contributor Author

I was imagining changing the speed in a way that changes the pitch, I think that would be more interesting.

@ArdenButterfield
Copy link
Owner

That would be very cool. I wonder also if it would be possible to change the matching algorithm to allow changing in pitch. So instead of calculating the distance between modulator frame i and carrier frame j, it would calculate the optimal pitch shift of the carrier and distance at that pitch shift between the two frames.

I have a hunch that there would be more efficient ways to do this than simply making lots of copies of the carrier at different speeds, and that we could get more control over options of pitch shifting. These distance algorithms between spectrograms are still something I want to research more for this project.

@optionboom
Copy link
Contributor Author

I played around with doing the technique I described manually, and the results were (IMO) pretty mediocre, and of course inefficient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants