Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread D. Michael McIntyre
On 09/16/2013 11:37 AM, Tom Breton (Tehom) wrote:

> Milton Bradley should release Rosegarden Operation.  If you touch the
> sides, the buzzer won't make any sound and you have to figure out why. :)

Now that's amusing! :)

Speaking of which, I'm finally encountering some long reported, never 
reproduced MIDI timing bug.  I guess I'm lucky this time around.  I'll 
be playing Rosegarden, and for reasons unknown and at unpredictable 
intervals, MIDI playback will speed up and slow down.

Awesome.

This is exactly the kind of thing that prompted the initial bitch 
message that ultimately dragged me into this whole mess 12 years ago.  I 
was lamenting that it seemed sad that a sequencer couldn't get something 
as fundamental and basic as MIDI timing right, when my old 286 used to 
handle this just fine.

Apparently we still can't get MIDI timing right.  Man is that 
depressing, and I don't have a clue what to do about it.  Linux timing 
sources apparently SUCK.
-- 
D. Michael McIntyre

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread Jim Cochrane
On Mon, 16 Sep 2013 10:10:31 -0400
"D. Michael McIntyre"  wrote:

> On 09/15/2013 09:51 PM, Jim Cochrane wrote:
> 
> ...
> 
> >- If it is not possible, how hard would it be to add this
> > feature to the code?  (Since it does start playing when it receives
> > a START message, it seems to me it should not be hard to modify it
> > to allow recording instead of playing when it receives START.
> 
> What you'd want is the ability to arm the record button separately
> from the play button, like an old tape recorder.  Not sure why it
> doesn't do that already.
> 
> In principle, doing what you want should be something like punch 
> in/punch out recording.  In practice, that still isn't reliable after
> 13 years, and it's a dubious feature.  This code is what Julie Swango
> would call brittle.
> 
> I hate messing with it.  It's like playing that old Milton Bradley
> game where you use the tweezers to take out the little plastic bones,
> and if you touch the sides, you get shocked.  (It's not supposed to
> work like that?  Mine sure did!  I got many a jolt from that stupid
> thing.)

That's a pretty vivid metaphor :-)
> 
> The better idea would seem to be making it possible to arm the record 
> button ahead of play.  Then you send your START and presto.  Somehow
> I just think that's going to turn out to be massively complicated,
> fiddly, and prone to malfunction.  Call me optimistic.

That sounds like what Julie suggested, except the START would be MMC
code 2.

> 
> That being the case, I'd be in favor of figuring out some other way.
> Is there some likely MIDI message, an obscure controller, absolutely 
> anything we could poll for and react to without having to fiddle with 
> any of this other delicate stuff?  If so, I'd go that route.

Whatever solution is the easiest/most-practical to implement combined
with fulfilling my requirements (being able to start rosegarden
recording by sending it a MIDI message or a combination of MIDI
messages) would be fine with me.

However, I should mention that I have since found a work-around.  It's
rather ugly, but it appears to work.  I send a UNIX STOP signal to
rosegarden, then click the GUI "record" button, then sit down at my MIDI
keyboard and hit a pedal/key combination that tells my filter program to
send rosegarden a CONT (continue) signal (which brings rosegarden out of
stopped state so that it starts recording), and I immediately start
playing.  When I'm finished I hit a pedal/key combination that results
in rosegarden receiving a real-time STOP message - and it stops
recording.

> 
> >  However, this
> >  is coming from a naive view - I'm a programmer, but I know very
> >  little about the source code.)
> >- If it's not possible, is there some workaround?  (For example,
> > what if I hit 'record' to start rosegarden recording, then send it a
> >  song-position pointer message for position 0 to force
> > rosegarden to reset to position 0 and continue recording from
> > there?)
> 
> That sounds like a fine workaround to me.  Have you tried it?  It
> might actually work!

I did try it, but I don't think I plugged in the right parameters for
the required MIDI::ALSA::output call. rosegarden did not respond. I used
Kmidimon to view what was being sent and although it showed a song
position pointer message, the data value for the message was bizarre -
a large negative number. In the code I plugged in all 0s, expecting to
send a song pos value of 0. But either I'm sending the wrong parameters
(documentation for sending this type of event seems to be nonexistent)
or there's a bug in the library I'm using.  I'll get back to you if I
succeed in actually sending a 0 value.


