Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Thread

Snapshot capture to Midi file?

Snapshot capture to Midi file?

2008-07-03 by islandgroove2002

Anyone know how or if it is or would be possible to convert the 
snapshot received by BC Manager into a Standard midi file that could be 
played in my host (via iac bus) in order to transmit all parameters to 
mapped controls when the midi clip was triggered?
I have been trying to record from the Behringer snapshot send in 
Ableton Live but Live is unfortunately recording/playing the messages 
in a less than useable way.

Re: Snapshot capture to Midi file?

2008-07-04 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
> Anyone know how or if it is or would be possible to convert the 
> snapshot received by BC Manager into a Standard midi file that could be 
> played in my host (via iac bus) in order to transmit all parameters to 
> mapped controls when the midi clip was triggered?

What exactly would you want to be able to save to a standard MIDI file?:

Messages recorded in the "MIDI input messages" window?

Or "custom output" messages? Such a conversion would be limited in the
sense that custom output may contain items other than MIDI bytes,
which of course cannot be saved to a MIDI file. And of course snapshot
MIDI messages converted to custom output have lost any timing
information, so their timing values would all have to be set to zero
in the MIDI file.

To summarize: saving actual MIDI messages from the "MIDI input
messages" window to a standard MIDI file is a lot more straightforward
to implement, but it depends on your situation whether that suffices
your needs.

Mark.

Re: Snapshot capture to Midi file?

2008-07-04 by islandgroove2002

--- In bc2000@yahoogroups.com, "Mark van den Berg" <markwinvdb@...> 
wrote:
>
> --- In bc2000@yahoogroups.com, "islandgroove2002"
> <islandgroove2002@> wrote:
> > Anyone know how or if it is or would be possible to convert the 
> > snapshot received by BC Manager into a Standard midi file that 
could be 
> > played in my host (via iac bus) in order to transmit all 
parameters to 
> > mapped controls when the midi clip was triggered?
> 
> What exactly would you want to be able to save to a standard MIDI 
file?:
> 
> Messages recorded in the "MIDI input messages" window?
> 
> Or "custom output" messages? Such a conversion would be limited in 
the
> sense that custom output may contain items other than MIDI bytes,
> which of course cannot be saved to a MIDI file. And of course 
snapshot
> MIDI messages converted to custom output have lost any timing
> information, so their timing values would all have to be set to zero
> in the MIDI file.
> 
> To summarize: saving actual MIDI messages from the "MIDI input
> messages" window to a standard MIDI file is a lot more 
straightforward
> to implement, but it depends on your situation whether that suffices
> your needs.
> 
> Mark.
>
I am assuming that what I would want to save to a midi file would be 
the result of the "receive snapshot" function that opens the midi 
messages window and displays what I assume is the "current state" of 
the behringer device.
I don't think timing information would have any relevance, I am 
looking to capture a set of constant values in the form of a midi 
file that in turn could be played back into my sequencer that 
would "trick" the externally mapped controls within my sequencer into 
thinking every fader, rotary and button on the Behringers had just 
sent a "current position" signal.

Ableton Live already attempts to be able to record this information 
directly into "midi clips", but for some reason the "Accuracy" of 
Ableton captures from my Behringers "snapshot send" seem very erratic.

The idea is that I can use cc messages from another device to 
remotely trigger midi clips loaded in Live that will relay 
my "snapshot" out to the IAC midi bus and back into Live as "current 
value" remote control information which will set all of my mix 
parameters in the Live set to exactly the way they were when I 
capture the snapshot..

The problem that I "might" be having with Live capturing the snapshot 
is how fast the Behringer sends the data.Therefore it might be a good 
idea if the resulting midi had some length of the "current value" 
controller information within it.Of course this might be what you are 
talking about when you mention the lack of timing information in a 
resulting midi file?

I could send you a midi file from Ableton Live containing the 
supposed snapshot from the Behringer if that would be usefull?

I also can't assure you that implementing this feature into your 
program would solve my problem.It is possible that Live or the IAC 
bus (midi yoke) is not relaying back the messages properly.

Re: Snapshot capture to Midi file?

2008-07-09 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
> I am assuming that what I would want to save to a midi file would be 
> the result of the "receive snapshot" function that opens the midi 
> messages window and displays what I assume is the "current state" of 
> the behringer device.

