Re: [Rosegarden-devel] Wiki Broken?

2023-02-05 Thread Chris Cannam


On Sun, 5 Feb 2023, at 14:38, Ted Felix wrote:
> I can't edit pages anymore on the wiki.  No edit buttons.  Might be a 
> clue:
>
> Writing /var/www/sites/rosegardenmusic.com/wiki/data/meta/start.meta failed

Ah yes, sorry. That was indeed a clue. Should be fixed now I hope?


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] Site hosting and wiki code updated

2022-06-16 Thread Chris Cannam
I've just moved the Rosegarden site to a new server and updated the Dokuwiki 
instance to the current stable version. Everything should work unchanged, and 
it looks ok to me at first glance, but if you find anything missing or messed 
up please do let me know.

Thanks!


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [rosegarden:code] New commit [r16122] by cannam

2022-04-09 Thread Chris Cannam


On Sat, 9 Apr 2022, at 13:54, Ted Felix wrote:
> Interesting.  svn should be really stable, so introducing a conflict 
> should require a monumental amount of effort.

I have a scripted setup for the various sites I host, that keeps a record of 
which revision and which version control system each site is currently checked 
out from. I tiredly ran the wrong admin command that (among other things) 
updated the wiki site to what it thought was the current version - this should 
have been a no-op, but its record was out of date, so it tried to update to an 
old version, resulting in conflicts against the files that had been changed 
locally.

I do have most stuff scripted, but I managed to outwit the scripts this time.

(The reason it had the wrong revision id recorded comes from another quirk of 
svn - that after you commit something, a subsequent svn info still shows the 
previous revision until you next do an svn update to sync with the repo. I 
think I understand why this is the case, but I also think it's possibly the 
single maddest feature in svn.)


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Bug Tracker Cleanup

2021-05-31 Thread Chris Cannam


On Mon, 31 May 2021, at 14:26, Ted Felix wrote:
>I just went through the bug tracker and did some cleanup.  Closed a 
> bunch of OBE, unreproducible and fixed bugs.  We're now down to 37 open.

Remarkable work! I wonder when they were last at these levels.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Precompiled headers

2021-04-17 Thread Chris Cannam


On Sat, 17 Apr 2021, at 16:48, David Faure wrote:
> I'm pretty sure that the limitation was that qDebug() is fully on or off.

I just did a bit of archaeology. The answer doesn't seem to be all that 
interesting, sadly!

Before CVS revision 2861 (2002-08-10) we were using the KDE debug stream with a 
single "debug area" everywhere, and we had no macro to abbreviate the kdDebug() 
bit in the source code, so it appeared like this everywhere:

  kdDebug(KDEBUG_AREA) << "message"

At rev 2861 we acquired two new debug area values, KDEBUG_AREA_NOTATION and 
KDEBUG_AREA_MATRIX, and rev 2862 the following day introduced the RG_DEBUG, 
NOTATION_DEBUG and MATRIX_DEBUG shorthands:

  NOTATION_DEBUG << "message"

At that point any debug output outside of the gui/ file hierarchy was still 
using cout/cerr. That changed in rev 2969 (2002-08-26) when we got sequencer 
and sequence manager debug areas as well.

So it looks as if the RG_DEBUG type macros were introduced purely to avoid 
typing kdDebug(..) everywhere, since we already had the separate debug areas 
defined before those macros were added.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Precompiled headers

2021-04-17 Thread Chris Cannam


On Sat, 17 Apr 2021, at 15:59, David Faure wrote:
> Instead of the RG_DEBUG macro "hack", I recommend using qCDebug() to make it 
> possible to enable/disable debug output by category.

Can anyone recall why we introduced the RG_DEBUG macros in the first place? Our 
debug was always a wrapper for QDebug, so there must have been some limitation 
of QDebug that we wanted to work around rather than (e.g.) wanting something 
that could be used separately from Qt. But I don't remember what that 
limitation was.

I was wondering about this recently in the context of another project in which 
I used (cargo-culted really) something similar to the RG mechanism, then found 
I couldn't remember what the advantage of it was supposed to be!


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Wiki Backup Request

2021-04-07 Thread Chris Cannam


On Wed, 7 Apr 2021, at 20:03, Ted Felix wrote:
>Hey Chris, can you fire off a wiki backup when you get a chance?

Done! Thanks for the notification


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Switching to git

2021-03-30 Thread Chris Cannam


On Tue, 30 Mar 2021, at 12:52, Ted Felix wrote:
> Still, I should probably re-run against the root dir just for fun to 
> see what it looks like and how long it takes.

I had a look at the svn repo history at the root, and it actually goes back 
further - to 2000-04-04, a few hundred commits before the first one you have 
there. Evidently that first commit in Aug 2001 must correspond to another early 
rearrangement.

All of this was actually done in CVS of course and converted to Subversion 
later - in fact, now I think about it, the change you mention in 2006 where all 
the code suddenly appears is probably when we first started using Subversion. I 
imagine we moved the converted CVS history into a subdirectory so as to store 
other things like the website in the same repo.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Switching to git

2021-03-30 Thread Chris Cannam


On Sun, 28 Mar 2021, at 14:07, Ted Felix wrote:
> I think I have everything I need then.

Very amused by the automated commit email Sourceforge sent out - "15580 new 
commits to Git" and I really thought it was about to list them all, until 
thankfully it cut off after a hundred with "And 15480 more commits."

I notice the early ones have very incomplete actual changeset content, often 
including changes only to the "meta" stuff like build files even where the 
commit log talks about extensive code changes. I think this is because at some 
point we made a wholesale move of all the actual source code files, I guess 
either because we switched from having only the source tree in svn to following 
the svn trunk/tags/branches convention, or because we added the website etc at 
the root level and moved the code down to rosegarden/ - or even both. So, many 
of the early commits were changing file paths that are not actually located 
within the root of the repo as you are now seeing and converting it.

I don't know whether that's fixable - it would involve remapping the paths in a 
way that definitely constitutes fakery; I think I tried to do this when I was 
messing around a decade ago but failed and gave up - and it certainly isn't 
likely to be important. You've likely already noticed this and decided it isn't 
worth doing anything about, but I thought I'd bring it up just to be annoyi- I 
mean, thorough.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Switching to git

2021-03-28 Thread Chris Cannam


On Sun, 28 Mar 2021, at 14:07, Ted Felix wrote:
>Found it in the mailing list archives, September 7, 2012, "version 
> control repositories"...
> 
> https://sourceforge.net/p/rosegarden/mailman/message/29780710/

Oh well discovered - I had quite forgotten the details. I'm fairly sure I 
haven't looked at the subject again since then, so I don't have anything more 
up-to-date to offer.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Fwd: Re: [Rosegarden-user] Controlling play/stop/rewind from external DAW (Ardour)

2020-06-17 Thread Chris Cannam


On Wed, 17 Jun 2020, at 14:19, D. Michael McIntyre wrote:
> After doing a bit of spot research on this as a translation problem, I 
> think I'm going to view this as English trying to impose its sense of 
> political correctness on the other languages of the world.

The original terms came from English speakers trying to impose some sort of 
icky sense of humour on terminology. Why shouldn't English speakers try to put 
right their own stupidities? Who else should?

Maybe this is just hopeful, but it would be nice if it were an opportunity to 
make more sense, rather than less. Let's face it, the original metaphor is 
functionally weak as well as rather gross. "Follower" in particular strikes me 
as something that should be more translatable, making more sense in the 
process, than "slave". The whole concept after all is about following.

But I'm aware that literal translations like that can turn out very awkward, 
and of course it's ultimately a question for the translator. Might be 
interesting to know what other applications are doing - what do Ableton do in 
Spanish for example I wonder?


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Fwd: Re: [Rosegarden-user] Controlling play/stop/rewind from external DAW (Ardour)

2020-06-16 Thread Chris Cannam


On Fri, 12 Jun 2020, at 14:04, Chris Cannam wrote:
> Happy to make such a commit, especially since it was I who introduced 
> the terms into the Rosegarden code in the first place. Leader/follower? 
> Source/follower? Generator/follower?

I went for source/follower. Leader somehow seems still a bit unnecessarily 
anthropomorphic to me.

I intentionally haven't updated the translation source strings in a way that 
would make them map to the same translations as before - since the existing 
translations are generally literal, it seems like it would be better to 
re-translate.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] Fwd: Re: [Rosegarden-user] Controlling play/stop/rewind from external DAW (Ardour)

2020-06-12 Thread Chris Cannam


[from rosegarden-user]

On 6/6/20 12:17 PM, stefano franchi wrote:
> 2. In Rosegarden's Midi Sync preferences, selected "accept Start, Stop, 
> and Continue", and set to "slave" as MIDI MMC and MIDI TCM

Speaking of which, we should definitely rename these. Not only the zeitgeist 
but also just the right thing to do - these terms were always a weird and 
unpleasant choice that we only happened to use because they were standard, and 
they're becoming less standard while still being weird and unpleasant.

Happy to make such a commit, especially since it was I who introduced the terms 
into the Rosegarden code in the first place. Leader/follower? Source/follower? 
Generator/follower? Ableton uses leader/follower I think, not sure about others.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] FastVector Test Suite?

2019-06-19 Thread Chris Cannam


On Wed, 19 Jun 2019, at 14:06, Ted Felix wrote:
>Since I'm making changes to FastVector, it sure would be nice to be 
> able to test it.  It looks like its intent is to provide some sort of 
> performance improvement.  So, I assume someone (Chris) at some point had 
> a test suite to confirm actual performance improvements.  It would be a 
> start anyway.  Nothing jumps out at me in the "test" directory.
> 
>Do we have anything for testing FastVector?

The short answer is no, and the sanest thing may be to remove the class 
entirely.

This class dates (in one form or another) to a time before widespread use of 
the STL, so it would likely have been the only vector class in early projects 
that used it. It also differs from std::vector in that it expects you to be 
inserting in the middle, and so it was very much faster for some use cases. It 
would certainly have been measured at the time. I have no idea whether any of 
those tests survived

I bet there is no worthwhile performance difference now, within the limited 
extent to which the class is used in Rosegarden... so any time spent writing 
tests for it is almost certainly better spent writing tests for the weird 
Composition::ReferenceSegment thing that inherits (!) from it, then rewriting 
that so as to use normal containers like a sensible class would, and dropping 
FastVector.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Standard fix for MIDI timing swings?

2019-03-14 Thread Chris Cannam


On Thu, 14 Mar 2019, at 11:26, Sami Jumppanen wrote:
> RG says the timer is "system". I once tried to select HR, but it jammed 
> the whole computer, power button reset was needed.

If you have an audio interface active, then one of the PCM timers that 
Rosegarden should be offering in the preferences (whichever one corresponds to 
the ALSA interface in use) ought to perform more stably. I don't know about 
jitter, but it should be guaranteed not to lose sync with the audio at least.

