On February 8, 2013 03:20:24 AM Tim E. Real wrote:
> On February 6, 2013 12:04:46 PM Florian Jung wrote:
> > Am 06.02.2013 10:01, schrieb Tim E. Real:
> > do you understand why we need so individually stretch every event?
> 
> No.
> Because the 'intrinsic' tempo map that we will store with a wave
>  will be static and will never change unless the user re-taps or clears it
>  or re-draws it on some special graph or whatever.
> Every wave event using that wave, no matter where its position, only needs
>  that intrinsic tempo map, to compare with the global tempo map and apply
>  the differences back to the converters.
> That goes as well for even shared wave events in clones and non-clones.
> 
> And moving a wave event around does not change its intrinsic tempo map.

Crud. It takes time to call up the vast repository of knowledge and experience
 and formulate an answer and sometimes I misunderstand.

You aren't referring to the intrinsic tempo maps. 

You are referring to the fact that you need independent stretched
 copies of each wave event.

And that cannot easily be done with shared event lists.
So you want independent event lists, even for so-called clones.

I was looking at it from my realtime point of view.
I could certainly benefit from independent event lists as it would sure
 relieve my headache of finding out what wave part contained them.
But I believe in my case independent lists would not be absolutely required.

In your case yes, you could work around it but yep, basically it's required.

There is another elephant in the room:

Even in completely independent event lists containing independent
 events, the events can refer to the same EventBase pointer.
That is, they eventually point to the same SndFile or midi event.

How can we keep the original wave while keeping a stretched copy as well?
I don't think we can keep /only/ a stretched copy because trying to un-stretch
 it does not return us to the original wave - there will be losses - so I  
 think we need to keep the original around.

Ah, I think you're saying we will have independent event lists, yes, 
 and each Event contains the additional info we need, also we know 
 what wave part contains it, and yet the Event's EventBase pointer 
 /can/ still be shared under normal circumstances. 
OK Interesting. If I have this correct. 
Am I wrong, can it work. Lemme think some more...

The other thing I wanted to point out is that clones are often used 
 in pattern-based songs.
Someone might have a hundred clones of a drum pattern for example.
So changing one note in a clone would force the app to do the other 
 99 clones. Might be slow? 
Especially with our synchronous msg*** system maybe getting in the way? 
But then, your undo operations lists help there. Maybe a non-issue? Or not...

So what's the solution?
Hm, tough dog.
Well you can see why I have reservations about doing this.
Radical. But if we must...
Let's make sure we examine /all/ the angles and expose any gotcha's 
 and fight the drawbacks.

Tim.

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Lmuse-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lmuse-developer

Reply via email to