In that case, I could simply use the timing stored in the MIDI
messages window (possibly subtracting the first message's timing value
from all timing values so that the file's first message has a timing
value of 0).

> I don't think timing information would have any relevance,

Well, there might still be pitfalls here. E.g. does a program
correctly process a MIDI file in which all messages have a timing
value of zero? (A program might wrongly reorder the messages, based on
class or so...)

> Ableton Live already attempts to be able to record this information 
> directly into "midi clips", but for some reason the "Accuracy" of 
> Ableton captures from my Behringers "snapshot send" seem very erratic.

Hmm, this MIGHT be related to the point I've just made, but in
concrete terms I have no idea what goes wrong.

> The idea is that I can use cc messages from another device to 
> remotely trigger midi clips loaded in Live that will relay 
> my "snapshot" out to the IAC midi bus and back into Live as "current 
> value" remote control information which will set all of my mix 
> parameters in the Live set to exactly the way they were when I 
> capture the snapshot..
> 
> The problem that I "might" be having with Live capturing the snapshot 
> is how fast the Behringer sends the data.Therefore it might be a good 
> idea if the resulting midi had some length of the "current value" 
> controller information within it.Of course this might be what you are 
> talking about when you mention the lack of timing information in a 
> resulting midi file?

I'm not sure if I understand things completely, but it does look at
least possible that there is a timing issue here.

> I could send you a midi file from Ableton Live containing the 
> supposed snapshot from the Behringer if that would be usefull?

Go ahead. (Assuming the file isn't 10 megabytes long!)

> I also can't assure you that implementing this feature into your 
> program would solve my problem.It is possible that Live or the IAC 
> bus (midi yoke) is not relaying back the messages properly.

Yes indeed: if the problem doesn't lie with the MIDI file (in
particular the timing bytes), it wouldn't help.

But if it IS a timing problem, I can of course implement any scheme in
BC Manager, e.g.:
a. set all times to zero
b. have the times increment by a fixed amount
c. base the times on the original ones received in the MIDI message window

I'll see what I can do.

Mark.

Re: Snapshot capture to Midi file?

2008-07-09 by islandgroove2002

> 
> I'll see what I can do.
> 
> Mark.
>

Mark, I don't know if you need to spend the time on it on my behalf.
I found another midi sequencer to open an Ableton 'Capture" file in 
and
found that my attempt to record in an existing midi clip (as I was 
instructed to do) was resulting in a timeline of controller data 
where only part of the midi file contained the controller values, so 
as this midi file played, I was going from no values to current 
values.
I have found that pressing snapshot send just before I record enable 
a fresh clip and then pressing stop in my sequencer as fast as I can 
captures the vulues accurately.Finicky as all crap but it does work.

The second problem I was having was that any controllers set at a 
value of zero when captured would not not transmit the zero value 
again.I presume this is because the default value in Live before 
launching a clip is zero and cc value messages are not transmitted 
unless there is a change in value, so zero to zero is a no go.I have 
set all my minimum values to one and that seems to have sorted that 
issue out ;)

Now my only hurdle is how to capture and playback "toggle on" 
messages. So far not so good...

Ultimately what I need is a VSTI that can capture snapshots on 
multiple channels and retransmit to midi yoke...or??
Having to setup 6-8 remotely triggered midi clips on 6-8 midi 
channels for each "mix transitions" I want to make seems like doing 
things the hard way..

Regardless, if you do incorporate a "save snapshot to midi clip" in 
BCMan, I may find it easier to use than the above technique.I suppose 
it is quite possible someone else may find it usefull as well :)

btw,the midi file I was looking at in another sequencer showed 
exactly one bar of continuous (not changing) cc values
I'll try to find your email and if not I'll dump the file in the 
files section in case you would like it for reference.

Re: Snapshot capture to Midi file?

2008-07-10 by islandgroove2002

> 
> "Now my only hurdle is how to capture and playback "toggle on" 
> messages. So far not so good..."

It seems like the Behringer isn't sending value two from the buttons as 
part of the snapshot.Value one is being sent with the snapshot.If I 
start recording and pressing the button both values are recorded.

Any ideas of settings to change within the BCMan Parameters that might 
fix this?
>

Re: Snapshot capture to Midi file?

2008-07-10 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
> Regardless, if you do incorporate a "save snapshot to midi clip" in 
> BCMan, I may find it easier to use than the above technique.I suppose 
> it is quite possible someone else may find it usefull as well :)