I think the only other solution is to use a kernel that prioritises timers in 
such a way as to make the system timer option work properly - this was the 
normal behaviour of an RT kernel ten years ago - but I'm not sure whether such 
a kernel is still readily available.

Ideally Rosegarden would use JACK MIDI when JACK audio was in use, and that 
would avoid any of this.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Standard fix for MIDI timing swings?

2019-03-01 Thread Chris Cannam


On Fri, 1 Mar 2019, at 22:21, D. Michael McIntyre wrote:
> Come to think of it, I know there have been perennial problems with one 
> of the advanced timers that have caused endless mayhem.  I ran lsmod and 
> I have snd_hrtimer loaded.  I looked at the startup debug stream and see 
> that Rosegarden is picking "system timer."  That sounds right.  Vague 
> memory is that Chris would have preferred the HR timer, but it was 
> unstable, and given more recent discussion, it still is, so Rosegarden 
> defaults to something that usually works.

My rather faint recollection is it went something like

 - System timer: always available, but not always reliable because various 
power-saving things can mess with it - before those adaptive things appeared, 
we had the choice between reliable-but-jittery 100Hz stock kernel and 
reliable-and-clean fixed-rate 1000Hz timer settings available in multimedia 
kernels. I don't know whether multimedia kernels with such timers still exist

 - HR timer: good if working, but used to be very unreliable, able to lock up 
the whole system

 - soundcard timers: good if you have an audio stream running (e.g. if JACK is 
in use against the same soundcard) but of no use otherwise, which is why they 
can't be the default

Who knows, things might have changed in the last couple of decades. And there 
must surely be better ways to do this in new code - this choice was always a 
crap one.

> I wish time hadn't dulled my once sharp memory so much.

Ah, yes. Welcome to the... wherever we are.

Time goes faster as you get older, of course. So the things you're trying to 
remember, which you think of as recent, are more than a decade old - that would 
have been a while back at any age.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Buggy code in MidiEvent

2018-12-03 Thread Chris Cannam


On Mon, 3 Dec 2018, at 11:43, Chris Cannam wrote:
> While I'm here I'll see about fixing a few of these.

I've checked and fixed (or in one case just left an explanatory comment about) 
the ones listed at the bottom of this email.

I haven't fixed any of the large number of inconsistent nullptr checks, or the 
exception stuff (catching by value). I think the least intrusive way to fix the 
former is probably also rather labour-intensive, sadly. The latter ought to be 
amenable to automation I guess, but I don't have more time to look at that.


Chris

[E] V560 A part of conditional expression is always false: singleStaff. 
NotationScene.cpp 1707
[R] V547 Expression 'i > 5' is always false. SegmentParameterBox.cpp 323
[E] V547 Expression '""' is always true. LilyPondOptionsDialog.cpp 64
[E] V773 The function was exited without releasing the 'testFile' 
pointer. A memory leak is possible. RIFFAudioFile.cpp 561 (and the 
following two)
[E] V601 The integer type is implicitly cast to the char type. 
MidiEvent.cpp 181
[R] V674 The '0.1' literal of the 'double' type is compared to a value 
of the 'int' type. Consider inspecting the 'm_connectingLineLength > 
0.1' expression. StaffLayout.cpp 1028
[S] V601 The string literal is implicitly cast to the bool type. 
FileSource.cpp 902
[S] V783 Dereferencing of the invalid iterator 'i' might take place. 
IconStackedWidget.cpp 126
[S] V783 Dereferencing of the invalid iterator 'beatTimeTs.end()' might 
take place. CreateTempoMapFromSegmentCommand.cpp 119
[S] V783 Dereferencing of the invalid iterator 'm_segments.end()' might 
take place. StaffHeader.cpp 250
[S] V670 The uninitialized class member 'm_intervals' is used to 
initialize the 'm_size' member. Remember that members are initialized in 
the order of their declarations inside a class. Tuning.cpp 394
[E] V557 Array overrun is possible. The value of 'submaster' index could 
reach 64. SequencerDataBlock.cpp 325



___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Buggy code in MidiEvent

2018-12-03 Thread Chris Cannam


On Mon, 3 Dec 2018, at 11:43, Chris Cannam wrote:
> [S] V670 The uninitialized class member 'm_intervals' is used to 
> initialize the 'm_size' member. Remember that members are initialized in 
> the order of their declarations inside a class. Tuning.cpp 394
> First one to be attributable to Michael, I think. The author mentions 
> that this is not common - I thought that compilers warned about it, 
> which would explain why it's not common but not why this example 
> persisted.

Think I was misled by svn there - not Michael's code but an "external 
submission". Also, this isn't picked up by the compiler because the problem is 
not that the initialisers have a different order from the declarations, but 
that the declaration order is already wrong for the dependencies involved.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Buggy code in MidiEvent

2018-12-03 Thread Chris Cannam


On Mon, 3 Dec 2018, at 04:55, D. Michael McIntyre wrote:
> On 12/02/2018 05:37 PM, David Faure wrote:
> 
> > where sharpflat is a std::string, and tonality is an int.
> > This code looks very suspicious indeed. Was it means to convert the int to 
> > a std::string?
> 
> Ancient code written by one of the original founders, so it's anybody's 
> guess what was meant here.

Exactly what David suspects, I think - the author (not me, though I was the 
last person to touch this code) probably intended to convert the int to a 
string. This is in debug code that I don't think is ever used and was 
presumably never tested at all.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Website Not Updating

2018-06-07 Thread Chris Cannam


On Thu, 7 Jun 2018, at 04:19, Ted Felix wrote:
>I committed changes to the website 9 hours ago and the website hasn't 
> updated.  I suspect it needs to be kicked somehow.

OK, it was a problem with ssh key authentication. The site is updated now, and 
I think the auto-update should be working again.


Chris

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Website Not Updating

2018-06-07 Thread Chris Cannam
I'll take a look!


Chris

On Thu, 7 Jun 2018, at 04:19, Ted Felix wrote:
>I committed changes to the website 9 hours ago and the website hasn't 
> updated.  I suspect it needs to be kicked somehow.
> 
> Ted.
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rosegarden-devel mailing list
> Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
> https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] website hosting move

2018-02-08 Thread Chris Cannam

On Thu, 8 Feb 2018, at 13:59, Chris Cannam wrote:
> Should be working now, please try again. I notice the email notification 
> of an edit to rg-bugs list isn't showing up -- looking into that one 
> now...

And that looks to be fixed now too.


Chris

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] website hosting move

2018-02-08 Thread Chris Cannam


On Thu, 8 Feb 2018, at 13:55, Chris Cannam wrote:
> On Thu, 8 Feb 2018, at 13:49, Ted Felix wrote:
> >Can't save edits to the wiki now.  It just loses them.  Preview works.
> 
> Gotcha, looking into it.

Should be working now, please try again. I notice the email notification of an 
edit to rg-bugs list isn't showing up -- looking into that one now...


Chris

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] website hosting move

2018-02-06 Thread Chris Cannam

Quick notice that I'm going to move the rosegardenmusic.com site to a different 
host at some point this week -- probably tomorrow. It shouldn't really change 
anything; it's just a newer VPS at the same hosting provider. I'll follow up to 
this email when I've made the switch.


Chris

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] --no-sequencer

2016-05-01 Thread Chris Cannam

On Sun, May 1, 2016, at 10:12 AM, David Faure wrote:
> How about I rename --no-sequencer to --no-sound, so we have only one
> concept (I would then merge isSoundEnabled() and isSequencerRunning()
> since it's the same concept).

"--no-sequencer" dates from when the sequencer was a separate process
rather than a separate thread. IIRC it essentially meant "don't start
the sequencer process, and ignore any actions that would normally depend
on it".

I think it was mainly useful on systems where the soundcard
configuration wasn't working properly, so as to edit a composition
without having to fix your ALSA config. It seems fair enough to me to
merge it with "--no-sound", giving one option that basically means
"don't try to open any of the system-specific sound drivers".


Chris

--
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Can I clean up the XFT code?

2016-04-26 Thread Chris Cannam

On Tue, Apr 26, 2016, at 11:08 AM, David Faure wrote:
> Can I delete the code inside #ifdef HAVE_XFT, to keep the codebase clean
> and less confusing to newcomers?

Speaking as the perpetrator, that would be fine with me.


Chris

--
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] ROSEGARDEN 15.12 RELEASED

2015-12-31 Thread Chris Cannam


On Thu, Dec 31, 2015, at 06:27 PM, Ted Felix wrote:
> On 12/31/2015 09:32 AM, D. Michael McIntyre wrote:
> > == ROSEGARDEN 15.12, codename "Peace" RELEASED ==
> 
>Thanks, Michael.
> 
>Found one issue...
> 
>From the tar file, a debug build with tests (a default debug build) 
> is not possible 

My one test was to unpack the tarball & try a default release build
using Qt5 -- it worked fine.

(Though I've never done a Qt5 build of RG before and so had to dig
around a bit to find out how to enable it.)


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Ads on the list?

2015-11-26 Thread Chris Cannam


On Thu, Nov 26, 2015, at 07:48 AM, David Faure wrote:
> Is this blurb, in all of our messages, expected?

They've been putting ads there for many years -- at least 8, looking
back at my archives. No idea why they went missing for a while recently,
maybe they're having trouble getting advertisers or something.


Chris

--
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551=/4140
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Terrible gdb startup time when using the shared library

2015-11-22 Thread Chris Cannam

On Sun, Nov 22, 2015, at 09:27 PM, Yves Guillemot wrote:
> That's a very long patch and the way it works is interesting.
> I was totally unaware of gcc __attribute__((visibility())

There is also the option of listing symbol visibility in a script file
(--version-script=blah.map) at shared object link time. Not sure whether
that would work out any better in the end, but it has the advantage of
not changing the source code.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] installed Rosegarden fails

2015-11-16 Thread Chris Cannam

On Mon, Nov 16, 2015, at 09:50 AM, David Faure wrote:
> I suggest to retry from scratch the release-build (with no args) and
> debug-build, both uninstalled and installed. 

What's the proper way to restore an existing checkout to "from scratch"
condition, as far as cmake is concerned?

I just tried the default build and then a debug build, but using "cmake
." in the root directory (in contravention of the instructions that are
now in the README) instead of a build dir. I did that because it's what
I used to do when we used cmake before, and it's etched in the muscle
memory. It actually worked fine -- first time around I got a static
binary (at least in terms of RG-specific dependencies) and the second
time I got something with a separate RG shared lib. The static binary
worked correctly when copied to a different directory as well, no
problems with absent resources. Only problem is that the outputs are
created in src/ rather than the root dir, which could be confusing,
especially if an old rosegarden binary is left over in the root dir as
well.

