View Issue Details

IDProjectCategoryView StatusLast Update
0002731ardourbugspublic2010-04-24 10:31
Reporterthorgal Assigned Topaul  
PrioritynormalSeverityminorReproducibilityalways
Status assignedResolutionopen 
Product VersionSVN/2.0-ongoing 
Summary0002731: Region reversal: some comments and design change proposal
DescriptionAs discussed with Paul on IRC, you should consider the following, code-wide (I am talking at a high level design, this is neither a patch nor code details):

- a region (class) shall have a field "reverse of".
- This field shall be NULL when the region is created (instantiated)
- this field shall point to the region it originates from when reversing the region as reversing the region creates in fact a new region. This special creation shall therefore be tagged thanks to this new field.
- if re-reversing the reversed region, we should get back to the original region without any creation.

Of course, there are details and corner cases to be careful with. But I am proposing this small design enhancement because if you try to reverse a region again and again, your region list will blow up with clones of the original and first reverse regions :D

The reverse operation here is 2pi symmetric. There is no need to create region clones. From my standpoint, I see it as a bug, even though minor. Feel free to change it to knew feature or tweak if think it more appropriate.


As a side note, it may also help working around an issue reported earlier, namely time stretching or pitch shifting is badly affected and often dysfunctional when applied to a reversed region. The work around would be to time-stretch or pitch-shift the original region under the hood and reverse the result before being displayed (the time-stretched or pitch-shifted region would then be deleted at the end of this operation so the final result would appear like an original region, not the reverse of something else). The user would not see any of that :D I hope my description is clear by the way ...
TagsNo tags attached.

Activities

thorgal

2009-06-15 09:01

reporter   ~0006125

Sorry for the typos, was in a hurry when I wrote this:
- code-wide must be read code-wise

olaf

2009-09-03 09:13

reporter   ~0006634

i think this is not a realy good idea.
because the order of processing is sometimes not unimportant and this would add a special case.

the bug you refere to should anyway be solfed.

thorgal

2009-09-04 08:47

reporter   ~0006642

create a region, reverse it, re-reverse it. Why would you create a clone of the very first region as a result ?

olaf

2009-09-04 10:14

reporter   ~0006643

ok in this case you are right. i thought you whant the order of processing be changed like:
you do: reverse transpose
changed to: transpose reverse
in a way that reverse is always the last process
but dont like this i can imagin processes where this would make a difference.

thorgal

2009-09-04 10:49

reporter   ~0006644

I agree that if the processing order influences the result, we have an issue. There are 2 issues that are overlapping here:

1- region creation for nothing when double-reversing
2- problem when time-stretching or pitch-shifting a reversed region

Issue 1 is to my mind a lower priority issue than 2. The ongoing design discussion we are having now would fix 1- and could be used as a workaround for 2- But I don't have enough knowledge of the internals of ardour, rubberband or sndfile to know whether the proposed design change would introduce unexpected side-effects due to the processing order.

Conclusion: let's fix 2 one way or another, this is really bugging me. Getting these "error blabla tempoize blabla" messages, or worse, an ardour crash, is a PITA. What I end up doing to be able to move on is to export the region, use rubberband from the command line, import the new audio file into ardour. So this suggests to me that ardour is not using the rubberband lib correctly. But I can think of other spots where this could go wrong as well. The problem is: I don't have time to dig this further and be more helpful.

Issue History

Date Modified Username Field Change
2009-06-15 08:38 thorgal New Issue
2009-06-15 09:01 thorgal Note Added: 0006125
2009-09-03 09:13 olaf Note Added: 0006634
2009-09-04 08:47 thorgal Note Added: 0006642
2009-09-04 10:14 olaf Note Added: 0006643
2009-09-04 10:49 thorgal Note Added: 0006644
2009-10-31 14:51 paul Status new => assigned
2009-10-31 14:51 paul Assigned To => paul
2010-04-24 10:28 cth103 Category bugs => bugs2
2010-04-24 10:31 cth103 Category bugs2 => bugs