Given the trouble you're having getting things to work using all those
other programs, it indeed seems a good idea to have a "Save as MIDI
file" option available from BC Manager! I'm still unsure what would
work best for you, but I'll try something, then we can see if it works
for you.

I was hoping to publish BC Manager vs. 1.5.0 in the near future
anyway, so I'll see if I can incorporate "Save as MIDI file" in that -
but if it takes me too long to implement, it may have to wait until
the next version. So stay tuned...

Mark.

Re: Snapshot capture to Midi file?

2008-07-10 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
>> "Now my only hurdle is how to capture and playback "toggle on" 
>> messages. So far not so good..."
> 
> It seems like the Behringer isn't sending value two from the buttons as 
> part of the snapshot.Value one is being sent with the snapshot.If I 
> start recording and pressing the button both values are recorded.

> Any ideas of settings to change within the BCMan Parameters that might 
> fix this?

I'm not sure I understand what you're saying completely.

As far as I know, in a snapshot the BCR sends only 1 value for each
button anyway, namely the current value. So what do you mean by "value
two"?

Are you using the correct button definition? BC MIDI
Implementation.pdf discusses button definitions in depth; in
particular concerning the "Mode" parameter. You might also try to set
the "Default" parameter (in BC Manager's button dialog box under the
"General" tab).

Mark.

Re: Snapshot capture to Midi file?

2008-07-10 by islandgroove2002

> I'm not sure I understand what you're saying completely.
> 
> As far as I know, in a snapshot the BCR sends only 1 value for each
> button anyway, namely the current value. So what do you mean by "value
> two"?
> 
> Are you using the correct button definition? BC MIDI
> Implementation.pdf discusses button definitions in depth; in
> particular concerning the "Mode" parameter. You might also try to set
> the "Default" parameter (in BC Manager's button dialog box under the
> "General" tab).
> 
> Mark.
>

Sorry for my less than stellar explanations...

I'll try again.I currently have my 'Keys(Upper Row)' and 'Keys(Lower 
Row)' mapped to toggle on/off 'Track Activator' and 'cue' buttons in 
live.
My Mode is set to 'Toggle on'for these buttons, 'Upper Row' value 1 is 
set at 127, value 2 is set at 60.This setting allows me to toggle these 
functions on and off, no feedback directly from the host when pressing 
a button on screen but say if I have a disabled 'tack activator' button 
on screen and the LED is lit on a BCF2000 button, the BCF2000 makes me 
press twice to "resync" the BCF led showing the 'tack activator' on so 
in effect feedback is working and toggle button off/on is working.

When I send  snapshot from the BCF2000, only buttons with illuminated 
LED are sent as a value (Value 1 = 127).Buttons that are "off" send no 
value, so an off button (Value 2 = 60) is not being sent with the 
snapshot.
I can see that "off" does send a value of 60 from the BCF when I record 
my button presses into a midi track, just not during snapshot send.
I did play with the Default value setting with no difference and I am a 
bit confused by the values range of 0-16383 (RTFM?)

So perhaps this is a slight glich in the Behringer programming that 
cannot be resolved by BCMan editable parameters?

Re: Snapshot capture to Midi file?

2008-07-11 by Mark van den Berg

First a few remarks about the MIDI file containing the BCF snapshot
you sent me:

It uses MIDI file format 0, i.e. it's a single track.
It also includes a track name: "2 2-MIDI". Does that mean anything to you?

The storage of the snapshot's MIDI messages isn't very efficient:
1. Per Controller there are 2 CC messages, first a useless one with a
value of zero (this may be what you were saying about Live's
initialization), then "the real one" with a non-zero value.
2. The file doesn't employ running status; i.e. it needlessly repeats
the same status byte ($B0) for every message. So effectively it uses 8
bytes for every CC message, whereas it could have been done using only
3 bytes!

All timestamps ("delta times", actually) in the file are zero. So if
the number of messages in a snapshot is high, this leads to a slightly
unrealistic MIDI file: MIDI is only capable of transmitting about 3000
bytes per second. So if you include such a MIDI file in a "real"
sequencer track (with notes etc.), there may well be a hiccup at the
start.