I then decided to try a build dir, so I created a directory called
build, cd'd to it, ran "cmake .." in that directory... and it didn't do
anything -- no makefile created in the build dir. Presumably it found
all its stuff already built in the directory above and just left it as
it was. Hence my question at the top.


Chris

--
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911=/4140
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake buildsystem

2015-11-15 Thread Chris Cannam

On Sun, Nov 15, 2015, at 12:42 PM, D. Michael McIntyre wrote:
> Speaking for myself only at this point, it would not be difficult to 
> convince me to abandon dear old SourceForge.

In case this should turn out to depend on me in any way, let me just say
that I wouldn't get in the way of whatever was necessary to move to a
different hosting provider. One specific thing would be if we were also
moving the rosegardenmusic.com site (which I currently host), e.g. to
github pages or whatever other hosting equivalent -- I'd have no
objection to making that switch, so don't worry about any friction on my
part if the momentum is there with everyone else.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake port done, some questions left

2015-11-14 Thread Chris Cannam

On Fri, Nov 13, 2015, at 08:37 PM, David Faure wrote:
> All done (for Qt4 at least) [...]

Worked nicely here. I might rely on this as a reference for CMake in the
future -- it's especially informative because I knew what the old
Makefile did so I can compare them.

About the tests, I'd have thought that since running them is (always
supposed to be) fast, but building them is slower, it ought to make
sense to run them every time they're built.

When I said RG used to have a few tests, it wasn't actually the three in
the test dir that I was thinking of -- there was another handful of
tests lost in history somewhere that completely stopped working.
Probably a decade ago. I can't remember what they tested or what
happened to them, though I assume they exist in an old revision somehow.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake port done, some questions left

2015-11-14 Thread Chris Cannam

On Sat, Nov 14, 2015, at 01:55 PM, David Faure wrote:
> 
> Right now they are fast, but over time they will grow, and you guys will
> get really annoyed at being slowed down in the edit-compile-run cycle by
> 1 minute of unit tests running.

If it takes more than a tenth as long to run as it does to build, then
it isn't a unit test. And if you're annoyed by a minute of tests
running, you're going to be far more annoyed by ten minutes of tests
building (which is there is also that question about whether to build
them or not). As long as everything is happening in-process it should be
quite reasonable to run the tests every time they're built, and when
there's no CI, it seems to me like a good idea from a practical point of
view as well.

(This is normal practice in some other projects I've worked on -- if the
tests aren't automatic you won't run them, so they're automatic. But
there are so many ways to slice this stuff and there certainly isn't any
firm common ground.)


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake buildsystem

2015-11-13 Thread Chris Cannam

On Fri, Nov 13, 2015, at 11:10 AM, David Faure wrote:
> Static libs are just a convenient way to handle "a bunch of .o files",
> as far as build systems are concerned.

Exactly -- there's not a lot of difference between libsomething.a and
$(SOMETHING_OBJECTS).

> Well, let's come back to the svn vs git discussion later

One day git will be superseded by something else, and hopefully it'll
actually have a user interface. At Rosegarden's geological timescales,
'tis but the blink of an eye.

"There will one day be lemon-soaked paper napkins. Till then there will
be a short delay."


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake buildsystem

2015-11-13 Thread Chris Cannam

On Fri, Nov 13, 2015, at 08:08 AM, Chris Cannam wrote:
> in that, although I guess you'd only save much time overall if you don't
> have to re-link multiple shared library objects as well (i.e. if you're
> rebuilding after a change that is local to only one of them). 

... or, of course, if you're linking multiple executables, such as unit
tests. Which is where we came in! Clearly I should shut up now.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake build system by David Faure

2015-11-12 Thread Chris Cannam

On Wed, Nov 11, 2015, at 10:44 PM, D. Michael McIntyre wrote:
> If you missed it on the SourceForge traffic, David Faure offered to 
> contribute a new cmake build system with unit tests and all the other 
> benefits we've been missing since the giant port of several years ago.

I saw that, and was intrigued enough to go back and check what we
thought about it back in the day. Here's my post on this list about the
disappearance of CMake scripts (April 2009):

http://sourceforge.net/p/rosegarden/mailman/message/22158414/

Here's what you had to say the last time (that I could see) someone
asked about it (December that year):

http://sourceforge.net/p/rosegarden/mailman/message/24256772/

So to summarise:

 * The CMake scripts worked OK day-to-day, but none of us at the time
 felt we had enough of a grip on them to keep them working during the
 Qt3-Qt4 port (which also moved away from KDE)

 * For that port, I made a Makefile that just built whatever code it
 found -- on the assumption that all necessary libraries were available
 -- and although that ended up quite complex, at least it worked. So we
 stuck with it at the time and I just added an autoconf layer

 * People mostly dislike maintaining build systems and that means
 they're reluctant to even try to understand them -- the autoconf system
 apparently won out because it's less of a black box so you can figure
 it out in the end from relatively little knowledge

If you (as de facto maintainer) reckon the current system isn't holding
up well, and someone is offering to replace it using a system that
worked all right the last time we used it, that seems very reasonable to
me. (Not that you have to pay any attention to me these days, since I no
longer do anything around here, but I'm trying to offer a helpful point
of view.) Hopefully a CMake setup should be simpler than last time
around anyway, since RG no longer uses KDE and has far fewer optional
dependencies.

The only thing that puzzles me is -- why is it necessary to switch build
systems just to add unit tests? A test is just a small program, it
shouldn't be hard to build.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] cmake buildsystem

2015-11-12 Thread Chris Cannam

On Thu, Nov 12, 2015, at 05:57 PM, David Faure wrote:
> On 11/12/2015 04:38 AM, Chris Cannam wrote:
> > The only thing that puzzles me is -- why is it necessary to switch build
> > systems just to add unit tests? A test is just a small program, it
> > shouldn't be hard to build.
> 
> This isn't exactly true. A unit test is not just a standalone program, it
> uses classes from the application. So the application can no longer be a
> single monolith, it needs to provide libraries that the unittests can link to.

I'm inclined to think of a unit test as another application built using
the same code but happening to have a different entry point. You don't
have to have libraries to do that, still less shared ones, but if you do
use static libraries, it's still not all that complicated to do. It
strikes me that switching to a different build system (regardless of
which one) is always a lot more work than that. Still, I'm not here to
argue about it, I just wondered what the motivating problem was for you.

I'm not especially fond of shared libraries because of the potential for
installation versioning problems -- I really like the fact that RG these
days is, aside from system libraries, a single executable. Certainly it
would link faster, but although linking RG used to be rather onerous, it
can't be that bad for most developers now -- on this year-old laptop it
now takes (goes off and runs "rm rosegarden ; time make") a whole 1.3
seconds.

Anyway, it's clear you have a warm enough welcome for the idea that you
should certainly go for it and see how it turns out.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [rosegarden:code] New commit by titola

2015-09-19 Thread Chris Cannam


On Sat, Sep 19, 2015, at 06:55 PM, Tom Breton (Tehom) wrote:
> Excellent!

I'd just like to add to the general spirit of approval, and say that
I've really enjoyed reading the commits list recently.

It's a *bit* painful seeing other people having to work so hard because
of some of the nonsense that we introduced back in the day, but it's a
pleasure to see such care in the craft as well.


Chris

--
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-19 Thread Chris Cannam


On Mon, May 19, 2014, at 04:33 AM, Ted Felix wrote:
r13706 fixes the issue with ftp transfers not setting an http status 
 code for isAvailable().  I've reverted isAvailable() to its original 
 logic (with a comment added, so it is slightly different in appearance).
 
This commit is another candidate for inclusion in Sonic Visualiser.

That looks good to me. Thanks, I've also pulled across the changes to
SV.


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-17 Thread Chris Cannam

On Sat, May 17, 2014, at 05:46 PM, Ted Felix wrote:
This issue should directly affect Sonic Visualiser, Chris, so you'll 
 probably want to bring in this change there as well.

Oh very nice, thanks. I have seen the symptom sometimes but had not yet
tracked down the cause.


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-15 Thread Chris Cannam

On Thu, May 15, 2014, at 01:09 AM, Ted Felix wrote:
Chris, the ftp bug is in isAvailable() and should affect Sonic 
 Visualiser.  Here's my fixed version (minus the debug output).
 
 bool
 FileSource::isAvailable()
 {
  waitForStatus();
 
  bool available = m_ok;
 
  // If everything's ok and we have a status code
  if (m_okm_lastStatus) {
  // We have success for any 2xx status code.
  available = (m_lastStatus / 100 == 2);
  }
 
  return available;
 }
 
An alternative would be to make sure successful ftp transfers set 
 m_lastStatus to 200.  This might be a better solution.

Hi Ted -- thanks for looking into this. It's true, I don't think I ever
tested ftp transfers after the Qt5 update...

I do think the alternative solution might be better, in this case -- I
spent a while looking at that function and thinking that doesn't look
right, it shouldn't be defaulting to returning m_ok, the default should
be that the file is *not* available unless we've actually discovered
that it is. Having worked through the logic, I now think in practice
this will work because the last status is always set non-zero when
initialising a remote transfer, but I'd prefer if this function made the
dependency clearer.

I can't remember at what point we can first determine that an ftp
transfer is successful -- the http status I think is set to 2xx as soon
as the successful headers come back, before the content transfer
happens, which is what we want here. If you're in a position to test
this with ftp easily and get the status set in the appropriate place,
that'd be great.


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-15 Thread Chris Cannam


On Thu, May 15, 2014, at 12:17 PM, Ted Felix wrote:
 On 05/15/2014 06:51 AM, Tim Munro wrote:
  Do test QNetworkAccessManager with .rg files.  I discovered an
  annoying tendency to automatically expand zipped files, even when
  they are suffixed .rg.
 
It seems to work fine for me.  My test file is very small, though. 
 Was there anything interesting about your test file?

Is it possible it's the server that notices the file is gzipped, and
magically gives it an XML content type with gzip encoding? If the Qt
code had at the same time become able to handle such encodings, then
that might come out as a regression overall for Rosegarden as you
describe.


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-15 Thread Chris Cannam

On Thu, May 15, 2014, at 08:11 PM, Ted Felix wrote:
 Or does rg handle uncompressed .rg files properly?

I'm pretty sure it did at one point (when using the KDE library stuff),
and it probably should...


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-15 Thread Chris Cannam

On Thu, May 15, 2014, at 08:43 PM, Chris Cannam wrote:
 On Thu, May 15, 2014, at 08:11 PM, Ted Felix wrote:
  Or does rg handle uncompressed .rg files properly?
 
 I'm pretty sure it did at one point (when using the KDE library stuff),
 and it probably should...

... though if you get an uncompressed file but it still has a .rg
extension, that is a bit weird.