Jim

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread Tom Breton (Tehom)
> I hate messing with it.  It's like playing that old Milton Bradley game
> where you use the tweezers to take out the little plastic bones, and if
> you touch the sides, you get shocked.  (It's not supposed to work like
> that?  Mine sure did!  I got many a jolt from that stupid thing.)

Milton Bradley should release Rosegarden Operation.  If you touch the
sides, the buzzer won't make any sound and you have to figure out why. :)

> That being the case, I'd be in favor of figuring out some other way.  Is
> there some likely MIDI message, an obscure controller, absolutely
> anything we could poll for and react to without having to fiddle with
> any of this other delicate stuff?  If so, I'd go that route.


IIUC we only inspect MappedEvent subtypes at a few places:

 * Where they come in or out in AlsaDriver
 * Where we insert them (or not), which you recently changed.  We only do
that when we're already recording.

Alsa was experimenting with some sort of RECORD signal, but I'm not sure
the current status of it.  There's a little about it here
http://alsa-project.org/main/index.php/Changes_v1.0.14rc4_v1.0.14

Tom Breton (Tehom)




--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread Abrolag
On Mon, 16 Sep 2013 13:09:43 -0400
Julie S  wrote:

> Hello Michael,
> 
> Somehow my name got dragged into this -- and I bet it had to do more with 
> MIDI than it did with brittle code. LOL
> 
> Anyhow, RG if set to be slave, listens to MMC commands, but doesn't respond 
> to all of them.
> 
> In theory we could allow it to listen to MMC code 8. That would press the 
> record button only. The user would need to hit play either in RG or have 
> their device emit MMC code 2 (play).
> 
> Unfortunately, I'm not in a position to try this out immediately.
> 
> Sincerely,
> Julie S.

This sounds *exactly* what I'd like too!

Jus' sayin' :)

-- 
Will J Godfrey
http://www.musically.me.uk
Say you have a poem and I have a tune.
Exchange them and we can both have a poem, a tune, and a song.

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread Julie S
Hello Michael,

Somehow my name got dragged into this -- and I bet it had to do more with MIDI 
than it did with brittle code. LOL

Anyhow, RG if set to be slave, listens to MMC commands, but doesn't respond to 
all of them.

In theory we could allow it to listen to MMC code 8. That would press the 
record button only. The user would need to hit play either in RG or have their 
device emit MMC code 2 (play).

Unfortunately, I'm not in a position to try this out immediately.

Sincerely,
Julie S.

"D. Michael McIntyre"  wrote:

>On 09/15/2013 09:51 PM, Jim Cochrane wrote:
>
>>- Is it possible for rosegarden to have its record function triggered
>>  by a MIDI event that it receives instead of hitting the GUI record
>>  button? And if it is possible, of course, how is it done?
>
>Not currently.
>
>>- If it is not possible, how hard would it be to add this feature to
>>  the code?  (Since it does start playing when it receives a START
>>  message, it seems to me it should not be hard to modify it to allow
>>  recording instead of playing when it receives START.
>
>What you'd want is the ability to arm the record button separately from 
>the play button, like an old tape recorder.  Not sure why it doesn't do 
>that already.
>
>In principle, doing what you want should be something like punch 
>in/punch out recording.  In practice, that still isn't reliable after 13 
>years, and it's a dubious feature.  This code is what Julie Swango would 
>call brittle.
>
>I hate messing with it.  It's like playing that old Milton Bradley game 
>where you use the tweezers to take out the little plastic bones, and if 
>you touch the sides, you get shocked.  (It's not supposed to work like 
>that?  Mine sure did!  I got many a jolt from that stupid thing.)
>
>The better idea would seem to be making it possible to arm the record 
>button ahead of play.  Then you send your START and presto.  Somehow I 
>just think that's going to turn out to be massively complicated, fiddly, 
>and prone to malfunction.  Call me optimistic.
>
>That being the case, I'd be in favor of figuring out some other way.  Is 
>there some likely MIDI message, an obscure controller, absolutely 
>anything we could poll for and react to without having to fiddle with 
>any of this other delicate stuff?  If so, I'd go that route.
>
>>  However, this
>>  is coming from a naive view - I'm a programmer, but I know very
>>  little about the source code.)
>>- If it's not possible, is there some workaround?  (For example, what
>>  if I hit 'record' to start rosegarden recording, then send it a
>>  song-position pointer message for position 0 to force rosegarden to
>>  reset to position 0 and continue recording from there?)
>
>That sounds like a fine workaround to me.  Have you tried it?  It might 
>actually work!
>-- 
>D. Michael McIntyre
>
>--
>LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
>1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
>2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
>Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
>http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
>___
>Rosegarden-user mailing list
>Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
>https://lists.sourceforge.net/lists/listinfo/rosegarden-user
--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