In testing my own BCF, I found that it actually may take something
like 30 msec to send a snapshot (of course this varies greatly).
However, MIDI files use "ticks" to indicate times, a tick being a
fraction of a beat, usually 1/96th (this is indeed used in your MIDI
file) or 1/120th. So it depends on the specified tempo (BPM) and
resolution (ticks per beat) to how many ticks a time value in msec
translates.

In the upcoming BC Manager 1.5.0, I've implemented a "Save to MIDI
file" option from the MIDI messages window: this saves all the
recorded messages to a MIDI file (in format 0, just like your Ableton
Live file). In the MIDI file the messages receive their original
recording times minus the first message's time. So the messages will
play back immediately, but they won't all have a timestamp of zero,
but will be spread out a bit over a few "ticks", at basically the same
speed at which the BCF originally sent them during the snapshot.

I can only hope the program you're using for playback is able to read
BC Manager's MIDI files: the MIDI file format is a bit messy:
different programs may expect different formats.

For instance, I've tried out BC Manager's MIDI files in Sonar 7: it
turns out that Sonar doesn't quite adhere to the official MIDI file
format specifications: at first Sonar STRETCHED the times, because I
had left out the (default) BPM spec of 120 (which the MIDI file format
spec says you CAN do), but apparently Sonar uses 100 BPM as default...
After I started including the actual 120 BPM in the MIDI files, Sonar
interpreted them correctly.
I also found another oddity in Sonar: one of my BCF-generated snapshot
MIDI files contained a Program Change message somewhere in the middle
(right between two CC messages!), but when I opened this file in
Sonar, this message didn't show up in Sonar's "event list": Sonar only
used this PC message to initialize the "program" (instrument) of the
MIDI track. This illustrates what I wrote in one of my earlier
replies: funny things in terms of sorting etc. may occur. E.g. I
suppose that the Program Change message would end up in a different
place if I save the MIDI file from Sonar again!

So I wouldn't be surprised if you still get problems with BC Manager's
MIDI files. E.g. these files contain "BC Manager 1.5.0" for the
"trackname" specification - this is just a courtesy, but your program
might balk at it (e.g. if it only accepts "2 2-MIDI" or so). The
potential for problems is pretty big, I'm afraid. But we'll get there
in the end...

Hopefully BC Manager 1.5.0 will be out in a few days' time. (I'm just
finalizing a completely unrelated new feature.)

Btw. I'll reply to your "toggle on" problem later, but thought I'd get
this out of the way first. I have so many things going on
simultaneously these days...

Mark.

Re: Snapshot capture to Midi file?

2008-07-11 by islandgroove2002

Wow..Thanks for all your hard work!
I look forward to testing the result :)

btw, 2 2-MIDI is a filename automaticly generated by Live.
I would presume Live will accept midi files with different naming 
standards.

Another thing I think is happening is that Live is only capturing 
controllers that I have assigned to functions within Live.
That means that if your solution works, I should be able to capture 
controllers that I relay through Live for controlling VST/VSTI's..

Something unrelated I haven't even brought up yet that will be a 
concern if I am working with two behringers at the same time regularily 
is that I can only get one at a time (the first in the list) to receive 
Identity.
We can go over that later though...

Re: Snapshot capture to Midi file? (Toggle button problem)

2008-07-11 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
> I did play with the Default value setting with no difference and I am a
> bit confused by the values range of 0-16383 (RTFM?)

Default is a generic parameter, i.e. it applies to ANY "standard" or 
"custom" output message definition, so its wide range of 0-16383 is 
necessary to support even those output message types that use 0-16383. 
In fact, as far as the "standard" output definitions are concerned, this 
wide range is only used by a few encoder and fader parameters (i.e. CC 
and NRPN in the 14-bit modes), but not for parameters for buttons. So 
you should only ever set Default to the range currently indicated for 
Value 1 and Value 2 on the "Standard message" tab, i.e. usually 0-127.

By the way: the upcoming BC Manager 1.5.0 fixes a bug concerning 
"Default Off": all previous versions of BC Manager (including 1.4.0)
don't send or save "Default Off" (so you'd lose "Default Off" upon
reopening the file). But as far as I can see, this doesn't have
anything to do with your current problem.

> When I send  snapshot from the BCF2000, only buttons with illuminated 
> LED are sent as a value (Value 1 = 127).Buttons that are "off" send no 
> value, so an off button (Value 2 = 60) is not being sent with the 
> snapshot.
> I can see that "off" does send a value of 60 from the BCF when I record 
> my button presses into a midi track, just not during snapshot send.