Not sure I'm convinced (from that bug report) that it is a server bug
though. I would have interpreted those headers to mean the server sent a
file of type application/x-gzip and then gzipped it again in transit
(because it was gzipping everything), which would be inefficient but
perfectly permissible. For it to be a server bug, the server would need
to both mark it with content-encoding gzip and then *not* gzip it
(instead passing the existing file verbatim). I don't see how you could
know from that bug report whether that was happening or not.


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-14 Thread Chris Cannam

On Tue, May 13, 2014, at 11:41 PM, Ted Felix wrote:
What is the recommended way to open a URL in rg?

Erm, I wouldn't be surprised if the class that implements the feature
was added and then the feature itself was never actually wired up...

Probably best to do a File - Open URL as Michael suggests (this is what
SV does, though it's called Open Location... in there).


Chris

--
Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free.
http://p.sf.net/sfu/SauceLabs
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Qt5

2014-05-11 Thread Chris Cannam


On Sun, May 11, 2014, at 09:55 AM, Tim Munro wrote:
 By far the ugliest large change involves preserving the remote-url
 capability of the FileSource class.

This class comes originally from Sonic Visualiser. There is a version
updated for Qt5 (using QNetworkAccessManager) in the SV source tree, see
http://code.soundsoftware.ac.uk/projects/svcore/repository/entry/data/fileio/FileSource.h
and .cpp.

The purpose of the class is to provide the same file handle
abstraction for files opened locally and URLs opened from remote
locations. It is used in for example RosegardenMainWindow::openURL().

I updated Sonic Visualiser to Qt5 a little while back and it was fairly
straightforward, though Rosegarden would certainly be harder.

I just counted five #ifdefs against Qt version 5 or higher in the SV
code -- with these it has continued to work fine with Qt4, and I no
longer pay much attention to whether I'm building against Qt4 or Qt5 on
any given machine as it doesn't seem to make much difference.


Chris

--
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
#149; 3 signs your SCM is hindering your productivity
#149; Requirements for releasing software faster
#149; Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-16 Thread Chris Cannam

On Fri, Nov 15, 2013, at 10:05 PM, D. Michael McIntyre wrote:
 On 11/15/2013 04:40 PM, Chris Cannam wrote:
 
  released, most probably, but if it *just* gets merged and released
  without really being exercised, it won't work.
 
 I agree, though it's a problematic situation in that I just never deal 
 with tuplets much, and any testing I do will be naive.  We really need 
 some tuplet nut other than Tom himself to check out the branch and go 
 crazy with it.
 
 I know there are some true tuplet nuts out there.  Users?  Any 
 volunteers to exercise the big tuplet rewrite?

It doesn't just call for the tuplet-crazy though -- Tom's work will
affect quite a lot of things, including (hopefully) big improvements to
auto-beaming and the like. Really anyone who enters or records-and-edits
notation is likely to see some changes. You should definitely mess
around with it even if you never venture outside your most familiar
workflow.


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-15 Thread Chris Cannam

On Fri, Nov 15, 2013, at 09:50 AM, Chris Cannam wrote:
 Rebuilding once more without debug

(btw I had already confirmed the crash -- without debug -- on a build
from clean)


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-15 Thread Chris Cannam
OK, here's what I did:

 * build rev 13554 from clean without debug
 * open the Ravel example piece
 * select just the right hand segment, open in notation editor
 * find the very first 12-tupleted note in the part
 * select that note only
 * hit the delete key on the keyboard

Program received signal SIGFPE, Arithmetic exception.
0x00539eaf in Rosegarden::TimeSignature::setInternalDurations()
const [clone .part.14] ()
(gdb) where
#0  0x00539eaf in
Rosegarden::TimeSignature::setInternalDurations() const [clone .part.14]
()
#1  0x0053be40 in
Rosegarden::TimeSignature::getNumDivisions(int) const
()
#2  0x00594578 in
Rosegarden::DirtyNodeFinder::storeDirtyNodes(Rosegarden::MeterTreeNodeArgs)
()
#3  0x00594b93 in
Rosegarden::DirtyRanges::fixAll(Rosegarden::Segment) const ()
#4  0x0059b890 in
Rosegarden::EraseCommand::eraseInSegment(Rosegarden::EventSelection*) ()
#5  0x0059b910 in Rosegarden::EraseCommand::modifySegment() ()
#6  0x0045b190 in Rosegarden::BasicCommand::execute() ()


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-15 Thread Chris Cannam


On Fri, Nov 15, 2013, at 10:30 AM, Chris Cannam wrote:
 Program received signal SIGFPE, Arithmetic exception.
 0x00539eaf in Rosegarden::TimeSignature::setInternalDurations()

And here's valgrind:

==7241== Process terminating with default action of signal 8 (SIGFPE)
==7241==  Integer divide by zero at address 0x81141E17B
==7241==at 0x539EA9:
Rosegarden::TimeSignature::setInternalDurations() const [clone .part.14]
(in /work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x53BE3F: Rosegarden::TimeSignature::getNumDivisions(int)
const (in
/work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x594577:
Rosegarden::DirtyNodeFinder::storeDirtyNodes(Rosegarden::MeterTreeNodeArgs)
(in /work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x594B92:
Rosegarden::DirtyRanges::fixAll(Rosegarden::Segment) const (in
/work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x59B88F:
Rosegarden::EraseCommand::eraseInSegment(Rosegarden::EventSelection*)
(in /work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x59B90F: Rosegarden::EraseCommand::modifySegment() (in
/work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)
==7241==by 0x45B18F: Rosegarden::BasicCommand::execute() (in
/work/rosegarden/build/big-tuplet-rewrite/rosegarden/rosegarden)

etc.


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-15 Thread Chris Cannam

On Fri, Nov 15, 2013, at 06:27 PM, Tom Breton (Tehom) wrote:
 Possible approaches:
 
  * Roll that part back.  Much as I hate to just give up, it's causing
 Chris's crashes and this weirdness, and it was really just supposed to be
 an optimization and minimize what got rewritten.

That is probably the right thing to do, although it'd be nice to figure
out why the crash happens as well!

My problem with this, first time around, was basically that it was too
intrusive when editing existing material. But being both simpler and
more intrusive is going to make it more likely to be right and
comprehensible when entering new stuff.

(What happens when you edit material with wildly differing recorded and
notation times? It should presumably use the notation times as source
material...)

I would like to encourage everyone who can to test this branch -- I
think the approach looks like a very sound one, enough to have provoked
me from my slumbers, but there are many possible things that can go
wrong and my testing time is very limited. It should get merged and
released, most probably, but if it *just* gets merged and released
without really being exercised, it won't work.


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Update on tuplet rewrite

2013-11-14 Thread Chris Cannam


On Thu, Nov 14, 2013, at 01:56 AM, Tom Breton (Tehom) wrote:
 OK, I have rewritten the tuplet rewrite so it handles the Ravel example,
 keeping the 6-lets.
 
 Also, as Chris wanted, I have made it handle dirty subunits of a bar
 instead of always doing a while bar.  I was only going to do this if
 needed for performance, but since its absence was felt, I went ahead and
 did it.

Hm, now if I delete one of the 12-tuplets (or try to insert a shorter
note over the top) it crashes with an FPE. I don't have full debug (can
get it if you like) but it's roughly

#0  0x00539eaf in
Rosegarden::TimeSignature::setInternalDurations() const [clone .part.14]
()
#1  0x0053be40 in
Rosegarden::TimeSignature::getNumDivisions(int) const
()
#2  0x00594578 in
Rosegarden::DirtyNodeFinder::storeDirtyNodes(Rosegarden::MeterTreeNodeArgs)
()
#3  0x00594b93 in
Rosegarden::DirtyRanges::fixAll(Rosegarden::Segment) const ()
#4  0x0059b890 in
Rosegarden::EraseCommand::eraseInSegment(Rosegarden::EventSelection*) ()
#5  0x0059b910 in Rosegarden::EraseCommand::modifySegment() ()
#6  0x0045b190 in Rosegarden::BasicCommand::execute() ()
#7  0x00471e5a in
Rosegarden::CommandHistory::addCommand(Rosegarden::Command*, bool, bool)
()


Chris

--
DreamFactory - Open Source REST  JSON Services for HTML5  Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Tuplet rewrite branch committed

2013-11-08 Thread Chris Cannam


On Fri, Nov 8, 2013, at 03:07 AM, Tom Breton (Tehom) wrote:
 Fundamentally, the idea is to have a bulletproof bar rewriter (Rewriter)
 that takes as much time as it needs to notate everything nicely.

Sounds like an excellent principle.

On first test it looks a bit too eager to override decisions the user
has already made elsewhere in the bar. For example, try opening the
Ravel test piece, finding the section with 12-tuplets in the right hand
and then selecting and deleting one note from within any of the tuplet
groups.

In trunk, when a note is deleted, the rest of the group remains intact
as a 12-tuplet (as do the other groups in the bar). However, the note
that is deleted is replaced with un-tupleted rests, whose displayed
duration is therefore not correct (this is one of the many things that
makes an overhaul a good idea in principle).

In the new branch, the rest that replaces the deleted note is calculated
correctly, but at the same time the whole bar is rewritten into
triplets, which isn't desirable either.

It's a mistake to assume there is any one canonical structure for the
notes in a bar and that they can be automatically rewritten correctly
based only on their timings. If the user has introduced groupings
already, they should be respected.


Chris

--
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Tuplet rewrite branch committed

2013-11-08 Thread Chris Cannam

On Fri, Nov 8, 2013, at 05:32 PM, Tom Breton (Tehom) wrote:
 Oh, it doesn't just go by timing, it also goes by existing beamings and
 tuplings.

Oh -- very good to hear the detail you've thought about this in already.

  * It will force a new group ID for tupleted groups that don't already
 start with a fresh group.  That's because it fears using a non-tupleted
 beaming for a tupleted group.  The Ravel example shows that this is
 perhaps too strict.

Can you explain in more detail what you mean by this? Particularly that
don't already start with a fresh group.

I'm particularly concerned in the Ravel example by the fact that the
*other* 12-tuplets in the bar were also split into triplets, not only
the one in which the immediate edit happened.

  * It always tries the natural metrical decomposition first.  Ie, mostly
 binary splits.

a la TimeSignature::getDivisions(), or something else? A tree
decomposition using this hierarchy is the way I always meant to rewrite
autobeam on insert, and I take it your code handles autobeam instead in
this branch.

(The old autobeam code dates from me as an undergrad pissing about with
the problem until it appeared to work mostly, without ever thinking
about what the problem truly consisted of.

While it'd be great to lose the old code because it was basically crap,
it'd be a bit sad to lose it so near to its 20th birthday.)

 On a similar note, Rewriter also decounterpoints everything.  I have two
 questions about that:
 
  * Are there any use-cases where it's important to *not* split-and-tie
 across barlines?  Having to do that would really make this difficult, and
 it seems just wrong anyways.
 
  * Are there any use-cases where it's important not to decounterpoint? 
 That I can handle by just not rewriting except to split at barlines, and
 I take the flag to do so, I just don't act on it because I'm not sure
 it's the right thing to do.

I think these are related to the Ravel question actually. The problem
there is that you're doing something that *is* correct, in isolation,
except that the user has already given some other preference. People
interested in notation will get awfully troublesome if they decide to
express something in an unlikely way and then you go and change it.

It may be that the right thing is to tie all of this to autobeaming or
some other option for rapid, generally correct entry, which can be
switched off, and let expert/opinionated users and those trying to match
an existing score do their own thing separately.

That said -- to answer the actual questions -- I think since we got the
ability to overlay segments, there is probably no case in which the old
half-arsed counterpoint is a good idea when entering new music. It's
just the opinionated-user case that's the problem.


Chris

--
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [rosegarden:code] [r13407] - tedfelix: Add logging for time consuming file deletion

2013-09-13 Thread Chris Cannam


On Fri, Sep 13, 2013, at 01:19 AM, Tom Breton (Tehom) wrote:
 AFAICT there is no good reason for it to do that.  It doesn't actually
 keep the data between sessions.  It struck me as an expensive substitute
 for std::map.

I should think comes from the former two-process architecture (sequencer
and GUI) in which we used shared memory blocks to pass data from one
process to the other. For no very compelling reason, we happened to use
file-backed shared memory (mmap'd files). Offloading storage space from
RAM to disk is not part of the deal, because these files are all mapped
into RAM anyway.

There is no good reason to use this sort of structure now, except that
the code was there already and refactoring was easier than rewriting.
This way at least concurrent access code is localised and the necessary
locking is tolerably clear (since the structure is shared between
threads).


Chris

--
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Subgroups latency compensation off by one

2013-04-19 Thread Chris Cannam
On 18 April 2013 23:30, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 Yeahbut it's an ID to a member of a container.  I read it as take the
 ID of the first thing in the container, then use an ID one lower than
 that.  It seems random at best, destructive at worst.

This code makes my brain hurt now as well (how on earth did we ever
decide that using plain ints in different ranges to represent
different kinds of ID was a good idea?) but I agree with you on this,
the thing returned by *connections.begin() is an instrument ID not a
counter or index.

So it could be, for example, 1 which represents the first synth
instrument (synth instruments have IDs starting from 1).
Subtracting one would give you , which would theoretically mean
the 8000th MIDI instrument (because MIDI instruments occupy the
2000-1 range) which is not at all a meaningful thing here.

There's obviously some interesting mystery being hinted at here, but I
don't quite see what it is either.


Chris


___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Subgroups latency compensation off by one

2013-04-19 Thread Chris Cannam
On 19 April 2013 06:37, Holger Marzen hol...@marzen.de wrote:
 On Thu, 18 Apr 2013, D. Michael McIntyre wrote:

 Probably because there are tons and tons of situations in STL and Qt
 where standard idiom is to iterate through container classes with
 iterators, and the standard language is

for (some_class_iterator i = some_class.begin();
 i  some_class.end(); ++i) { ...

 Yes, that's what I think. But then we have tons of logical inaccuracies
 because we don't see i  some_class.end() but i != some_class.end().

That's the normal idiom when using iterator objects, because although
they are comparable for equality, they aren't always comparable for
ordering (in other words, there is not necessarily any operator
defined).

Think about two arbitrary iterators pointing into a hash table, for
example -- although you can easily determine whether they're the same,
you can't quickly determine which one appears first in the table.

Michael's use of  instead of != above was probably itself a typo, in
other words, although not one that matters hugely (it would either
work properly or fail to compile).

Note that there is no semantic difference between ++i and i++ in this
context either -- not in C++ and not in C. Both of them have the same
effect, which is to increment i, even though they return different
results -- and in the context of a for loop as above, the result is
not used for anything so the difference is irrelevant.

That is, the ++i in

for (i = 0; i  10; ++i)

says increment i, return the incremented value, and do nothing with
it because it's not assigned to anything. The net result is simply to
increment i. While the i++ in

for (i = 0; i  10; i++)

says increment i, return the value before it was incremented, and do
nothing with it because it's not assigned to anything. The net result
is again simply to increment i.

Some old-school C programmers would write ++i instead of i++ here
because it was theoretically faster to compute -- it just meant
increment a value instead of having to copy, increment, and then
return the old value. Of course in practice, every C compiler would
optimise this so that the two were the same so the distinction was
irrelevant.

With the advent of container iterators in C++ the difference became
theoretically interesting again, as potentially copying and
incrementing an iterator could be more expensive than doing the same
with an integer or pointer. Again, in practice it's not going to
matter by now, but conversely, why would anyone write i++ when it
means the same as ++i but is more semantically complex and has the
potential to be slower?


Chris

--
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis  visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Panning Laws revisited

2013-03-12 Thread Chris Cannam
On 12 March 2013 15:45, Tim Munro or...@lewiston.com wrote:
 Because the same panning law is always applied to both instrument and
 submaster

Hmm.. is that a good idea? I'd have thought a stereo submaster wants
either plain balance or a stereo pan, rather than a positional
mono-to-stereo pan law? Perhaps I'm overcomplicating the matter in my
head. Otherwise your approach sounds sensible.

This subject also seems to have come up on LAD in the mean time, from
a MusE developer --

http://lists.linuxaudio.org/pipermail/linux-audio-dev/2013-March/033690.html


Chris

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and remains a good choice in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Panning Laws revisited

2013-03-12 Thread Chris Cannam
On 12 March 2013 20:22, Tim Munro or...@lewiston.com wrote:
 Perhaps the thing to do is to leave the submaster controls as they are, basic
 balance controls, and save all the fancy panning laws for the individual
 instrument controls.

Since you're doing the work here, I think the acid test is: would that
be bad for *your* workflow?

If not, then I think that seems like a vaguely reasonable thing to do
-- fix the instrument panners, leave the submasters.


Chris

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Gain problem with audio panning

2013-03-06 Thread Chris Cannam
On 6 March 2013 02:50, Tim Munro or...@lewiston.com wrote:
 Currently Rosegarden appears to be using a form of the so-called 0dB Pan Law
 that results in a monaural channel being considerably louder when panned to 
 the
 center than when panned to either side.  When I first read the code, I assumed
 it was a mistake, but I guess people actually do this sort of thing
 intentionally.

As far as I'm concerned, the current code has always been a bit
useless -- a consequence of someone (was it me, back in the day? not
sure... if so I apologise) doing what seemed obvious without giving it
enough thought. The main reason it has never changed is just inertia
based on there already being sessions out there using the existing
behaviour.

One thing I'd say though is that this sort of thing really must be
part of the saved document, not just part of the application settings.
There could *be* an application setting, but it would have to be a
default for new documents rather than a fixed setting for every
document. It's not really OK to have sessions changing their mix
balance without warning when saved and reloaded.

At the very least, RG should know enough to be able to warn when a
session is reloaded with a different pan setting (or when a session
made before the setting was added is reloaded with a setting different
from the former default).

 From what I've read, I'm not sure that OdB, -3dB, or -6dB setups would be
useful for what I need to do.

I *think* that what's usually referred to as a -3dB law is actually
what you have -- i.e. -3dB in power rather than voltage. (as
10^(-3/20) == 1/sqrt(2)) Probably should check what other software
thinks though, which I can't readily do just at the moment.

(However, it should attenuate in the centre rather than boost at the
edges -- otherwise you can load a normalised file, pan it, and it
clips.)


Chris

--
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and remains a good choice in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Wiki was spammed Re: Rosegarden-bugs Digest, Vol 80, Issue 2

2013-02-19 Thread Chris Cannam
On 19 February 2013 04:58, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 Oh well.  There's nothing I can do about that.  I changed some settings
 once upon a time, but Chris pays for this and it's set up the way he
 prefers, so...  Shrug.  Spam isn't much of a problem, at least.

Famous last words perhaps -- we seem to be getting a string of spam
registrations going on now. The wiki isn't really set up the way I
prefer, as such, it's just set up some way or other that seemed to
work out OK.

To date it has been quite extraordinarily un-spammed, relatively
speaking, but it could never last. If it starts being a big problem I
guess we'll have to remodulate the shield frequencies or something.


Chris

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Status: #1350 Can't Record Beethoven

2012-10-27 Thread Chris Cannam
On 26 October 2012 13:20, Ted Felix t...@tedfelix.com wrote:
The RefreshStatus stuff appears to be an attempt to mitigate this CPU
 usage problem.  However, it is not complete.  The Segment::notify*()
 functions are still there and still in use.

Historical note: the RefreshStatus mechanism actually predates the
notifiers. It is indeed supposed to be a cheap way to handle
aysnchronous updates, but I don't think it was ever expected even so
that it would be called for every event while recording...


Chris

--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Status: #1350 Can't Record Beethoven

2012-10-25 Thread Chris Cannam
On 25 October 2012 09:13, Chris Cannam can...@all-day-breakfast.com wrote:
 don't even try to update the actual notes on canvas.

(I don't have the program in front of me atm either, and I can't
actually remember offhand whether we don't show them at all or update
them in batches -- either way we shouldn't be having a callback
per-note and no edit commands should be firing)


Chris

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Status: #1350 Can't Record Beethoven

2012-10-25 Thread Chris Cannam
On 25 October 2012 02:38, Ted Felix t...@tedfelix.com wrote:
The executive overview goes something like this  Rosegarden was
 designed to be a MIDI editor.  Then someone decided to add MIDI
 sequencing to it.  But what's ok for a MIDI editor (very CPU intensive
 updates in response to infrequent edit events from the user) is not at
 all ok for a MIDI sequencer (constant edit events due to massive amounts
 of incoming MIDI data courtesy of Herr Beethoven).

That's not quite an accurate characterisation -- it was always
intended to be a sequencer as well.  The idea is (was) that the
sequencer process would operate largely asynchronously from the editor
process.

So when playing, the editor would write a large number of events in
advance to a shared memory area, and the sequencer would play back
from there. (Editing during playback would run the risk of playing the
wrong thing during the edit, but would never hold up the sequencer.)

When recording, the sequencer would log incoming events to a buffer
and then the editor would pick them up afterwards. The main risk here
of course was overflowing the buffer, but the timings should be
correct so long as the sequencer thread timer was accurate.

In neither case should the number or nature of editor callbacks make
any difference to sequencing or recording.

For the Qt4 rejig (i.e. what became Rosegarden 10.02) we merged the
sequencer and editor processes -- which had previously been quite
separate processes communicating using IPC mechanisms -- into separate
threads in a single process. But the shared-memory architecture (all
the mapped-buffer stuff) stayed the same.

I'm afraid I haven't found the time to follow this bug closely, but if
Rosegarden is unable to record large volumes of incoming MIDI
properly, that suggests that either the inbound buffer is overflowing,
or else a change during the 10.02 timescale has introduced a mutex
that means writing to the buffer is no longer a safe operation for the
sequencer to carry out. Or else there's been some other change that
means segment updates affect recording -- segment updates shouldn't be
happening in any great quantity during recording, though, because we
don't even try to update the actual notes on canvas.


Chris

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] svn-command still recent?

2012-10-21 Thread Chris Cannam
On 20 October 2012 19:12, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 I bet Chris needs to update his script to pull website changes from the new
 URL.

I bet you're right. I've updated the server now -- let me know if you
see any problems on the site!


Chris

--
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Discussion: Rosegarden's Latency Compensation Model

2012-09-28 Thread Chris Cannam
On 28 September 2012 03:32, Holger Marzen hol...@marzen.de wrote:
 I'd like to discuss the latencies with you that can occur and how and
 where they should be compensated before we actually create patches.

That sounds like a good idea.

I seem to remember the problem that the existing implementation ran
into, was that it was initially trying to do wholly automatic latency
compensation when recording -- which isn't possible, because the
necessary compensation depends on what you're recording.

What it probably needs is automatic compensation only for the known
output latencies (e.g. effects plugins) across all track types --
which it is supposed to do, but which you've found isn't working
properly -- plus easy nudges for new tracks forward and backward by
common latency periods following recording, with some more useful
options than the current delay setting.



Chris

--
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] SourceForge Repo Clone Failed

2012-09-18 Thread Chris Cannam
On 18 September 2012 19:54, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 Bloody hell.

I'm getting a 500 for http://sourceforge.net/projects/rosegarden/ now.
 (It worked a few hours ago, though the page was slathered in more ads
than I've ever seen.)

I was going to have a look to see whether our existing file downloads
had been retained -- I have a recent backup of the SVN repo, but I
don't have copies of all the file releases. Were they supposed to have
been carried across? If so, did that work?

I sort of feel that if SourceForge can't even retain our artifacts
when moving us to a new interface, there's not a great deal of point
in being on SourceForge.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] SourceForge Repo Clone Failed

2012-09-18 Thread Chris Cannam
On 18 September 2012 20:46, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 On 09/18/2012 03:33 PM, Chris Cannam wrote:
 The repo does seem to check out OK, as well -- it just doesn't show up
 in the browser.

 Which URL?  The new SourceForge has the repos at totally different URLs.

svn://svn.code.sf.net/p/rosegarden/code/trunk/rosegarden -- which I
assume is the new one (it certainly isn't the old one).


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] SourceForge Repo Clone Failed

2012-09-18 Thread Chris Cannam
On 18 September 2012 20:30, Chris Cannam can...@all-day-breakfast.com wrote:
 I was going to have a look to see whether our existing file downloads
 had been retained -- I have a recent backup of the SVN repo, but I
 don't have copies of all the file releases. Were they supposed to have
 been carried across? If so, did that work?

Ah, there we are. Yes, they seem to be there.

The repo does seem to check out OK, as well -- it just doesn't show up
in the browser.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] SourceForge Repo Clone Failed

2012-09-18 Thread Chris Cannam
On 18 September 2012 20:52, Tom Breton (Tehom) te...@panix.com wrote:
 The team has fairly up-to-date local copies.  Chris, you're keeping those
 trial repositories, right?

I can unveil a Mercurial repo whenever you like. Git I would have to
convert again from Mercurial (I deleted the Git repo) but that's
lossless.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] version control repositories

2012-09-07 Thread Chris Cannam
OK, in order to have something concrete to consider, I've converted a
bit of history to git and Mercurial.

Rosegarden's history is pretty gnarly and includes a lot of dead-end
branches and relatively few sensible tags, so rather than get into
knots trying to convert everything I converted only the trunk, and
only back to the point where the Qt4 build was pulled across to trunk.
That's still 2000-odd revisions. I've mapped the usernames as well as
I could (let me know if you see any mistakes there).  I used hg
convert to convert to Mercurial, and ended up using hg-fast-export to
get the data from hg to git.

Here it is in git:
https://github.com/cannam/rosegarden

And here in Mercurial:
https://bitbucket.org/cannam/rosegarden

Presumably there would want to be an official rosegarden-release repo
to do builds from -- I'm just proposing one of these as a possible
starting point to clone from.

So, what do you think? Developers please please pick one of the following --

 [ ] I like the git one
 [ ] I like the hg one
 [ ] either is fine with me (e.g. I'm happy with both tools, or I'd
clone to the other one anyway)
 [ ] I'd like to use a dvcs, but I'd suggest a different repo to start
from (e.g. one I already have locally)
 [ ] I don't think we should switch from svn

and of course

 [ ] Gah! Cannam is an arse


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] concerning bug #3560849

2012-09-06 Thread Chris Cannam
On 6 September 2012 06:54, Richard Bown
richard.b...@ferventsoftware.com wrote:
 If course I'm also interested in this myself too because my R4Win updates are 
 still so infrequent that it annoys me I have to manually merge every time I 
 want to integrate latest.

The reason you have trouble merging is that you arsed about
indiscriminately with the directory structure when you made your
branch.

That would probably be a slightly easier thing to maintain with a
newer version control system than Subversion, but only if you had been
using it when you branched in the first place.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] concerning bug #3560849

2012-09-06 Thread Chris Cannam
On 6 September 2012 07:39, D. Michael McIntyre
rosegarden.trumpe...@gmail.com wrote:
 It really does seem like an excellent opportunity to change over to
 distributed version control.  Assuming Chris is amenable.

I'm broadly in favour of using a distributed system, though I don't
have the same antipathy to Subversion that some do.

My preference is for Mercurial, and normally I'd try to persuade
people to use that over git, which I see as the C++ of version control
systems, and I don't mean that in a good way -- but really I have less
stake in this than anyone at this point. There's not much point in my
arguing for Mercurial if all of the active developers are already
using git.

(I would be able to help with the transition if Mercurial was
involved, e.g. converting / pruning the existing history as
appropriate, but I've nothing to offer for a conversion to git.)

There are all sorts of things I would love to be doing with the
Rosegarden code, and much as I might prefer to do them in a Mercurial
repo, it's not the version control system that's holding me back --
it's entirely my own ability to find any time for it.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] concerning bug #3560849

2012-09-06 Thread Chris Cannam
On 6 September 2012 09:37, Richard Bown
richard.b...@ferventsoftware.com wrote:
 Anyway I won't go back there.  No.  Won't do it.  I've already bunged my 
 branch into bitbucket anyway and you lot can just assume it a fork (or death) 
 from now on.  Will make it public once there are any deviations from what is 
 in SF.  Usual pigheadedness from Cannam.

*blink*

OK, I'm properly baffled.

All I said was that the upstream project switching now probably
wouldn't help your merge very much.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] twitter

2012-05-25 Thread Chris Cannam
I registered a Twitter account:

https://twitter.com/#!/rosegarden_m

I have never been into Twitter, but for various reasons I'm having to
put a bit of practice in to it at the moment so I might as well have a
go at this as well. If any of the core developers would like to help
run the account, drop me a note.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] rosegarden on Mac OS X

2012-05-16 Thread Chris Cannam
On 16 May 2012 00:00, Schindler Karl-Michael
karl-michael.schind...@web.de wrote:
 Working on the audio driver is definitely beyond my scope.
 Testing is basically would i could do.

Well, thank you for the work you've done so far -- even if the tricky
bit still lies ahead, it's good to know that the rest is looking like
it should be feasible. I hope I didn't come across as too grumpy in my
previous mail (I probably did, sorry).


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] rosegarden on Mac OS X

