Hi,

About 5 years ago I wrote about 80% of the code you're asking for
here. It used to reside in a folder called macro/ or something. I
suspect it's been deleted from the tree now due to being
unfinished/unmaintained but it must live in the repository somewhere,
RJ or someone would be able to tell you.

It took a pretty lax attitude to memory management and it definitely
won't compile without some modifications but it's probably a useful
reference or starting point.

The code can (as in could 5 years ago):
* Record signals from multiple ControlObjects
* Compress large sets of recordings from analogue controls into an
approximate set of linear segments
* Store the recording as a lua script which is then hand tunable outside Mixxx
* Play back the recording

Adam

On 17 December 2012 20:55,  <wolfbi...@gmail.com> wrote:
> Hello Mixxx,
>
> Ok, first the short synopsis of my idea: I want to be able to record my
> transitions, and have auto-dj mix between songs and recorded transitions. My
> initial questions would be: First, does this already exist? If not, is there
> some inherent problem explaining why this doesn't already exist?
>
> -----------------------------------------------------------------------------------------------------------
> Idea
> -----------------------------------------------------------------------------------------------------------
>
> The idea is that computers and ai may not (yet) be able to match human
> creativity in music, but they can perfectly reproduce something that a human
> has already done (even better: a computer can do it infinitely many times,
> will never forget how to do it, AND can "remember" infinitely many
> transitions - all of which are impossible for human DJs).  Furthermore,
> songs can be represented as graph nodes, while mixes can be graph edges
> (with orthogonal ratings such as smoothness, harmony, energy level, etc
> (more on this later)) . Given enough crowdsourced edges (ie with enough DJs
> recording and rating transitions), auto-dj would be able to handle song
> requests during a live mix by applying graph search algorithms (with
> heuristics based on the ratings) in order to smoothly transition from the
> current song to the requested song (either directly or through connecting
> song-nodes).
>
> In this way, I fully believe auto-dj can absolutely reproduce anything a
> human DJ can do.  World-ranked EDM DJs know that what they do in a "live"
> performance is not difficult:
> http://deadmau5.tumblr.com/post/25690507284/we-all-hit-play, even if they're
> adverse to admitting it. It might seem like I'm suggesting human DJs are
> obsolete... Well, in many ways they are. I think that what human DJs are
> doing NOW is something that can be easily replaced with automation, allowing
> the live human to do even MORE on top of that (thereby extending the
> computer science idea of abstractions and blackboxes to music).
>  The possibilities here are quite profound - I could continue for days on
> this subject - but in an effort to keep this concise, I'll leave it with the
> tantalizing thought that the live human DJ is now free to further express
> his or her musical talent through anything else (eg adding complex effects,
> playing live instruments, sampling extra sounds).
>
> Oh, and from the lay user's perspective? Imagine your "favorites" playlist
> mixed as if by one of the world's best DJs.
>
> -----------------------------------------------------------------------------------------------------------
> Implementation
> -----------------------------------------------------------------------------------------------------------
>
> Myself and others have been mulling this idea around for ~6 months, and it's
> gotten to the point where that itch needs to be scratched. Although I could
> do this external to Mixxx (record midi messages sent from my controller to
> Mixxx via jack midi routing, then reproduce them when I wanted), it would be
> better in multiple respects for the implementation to be within Mixxx
> itself. I have in mind three general steps to take in terms of the mechanism
> by which auto-dj records and subsequently plays back transitions:
>
> 1. Record transitions via audio binary.
> This can be adapted from Mixxx's built-in recording setup: when the record
> button is pressed, record the current deck states as metadata linked to the
> transition sample. Auto-dj, also informed of the connections between songs
> and transitions, would then simply make a decision as to where it wants to
> go next based on the current song and active heuristic.
>
> 2. Record which, when, where, and how controls are tweaked during
> transitions.
> This takes way less memory, as the control data size is << the transition
> audio file size. Plus, now we can get into interesting things like seeing
> the actual controls move / now the DJ can add effects simultaneous to
> auto-dj's transitions.
>
> 3. Present control tweaks in a human readable format.
> That the recording can now be modified, extended, and even generated only
> begins to describe the possibilities this presents:
> "There are known knowns; there are things we know that we know.
> There are known unknowns; that is to say there are things that, we now know
> we don't know.
> But there are also unknown unknowns – there are things we do not know we
> don't know."
> Quote from https://en.wikipedia.org/wiki/There_are_known_knowns
>
> -----------------------------------------------------------------------------------------------------------
> Working Status
> -----------------------------------------------------------------------------------------------------------
>
> Right now, I'm working on step 1. I plan on adding code to
> src/recording/enginerecord.* which will signal when the record button is
> pressed for start and stop.  However, I'm having troubles including an
> additional file I've named mixrecord: How do you make sure the new file gets
> compiled properly? After running scons, I can't find mixrecord.o in
> lin64_build.
>
> On the other hand, I have also drafted up some SQL schema additions for
> storing the transition metadata: http://pastebin.com/raw.php?i=FDkGktDK. The
> idea is that a "mix" is a recorded transition which has at at least 2 "mix
> points" (the start and end of the mix), while mix points have deck and
> master states which capture the control values at a given mix point.
>
> Let me know if you have any questions, answers or suggestions; I am new to
> cpp and qt (but not new to programming).
>
> -Kane
>
> ------------------------------------------------------------------------------
> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
> Remotely access PCs and mobile devices and provide instant support
> Improve your efficiency, and focus on delivering more value-add services
> Discover what IT Professionals Know. Rescue delivers
> http://p.sf.net/sfu/logmein_12329d2d
> _______________________________________________
> Get Mixxx, the #1 Free MP3 DJ Mixing software Today
> http://mixxx.org
>
>
> Mixxx-devel mailing list
> Mixxx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mixxx-devel

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to