> So perhaps this is a slight glich in the Behringer programming that 
> cannot be resolved by BCMan editable parameters?

Believe it or not: I can't reproduce your problem. If anything, I've
got the REVERSE problem(!): I can't make my BCF NOT send the "off"
value (Value 2) in snapshots, at least not using a "standard output"
CC message. So I'm kind of confused right now.

We have a lot of issues to consider here:

First of all: there are 3 ways of triggering a snapshot:

1. You select a memory preset (e.g. via the preset keys on the BCF
itself) that has the "snapshot (on preset selection)" parameter set to
"on". (See under the Settings tab of the preset dialog in BC Manager.)

2. You press EDIT + "<PRESET" on the BCF. (This works irrespective of
the preset's "snapshot" parameter.)

3. In BC Manager you execute "Receive snapshot". This sends a special
snapshot request to the BCF. (This also works irrespective of the
preset's "snapshot" setting.)

However, I must say that I've never ever found any difference in
output for these 3 methods - but you never know.

Secondly: there may be a difference between the BCF's snapshot
behavior for a "standard output" definition and for a "custom output"
definition:

My experience is that a standard CC definition with Value 1=127, Value
2=0 (or your 60) and Mode "Toggle On" ALWAYS causes a snapshot to
include a message containing the correct value (so initially Value 2
(i.e. 0 or your 60). 

E.g.:

$rev F1 ; Firmware 1.10; BC Manager 1.5.0
$preset
  .name 'ButtonTest              '
  .snapshot on
  .request off
  .egroups 4
  .fkeys on
  .lock off
  .init
$button 33 ;Standard output
  .easypar CC 1 1 127 0 toggleon
  .showvalue on
$store 1
$end

Note that "snapshot" is "on" here. So if I upload this to my BCF, then
switch to preset 1 (e.g. via the PRESET buttons on the BCF itself),
the BCF ALWAYS returns "B0 01 00" (in BC Manager's "MIDI input
messages" window in "Record" mode). The same happens when I press EDIT
+ "<PRESET", or when I execute "Receive snapshot" from BC Manager.

However, it is also possible to define basically the same setup via
"custom output":

$rev F1 ; Firmware 1.10; BC Manager 1.5.0
$preset
  .name 'ButtonTest              '
  .snapshot on
  .request off
  .egroups 4
  .fkeys on
  .lock off
  .init
$button 33 ;Custom output
  .showvalue on
  .mode toggle
  .minmax 0 127
  .tx $B0 $01 val
$end

(In BC Manager the relevant values can be set via the button dialog's
"Custom output" tab.)

In this case, the BCF reacts more as you've described: it does NOT
send a message in the initial snapshot. However, it does send "0" in
manually triggered snapshots after you've pressed the button twice.

But I CAN make my BCF send a message even in the initial snapshot if I
add the line ".default 0" to the button section in the above script.
(Equivalent in BC Manager's button dialog box: under the "General"
tab, set Default "on" and to "0".)
So for custom output, if the Default parameter is set to "on", the
selected actual value of Default IS included in the initial snapshot.

In "BC MIDI Implementation.pdf" I stated that ".default off" ALWAYS
has the effect of PREVENTING a message in an initial snapshot - but
given the behavior described above, I'm now starting to suspect that
this prevention only works for CUSTOM output, not for STANDARD output.

On the other hand, if you can't get a response from standard message
definitions in initial snapshots, there may be something I'm
completely missing right now. So let me know how things work (or don't
work) for you.

Mark.

Re: Snapshot capture to Midi file? (Identity problem)

2008-07-11 by Mark van den Berg

--- In bc2000@yahoogroups.com, "islandgroove2002"
<islandgroove2002@...> wrote:
> Something unrelated I haven't even brought up yet that will be a 
> concern if I am working with two behringers at the same time regularily 
> is that I can only get one at a time (the first in the list) to receive 
> Identity.
> We can go over that later though...

Have you looked at the correspondence between Kip and me lately about
his auto-detection problems? You might pick up a few tricks that might
help in this respect from that discussion. And I've done a lot in BC
Manager vs. 1.5.0 to improve the situation, so it might help you too.
Just a liiiitle more patience please...

Mark.

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.