2012-05-15 Thread Chris Cannam
On 14 May 2012 22:57, Schindler Karl-Michael
karl-michael.schind...@web.de wrote:
 David Tisdell's advertisement on the mac X11 list dragged me in. He also 
 mentioned my brief trial to build rosegarden on macosx. My main contribution 
 would be setting up and maintain the fink package description.

Hello there.

I don't entirely know what Fink is, but I would expect that any build
of Rosegarden for OS/X would just be an ordinary OS/X app, presumably
packaged in a .dmg for installation into the apps folder like any
other.

Rosegarden uses Qt4 for its GUI, which uses Cocoa directly and is
quite easy to package (depending on how many different OS/X versions
one tries to support). With the exception of the audio and MIDI
support and associated libraries, RG is reasonably straightforward to
port to the Mac -- the problem really is the amount of development
work necessary to get any sound support.

As this stage the configure doesn't include any direct support for
doing a sound-less build -- you'd need to hack configure.ac so as to
skip the ALSA/JACK tests and build without HAVE_ALSA and HAVE_LIBJACK.

(As for the other failing configure tests: the only direct reference
to X11 libraries in the code is to install an error handler, which of
course would be unnecessary when building without X11 as on Cocoa.
dssi.h is an audio plugin format spec header, easily bundled but
there's no point in worrying about it when we have no audio! And
sha1sum is used to generate a build ID for support purposes.)


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] rosegarden on Mac OS X