Re: [Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-16 Thread D. Michael McIntyre
On 09/15/2013 09:51 PM, Jim Cochrane wrote:

>- Is it possible for rosegarden to have its record function triggered
>  by a MIDI event that it receives instead of hitting the GUI record
>  button? And if it is possible, of course, how is it done?

Not currently.

>- If it is not possible, how hard would it be to add this feature to
>  the code?  (Since it does start playing when it receives a START
>  message, it seems to me it should not be hard to modify it to allow
>  recording instead of playing when it receives START.

What you'd want is the ability to arm the record button separately from 
the play button, like an old tape recorder.  Not sure why it doesn't do 
that already.

In principle, doing what you want should be something like punch 
in/punch out recording.  In practice, that still isn't reliable after 13 
years, and it's a dubious feature.  This code is what Julie Swango would 
call brittle.

I hate messing with it.  It's like playing that old Milton Bradley game 
where you use the tweezers to take out the little plastic bones, and if 
you touch the sides, you get shocked.  (It's not supposed to work like 
that?  Mine sure did!  I got many a jolt from that stupid thing.)

The better idea would seem to be making it possible to arm the record 
button ahead of play.  Then you send your START and presto.  Somehow I 
just think that's going to turn out to be massively complicated, fiddly, 
and prone to malfunction.  Call me optimistic.

That being the case, I'd be in favor of figuring out some other way.  Is 
there some likely MIDI message, an obscure controller, absolutely 
anything we could poll for and react to without having to fiddle with 
any of this other delicate stuff?  If so, I'd go that route.

>  However, this
>  is coming from a naive view - I'm a programmer, but I know very
>  little about the source code.)
>- If it's not possible, is there some workaround?  (For example, what
>  if I hit 'record' to start rosegarden recording, then send it a
>  song-position pointer message for position 0 to force rosegarden to
>  reset to position 0 and continue recording from there?)

That sounds like a fine workaround to me.  Have you tried it?  It might 
actually work!
-- 
D. Michael McIntyre

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user


[Rosegarden-user] How to cause rosegarden to record via a MIDI signal

2013-09-15 Thread Jim Cochrane
Hi Rosegarden team.  I've written a perl program [1] that filters MIDI
messages and - when certain message combinations are received -
modifies the MIDI data, or creates a completely different MIDI message,
or etc before sending data on to other MIDI recipients such as
rosegarden.  One of the things I'd like to do is to send a MIDI message
that will tell rosegarden to start recording (so that I can start the
recording process at the MIDI keyboard instead of having to hit record
on the RG interface and then meander over to my keyboard and start
playing).  The real-time start message (i.e., system real-time start -
http://www.midi.org/techspecs/midimessages.php) looks like a good
candidate, since when rosegarden receives it it actually does start -
but it starts playing, not recording.  I can't (AFAIK) set rosegarden
up in a "stopped/record-on" state, such that when it receives this
start signal, it starts recording.

I remember asking about this, or a similar issue, in the past (I think
it was this year), but I don't think there was a clear resolution.  (I
just grepped for 'record' in the subject line of all the messages from
this list on my local system and did not find a subject relevant to
this issue.)

So, I guess I have a few questions:

  - Is it possible for rosegarden to have its record function triggered
by a MIDI event that it receives instead of hitting the GUI record
button? And if it is possible, of course, how is it done?
  - If it is not possible, how hard would it be to add this feature to
the code?  (Since it does start playing when it receives a START
message, it seems to me it should not be hard to modify it to allow
recording instead of playing when it receives START.  However, this
is coming from a naive view - I'm a programmer, but I know very
little about the source code.)
  - If it's not possible, is there some workaround?  (For example, what
if I hit 'record' to start rosegarden recording, then send it a
song-position pointer message for position 0 to force rosegarden to
reset to position 0 and continue recording from there?)


Thanks!
Jim


[1] This program still in development, but I hope to release it on
github soon.

--
LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13. 
http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk
___
Rosegarden-user mailing list
Rosegarden-user@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user