2012-05-15 Thread Chris Cannam
On 15 May 2012 22:43, Schindler Karl-Michael
karl-michael.schind...@web.de wrote:
 Is it ok to make an announcement on Rosegarden-user?

Well, that certainly sounds like a nice thing to look at and there may
be users who might be interested in playing with it -- but it probably
isn't very wise to advertise too much a build without any sound
support at all!

I'm afraid establishing that it builds on the Mac is really just a
necessary precondition for actually porting the audio/MIDI code. A
possible start for MIDI might be to use the RtMidi support from the
Windows port. For audio, JACK exists on OS/X but unfortunately the
JACK code in RG is dependent on having ALSA as well, which doesn't
exist anywhere but Linux.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] rosegarden on Mac OS X

2012-05-15 Thread Chris Cannam
On 15 May 2012 23:00, Brett McCoy idragos...@gmail.com wrote:
 Probably should take a look at how Ardour handles JACK on OSX, you
 might be able to adapt some of those ideas.

Well, the trouble is not with JACK as such -- it's the same on any
platform -- it's just that the JACK audio driver in Rosegarden was the
first and only audio driver written at the time, and it's entwined
with the ALSA driver (that preceded it as the first and only MIDI
driver) in rather unholy ways.

I maintain Sonic Visualiser (http://sonicvisualiser.org) for Linux,
OS/X and Windows, with both audio and MIDI support (though with far
more limited MIDI requirements than Rosegarden). That has all sorts of
possible audio and MIDI driver combinations, including JACK on Linux
or OS/X, or PortAudio anywhere -- but it's a simpler architecture with
less historical baggage than Rosegarden, and I've just never found the
time to do any comparable factoring in RG (and realistically I
probably never will).


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Fwd: [Rosegarden-user] Rosegarden's Future

2012-05-14 Thread Chris Cannam
On 13 May 2012 23:56, Cláudio Pinheiro taup...@gmail.com wrote:
 Rosegarden needs broad visibility by potential users, so it can generate a
 critical mass that would attract developers that would maintain a sustained
 growth and (even) better codebase and documentation. To achieve it
 Rosegarden must walk the multiplatform path. It must be the top priority now
 for the future's greater good.

I appreciate this argument, and thank you for articulating it well.
But I'm afraid I just don't see the evidence in other applications
that broadening your user base, by porting to other platforms with a
smaller proportion of developers, helps a great deal with development
effort.

I think that the difference between Mixxx and Rosegarden is something
else. It's focus. Mixxx has a very clear purpose, every developer has
pretty much the same focus, and every developer is able to exercise
that purpose very clearly in testing the application. So although
Mixxx has about the same number of active developers as Rosegarden,
they're able to pull it along more efficiently because it's a simpler
and smaller application with a much clearer goal.

Compare this with Audacity, perhaps the world's most widely-used audio
application -- inching along much like Rosegarden does, with a
similarly-sized developer team who spend most of their time
integrating occasional external contributions and trying to fix the
bugs those contributions bring in. Their wider user base gives them a
lot more tricky single-platform bug reports and causes years of delays
to stable releases. Or the Gimp, spending the last four years on a
bunch of changes finally released to a collective response of is that
_it_ for the last four years? (and I'm sympathetic, but it's true
that almost every change in Gimp 2.8 seems to make my life more
difficult instead of easier). Or Ardour, a fine application perhaps
unique among these in having had a developer working full time on it
for many years, but again with only two or three really active
developers and not an enormous amount of visibility. No, most of the
cross-platform projects are more like Rosegarden than like Mixxx.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] Rosegarden's Future

2012-05-11 Thread Chris Cannam
On 10 May 2012 16:18, Richard Bown richard.b...@ferventsoftware.com wrote:
 Current Core Dev

 Michael
 Tom Breton
 Daren Beattie
 Ian Gardner

 A plan for the future Dev direction if any.  Having no plan is also fine.

Can we also survey: How many developers are potentially interested in
unit tests or other automated testing? Who thinks they might actually
manage to put together a test or three, if there was a general effort
to do so? Which areas (within the code) would you be most interested
in trying to exercise?

I know that both Daren and Ian have raised the subject before (without
much response, including from me I'm afraid).


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] Rosegarden's Future

2012-05-11 Thread Chris Cannam
On 11 May 2012 17:42, Tom Breton (Tehom) te...@panix.com wrote:
 It would break my heart to use another test framework

For what it's worth, I think it's evident that the test framework
Rosegarden should be using is the Qt one. (As least, if it's any
good -- which it is; it's pretty nice.)


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] Version control?

2012-05-11 Thread Chris Cannam
Time to revisit this perennial favourite?

Do you feel that Rosegarden's current use of Subversion is an
advantage for the project, a disadvantage, or largely irrelevant?
Would any change attract more new developers, put off old developers,
both, or neither? (Please explain your reasoning!)

Note that I'm a fan of Mercurial (so much so that I work on a user
interface for it, http://easyhg.org) and would be inclined to suggest
using that, because:

 1. It's approachable for people who are used to Subversion
 2. But similar enough to git that it should work for people who are
occasional users of git, i.e. those who have to look up the syntax
whenever they try to do anything clever
 3. It feels native on Windows as well as on Linux
 4. It has a consistent interface and good help

But I'm well aware that I haven't been a major contributor during the
last couple of years, and that at least two of the people who have
(Tom and Ted) have referred to using git, while the main manager
(Michael) is more comfortable with Subversion.

Converting the repository retaining a sensible amount of history would
be tricky (RG svn history is a mess) but possible, and I could handle
it for Mercurial (but I wouldn't know how to for git).

So, what are your views? (I'm not trying to call for a vote -- rather
just call for opinions and get this out of the way while we're
thinking about development meta-questions.)


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] Rosegarden's Future

2012-05-10 Thread Chris Cannam
[cc -devel]

On 10 May 2012 13:41, Ian Gardner ilgard...@yahoo.co.uk wrote:
 I guess people like me are part of the problem in this regard, turn up one 
 day, chuck something in to do with linked segments and then f. off into the 
 sunset. Fly-by-night, here today and gone tomorrow contributors :-(

Well, you could say anyone who ever wrote any of the code is part of
the problem by now! I know I am.

 I guess one possible way to ameliorate the bejeesus, this codebase is an 
 unmaintainable spaghetti! problem is automated testing.

Well, as you know, the difficulty with automated unit testing is the
sheer effort involved in writing tests (after the fact) that cover
more than a tiny percentage of possible cases.

[On another project I'm currently in the middle of porting some
existing unit tests to a different test framework (without changing
their content) just to sit better with the rest of the code. I can't
believe how much work it is -- I never really noticed the initial
effort of writing the tests for that code because I did it at the same
time as writing the code under test, but when you look at it
afterwards there's a heck of a lot of it and I simply can't imagine
doing it all at once after the fact, even if it didn't actually take
any real thought.]

I do like the suggestion of using slightly higher-level test cases
with synthetic series of commands though (given serialisable command
classes). Apart from anything else, then you could supplement
human-designed tests with pseudo-random command sequences or fuzz
tests, which would give quite a good tradeoff of effort against
effectiveness.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] Rosegarden's Future

2012-05-10 Thread Chris Cannam
On 10 May 2012 19:32, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 I think even worse than that is keeping the tests working over time.  We had
 some tests, but they didn't survive the port.

But that's just another sign that they weren't terribly relevant unit
tests. Even though they appeared a long time ago, they were still very
sketchy tests written long after the code they were testing.

If they had had a more effective coverage, they would actually have
been useful in the port (by telling us whether we had broken anything)
and so breaking the tests would itself have been enough incentive to
fix them.

 Quis custodiet ipsos custodes?
 I think that's Latin for who will test the unit tests?

Isn't it technically who will test the unit testers?

I'm only a relatively recent convert to thorough unit testing,
basically because I had become so used to bad unit tests written by
programmers in companies who just thought they probably ought to be
writing some. One thing that I found helpful in forming a better
opinion was starting to think of the tests as a bit like an exam _for
me_ -- do I understand the problem well enough to write a really good
test for it?

And I believe this question is how that Latin phrase actually originated.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] Rosegarden's Future

2012-05-10 Thread Chris Cannam
On 10 May 2012 16:18, Richard Bown richard.b...@ferventsoftware.com wrote:
 Devs or Interested in Ports

I'm not particularly interested in a Mac port and don't especially
want one, but I'm certainly competent to make one and would try to
help out if there was more general interest.

(Why not particularly interested? I just don't see much evidence from
other projects that it increases the active developer base, it'll only
make for difficulties with users because it's not a very Mac-like
app)


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] code complexity, was Re: Kickstarter

2012-05-09 Thread Chris Cannam
On 8 May 2012 20:49, Tom Breton (Tehom) te...@panix.com wrote:
  * In principle we could re-merge some mapped classes with their base
 counterparts.  They spend a fair bit of code just staying in sync, or
 trying to.  But that's a lot of work and error opportunities just to keep
 things working about the way they are.

This area is full of historical code that was originally designed to
work with the GUI and sequencer in separate processes communicating
through shared memory. Some of it was simplified (and/or thrown out)
when the processes were merged in the Qt4 rebuild, but most is still
there.

But you still do have to be very careful with threading in this code.
At the moment the mapped classes still have a distinct role as areas
whose memory layouts are fixed and that are read-only on the
sequencer-thread side, minimising the extent of necessary
synchronisation when the structure contents change.

If the sequencer used the base classes directly, we'd need much finer
synchronisation, and that is difficult with the structures we're
using. In fact, it's so difficult that one of the most significant
causes of bugs has been improper synchronisation between readers and
writers of our segment classes, _even where they are in the same
thread and the same code unit_ -- e.g. in editing functions that
iterate through a segment and modify some of the events in it.

Mapped classes apart, the old process-communication structure gives
rise to a lot of other things that make it difficult to follow the
code and find bugs. For example, it's really tricky to work out who
notifies who and how (in terms of classes, but also in terms of
threads) when something changes like an audio file being loaded or a
plugin setting being edited. The plugin architecture in general, from
GUI through to audio I/O, is just crazily complex in a single-process
world.

  * What if we used garbage collection?

I haven't looked at the Boehm GC for ages, but we did consider it for
RG way back in the late 90s and rejected it as too unreliable in
situations where some sort of competing object lifecycle management is
already in place (as is usually the case in C++ and certainly when
using Qt). Of course it's clear that we made plenty of wrong decisions
about memory management, so perhaps that was one of them! But I'm
pretty certain that it would be surpassingly difficult to introduce
into an application with such tricky existing manual memory management
as Rosegarden.

One of the most significant and helpful changes made in Qt for Qt4 was
the introduction of more consistent expectations for memory management
of Qt objects. That is, except in special cases where you're expected
to know what you're doing, QObjects are created on the heap, are not
copied, are passed by pointer, and belong to their parent QObjects;
non-QObject objects like strings and containers are created with
automatic storage and passed by value using implicit copying. This
sort of consistency wasn't a feature of Qt3 or KDE3 classes and it
certainly wasn't ever a feature of Rosegarden's code. I suppose that
one good principle might be to identify ways in which Rosegarden's
model could be incrementally moved closer to modern Qt practice.


Chris

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-bugs] SF.net SVN: rosegarden:[12854] trunk/rosegarden

2012-03-05 Thread Chris Cannam
On 5 March 2012 04:56,  te...@users.sourceforge.net wrote:
 Added Elisp template code to templates/, and docs.

The auto-insert-choose.el file appears to be only a symbolic link to
something elsewhere in your home directory?


Chris

--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] emacs autoinsertion templates (Was rosegarden's license.)

2012-03-04 Thread Chris Cannam
On 4 March 2012 19:07, Tom Breton (Tehom) te...@panix.com wrote:
 Shall I submit them?

Yes please!


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Re rosegarden's license.

2012-02-29 Thread Chris Cannam
On 26 February 2012 13:10, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 There was a time when I cared a great deal, and felt really strongly that
 Rosegarden should stay with GPLv2.  Now, I really don't care so much anymore,
 or even remember what the fuss was all about.

(Digressing, now that we seem to have come to a decision about the
substance of it)

I'm in two minds about the GPLv3.

On the one hand, it's increasingly clear that the threat the GPLv3
was intended to address is a real one.

The app store delivery and installation model is going to take over
the world (as much as it hasn't already), and it subverts a part of
the point of the original GPL -- it doesn't make any difference
whether users can get your source code, if they have no authorisation
to build and install an application from it anyway. The trend toward
devices that refuse to be programmed is a big problem for Free
Software, and the GPLv3 tries to resist that trend -- a resistance
that is probably futile but certainly principled.

On the other hand, the GPLv3 is arguably the worst thing that ever
happened to Free Software in terms of how it is understood by
developers.

GPLv2 was both fairly comprehensible and fairly close to a natural
mental model of how software should be reused for many developers.
GPLv3 introduces confusion: not only do we now have a choice of two
licences both called the GPL with various voices on either side
advocating for one or the other, but the newer one is enormously
harder to understand, the two are not compatible, and the workaround
for compatibility (the or later clause) is itself hard to keep track
of, since it's not part of the licence itself and code in the real
world often omits it.

I believe (without having any figures to back it up) that there's been
something of a flight to BSD among developers over the past few
years, and that this is partly because of the convenience and apparent
free money! angle of the app store model (to which I suppose a Free
Software advocate should reply: good riddance), and partly because the
appearance of the GPLv3 has ensured that GPL is now associated even
more than ever with squabbling factions of pedantry that many
reasonable developers don't want to get involved with.


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Re rosegarden's license.

2012-02-26 Thread Chris Cannam
On 26 February 2012 20:25, Ted Felix t...@tedfelix.com wrote:
   The COPYING file is missing (I think) the or any later version
 verbiage.  Probably need to add that at the very top before the text of
 the GPL.  I think the COPYING file right now is nothing other than the
 text of the GPL.  It does not contain any statement about how Rosegarden
 is licensed.

That's in the README file. It explicitly says v2 or later.


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] [Rosegarden-user] live notation view while playing midi-keyboard

2012-02-14 Thread Chris Cannam
On 14 February 2012 20:46, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 Viewing notation for an emerging MIDI segment on the fly would be difficult to
 achieve.  I have no interest in attempting this, personally.

(moving to -devel)

I did actually implement this once... sort of.

It was before the notation view was completely overhauled for Qt4, and
I never tidied up any of the enormous number of awkward difficulties
that prevented it from being actually useful, but it could be a fun
thing to look at for anyone with time and an interest.

The basic stub is still there, as
RosegardenMainViewWidget::slotUpdateRecordingSegment, though it
doesn't look as if it can ever be called and in any case it was only
the tiniest part of the work involved.


Chris

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] unsigned, was Re: [Rosegarden-bugs] SF.net SVN: rosegarden:[12819] trunk/rosegarden/src/gui/editors/segment

2012-02-14 Thread Chris Cannam
On 11 February 2012 09:53, Richard Bown
richard.b...@ferventsoftware.com wrote:
 I was going to say that bit of smugness is going to come back and bite him
 in the ass but of course I didn't..

On this note: today I got a bug report on a project of mine, where the
bug was arguably caused by my having used signed instead of unsigned
integers.

The situation was a pretty familiar one in the MIDI or audio-file
handling of software like Rosegarden -- it was decoding a sequence of
bytes (stored in a std::string) into a series of integer values by
pulling out individual bytes and composing them by bit-shifting (take
the high-order byte, shift by 8, take the next byte, add and shift
etc).

The problem was that the byte values were assigned to signed integers,
and in some cases these came out negative, giving a completely bogus
result. The proposed fix was to assign to unsigneds instead.

The only reason I say the problem was arguably caused by using
signed integers is that the real root of the problem is storing byte
sequences in std::string in the first place. std::string is a sequence
of plain char, not signed or unsigned char, so the signedness of its
elements is platform-dependent. Assigning these into signed values
then materialised the problem.


Chris

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] unsigned, was Re: [Rosegarden-bugs] SF.net SVN: rosegarden:[12819] trunk/rosegarden/src/gui/editors/segment

2012-02-11 Thread Chris Cannam
On 11 February 2012 10:37, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 On Saturday, February 11, 2012, Richard Bown wrote:

  Well that was a nice little read, straight from the voice of experience.

 I was going to say that bit of smugness is going to come back and bite him
 in the ass but of course I didn't..

 I rather saw it as Chris finally growing a spine.  He never asserts anything
 with any real authority

Well! Thanks fellas...

Though I'm inclined to agree with Richard on this one -- reading it
over again, I think smug arsehole as well.

On the technical side, the real problem (I think?) is that unsigned
and signed are not sufficiently distinct types -- so if you mix them
in arithmetic, the signed will be silently promoted to unsigned even
if it happens to be negative. This also means you can run into
problems from unsigneds even if you don't intentionally use them,
since library functions like std::vector::size return unsigned.

If the two were completely non-interchangeable except with an explicit
cast, they wouldn't cause anything like as many bugs... though they'd
probably annoy even more programmers.


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


[Rosegarden-devel] unsigned, was Re: [Rosegarden-bugs] SF.net SVN: rosegarden:[12819] trunk/rosegarden/src/gui/editors/segment

2012-02-10 Thread Chris Cannam
On 10 February 2012 04:13,  tedfe...@users.sourceforge.net wrote:
 No functional changes.  Mainly cosmetic changes to TrackButtons.  A couple
 of int's changed to the more sensible unsigned.

I feel bad about popping up only to quibble about something, but
changing int to unsigned on the whole is not a very good idea --
rather the opposite.

The main problem is overflow when computed values used for e.g. loop
indices unexpectedly become negative (that is, large and positive in
the unsigned world). For example,

  for (n = 0; n  m - 1; ++n) { ... }
  while (i  k - j) { ... }

will loop rather more than expected if m == 0 or j  k.

This is surprisingly common: it's one of the biggest sources of bugs I
see in code I get to review at work. It's more common in code that
does mathematical or signal-processing work than in most of
Rosegarden, but I'm sure it isn't the case that this never happens in
Rosegarden code.

I do understand that there are sound reasons one might want to use
unsigneds, and they're not only related to getting an extra bit for
the maximum positive value. For instance, unsigned overflow is defined
while signed overflow is not: UINT_MAX + 1 == 0, while INT_MAX + 1 is
undefined. But in practice, in most places where ints get used, signed
overflow is far less likely to be an issue than any problems with
unsigned arithmetic. (As an aside, this detail of the behaviour of
signed arithmetic allows the compiler to do a number of useful
optimisations if you happen to use signeds for loop counters, because
it is allowed to assume they never overflow.)

Also, of course, the standard library uses unsigneds for things like
vector sizes (although you'll notice that the Qt API always uses plain
int) so it's tempting to make everything else unsigned to avoid
compiler warnings and the like. Quite honestly though, it's far safer
to do the opposite and convert the unsigned to a signed int before you
use it.

Using signeds for values that are philosophically unsigned can also
have useful side-effects, such as in this case being able to use -1
for unset or no value, more meaningful to the reader than
UINT_MAX.

Unless you're explicitly representing a bit-addressable memory region
or something like that, I'd seriously suggest avoiding unsigned
altogether. I used to use unsigned and size_t quite a bit, and since I
realised how error-prone it was (because like most programmers, I'm
just not really good enough) I've pretty much eliminated them from my
code with only good consequences.

(This has come up on this list before, I think. Last time I had this
discussion with someone, I was amused to see this commit in one of his
projects a few weeks later:
http://code.soundsoftware.ac.uk/projects/audiodb/repository/revisions/6a5117d68ac4)


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Logical instruments is ready for a look

2012-02-10 Thread Chris Cannam
On 10 February 2012 18:55, Tom Breton (Tehom) te...@panix.com wrote:
 There may be a way to have it both ways.  If that doesn't work reasonably,
 then I'll simply writes times as if tempo was fixed, which you and Chris
 have convincved me of the merits of.

I think I am less convinced of this myself than Michael seems to be --
I'm not sure a richer MIDI format isn't worth having, possibly more so
than tempo ramps in many situations. But it's certainly one way to do
it, and the grey area is... grey. If Michael's argument is persuasive
to you then you should certainly overrule me.


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Logical instruments is ready for a look

2012-02-10 Thread Chris Cannam
On 10 February 2012 19:25, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 Sure it's worth having, it's just hard to reconcile a neat MIDI file with
 something that fundamentally can't be represented in MIDI.  Is it better to
 mangle the durations or to put in twelve dozen bizarre tempo changes?

It's better to put in the tempo changes, because you only need to put
in one for each event that starts during the ramped section (so there
is some logic to it, it won't look completely arbitrary and bizarre)
and more importantly because that way you don't end up with less
meaningful MIDI files for the far more common case where you have
tempo changes but no ramps.

But, this basically amounts to my saying that doing it right would be
better -- when (as we've seen) doing it right is what's prevented us
from doing it at all in the past.


Chris

--
Virtualization  Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Logical instruments is ready for a look

2012-02-07 Thread Chris Cannam
On 7 February 2012 20:34, Tom Breton (Tehom) te...@panix.com wrote:
 Mm, I doubt that would work.  It does understand the RealTimes in an
 intermediate stage, but it converts back to timeTs.

Can you remind me (sorry) what the intermediate stage is?

I think one must either write out no tempo changes at all except for
the initial tempo, and handle all of the note positions by converting
to real time and then converting back to MIDI time in a
tempo-independent way -- which would give all notes the right times
but give us a relatively uninformative MIDI file, without any MIDI
tempo changes in it -- or else one needs separate handling for ramps.

Inserting a tempo for each note event (as you almost suggest) would
probably be ideal for ramps -- otherwise, for notes during a ramp,
taking the real-time difference from the start of the ramp and
converting that to an elapsed MIDI time assuming constant tempo,
writing that out for each note, and then ensuring that the start time
was reset appropriately for the first event following the ramp.

Neither way is impossible, but either is fiddly enough to explain why
we haven't managed to do it already!


Chris

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Trouble building logical instrument branch

2012-01-31 Thread Chris Cannam
On 31 January 2012 19:52, D. Michael McIntyre
michael.mcint...@rosegardenmusic.com wrote:
 I hate Git with a passion

I've developed a habit of recommending Mercurial for people with an
allergy to Git who would nevertheless like to use something more
modern than Subversion -- and some Git users also find Mercurial more
amenable as a second VCS than they do Subversion. (I enjoy Mercurial
and, like you, have never really got on with Git.)

In this case, if I read it right, the problem wasn't so much the
choice of version control system as the fact that two different ones
(any two) were in use? Or is the root problem just that we didn't
automate rebuilding the data bundle?


Chris

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


Re: [Rosegarden-devel] Logical instruments interim report

2012-01-18 Thread Chris Cannam
Tom -- this looks like good stuff, thank you.

On 18 January 2012 19:58, Tom Breton (Tehom) te...@panix.com wrote:
 StudioControl::sendNRPN and sendRPN would be affected by this, but it
 looks like they aren't ever called anywhere.  Are they used in some subtle
 way that escapes me?

I have a feeling they were never completed and hooked up -- Richard
Bown might remember with more certainty.

In which case, if they're now actively wrong, it would probably be
better to remove them.


Chris

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel


  1   2   3   4   5   6   7   8   9   10   >