|
|
|
11-05-2019, 08:52 PM
|
#5241
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
A bit more info. I created a little Reaktor Ensemble to send/receive OSC messages to/from Lemur and I can get the Lemur fader to move when I move a knob in Reaktor.
Address Pattern is /Fader/x and value is between 0 and 1.
So I think I can rule out Lemur.
Worst case I can try this with MIDI, so if you have too much on your plate right now Geoff, let me know and I'll try that instead. No dramas.
|
|
|
11-05-2019, 10:47 PM
|
#5242
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Send specific MIDI/OSC message to surface
Geoff,
Wondering if there is an Action in CSI somewhere that I can use to send a specific MIDI or OSC message to a surface? Or if not, if there's some way I can bastardise one of the Feedback Generators to do that for me?
Reason I ask is that the Lemur can change the layout it has loaded in response to an OSC message, so I'd like to do that when I GoZone.
Actually, even nicer than doing it when I trigger a GoZone, would be if I could define an OnLoad trigger for a zone. Then within the zone itself, when it is loaded I could send a message to the Lemur to load a different layout. That way it would handle FXZones triggered by MapFocusedFXToWidgets. Could probably also be used to, for example, load a different preset on a hardware surface, or other things.
Does that make sense?
|
|
|
11-06-2019, 06:39 AM
|
#5243
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
New build is up.
Fixed (very embarrassing) OSC bug.
@MalcolmG, thank for testing
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-06-2019, 06:44 AM
|
#5244
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MalcolmG
Geoff,
Wondering if there is an Action in CSI somewhere that I can use to send a specific MIDI or OSC message to a surface? Or if not, if there's some way I can bastardise one of the Feedback Generators to do that for me?
Reason I ask is that the Lemur can change the layout it has loaded in response to an OSC message, so I'd like to do that when I GoZone.
Actually, even nicer than doing it when I trigger a GoZone, would be if I could define an OnLoad trigger for a zone. Then within the zone itself, when it is loaded I could send a message to the Lemur to load a different layout. That way it would handle FXZones triggered by MapFocusedFXToWidgets. Could probably also be used to, for example, load a different preset on a hardware surface, or other things.
Does that make sense?
|
Yes, that is more or less what is hardwired for the TouchOSC proof of concept.
It's currently called LoadingZone (it only exists internally), maybe OnZoneLoad is a better name...
Anyway, we should probably do a proper job and implement this as a virtual widget, then we can attach any action -- we'll also have to add the appropriate FB for your use case, as well as go back and retrofit the TouchOSC code, but we will then have a generalized mechanism.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-06-2019, 02:29 PM
|
#5245
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
New build is up.
Fixed (very embarrassing) OSC bug.
|
Haha, we've all had those. I won't even ask for the details.
Quote:
Originally Posted by Geoff Waddington
@MalcolmG, thank for testing
|
No worries. Thanks for the quick turn-around.
|
|
|
11-06-2019, 02:39 PM
|
#5246
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
Yes, that is more or less what is hardwired for the TouchOSC proof of concept.
It's currently called LoadingZone (it only exists internally), maybe OnZoneLoad is a better name...
Anyway, we should probably do a proper job and implement this as a virtual widget, then we can attach any action -- we'll also have to add the appropriate FB for your use case, as well as go back and retrofit the TouchOSC code, but we will then have a generalized mechanism.
|
Sweet! Thanks Geoff.
Thinking about the ability to send a message to a surface, could also be useful going back to things like the Launchpad discussion, to change colours, etc. If it's generic, people will probably do things with it that were not planned.
|
|
|
11-06-2019, 02:56 PM
|
#5247
|
Human being with feelings
Join Date: Mar 2007
Location: Denver, CO
Posts: 633
|
Okay, I've just been turned on to this thread, via gearslutz (how random!) and it's extremely exciting!
I had thought I would have to do a lot more rolling-my-own to get my controller working. Now the potential uses for my very modest X-touch mini are exploding!
Which has made me think of a feature I'd like...
I am in process of creating a master control panel gui for live use. I've been using a modified version of the Lokasenna gui stuff. It's coming along. What I'd like to be able to do is have a section of the gui devoted to showing what the behringer is doing at any given moment, based on the currently selected zone, selected channel, and any modifiers. Since you (are planning to?) support scribble strips, I'm wondering if this is already available.... just not sure where to hook into it.
I'm thinking along the lines of a .csv text string I can parse to populate a set of labels, which are laid out in the order the controls appear in the behringer, and colored and/or numbered according to the currently selected channel.
Is this (already?) possible?
Also not sure how this information would get to my script from reaper... that might be the most troublesome part! I guess it could be written to an .ini file that my script could read from. The problem then is just letting the script know when that data has changed.
Thoughts??
|
|
|
11-06-2019, 03:10 PM
|
#5248
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
New build is up.
Fixed (very embarrassing) OSC bug.
|
So, good news and bad news:
- good news, no more flood of messages. Output window sits silently until something happens. Awesome.
- bad news, OSC messages still not getting to Lemur.
I decided to write the opposite of my Reaktor ensemble from the other day. ie. one that sends OSC messages to CSI and displays the values it receives back. It behaves exactly as Lemur. Moving the knob in Reaktor moves the MasterVolume in Reaper. However moving the Master Volume in Reaper, shows the output messages being sent in the Reaper Console, but they don't display in Reaktor (not even in its Incoming OSC Monitor window)
|
|
|
11-06-2019, 03:35 PM
|
#5249
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MalcolmG
So, good news and bad news:
- good news, no more flood of messages. Output window sits silently until something happens. Awesome.
- bad news, OSC messages still not getting to Lemur.
I decided to write the opposite of my Reaktor ensemble from the other day. ie. one that sends OSC messages to CSI and displays the values it receives back. It behaves exactly as Lemur. Moving the knob in Reaktor moves the MasterVolume in Reaper. However moving the Master Volume in Reaper, shows the output messages being sent in the Reaper Console, but they don't display in Reaktor (not even in its Incoming OSC Monitor window)
|
I'm sure you've done this more than once, but IP/port config might be worth checking, oh and once I configure with TouchOSC, sometimes I have to exit Reaper and the app and restart both before everything works, not always, but often...
I tested examples similar to yours (that's how I caught the bug ) and with Touch OSC everything worked fine...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-06-2019, 04:16 PM
|
#5250
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
I'm sure you've done this more than once, but IP/port config might be worth checking, oh and once I configure with TouchOSC, sometimes I have to exit Reaper and the app and restart both before everything works, not always, but often...
I tested examples similar to yours (that's how I caught the bug ) and with Touch OSC everything worked fine...
|
In CSI.INI, I'm assuming:
- first listed port is the one CSI will listen on
- second listed port is the one CSI will send to (on the IP listed at the end of the line)
Is that correct? I'm assuming so, otherwise it wouldn't be receiving the messages in CSI to begin with.
As an aside, in the case of Lemur, both ports were 8000 (on different IPs, obv) For Reaktor, they were both on the local machine so they were different ports then.
I wonder if the free Reaktor player will run my Ensemble? That way you could test it without Lemur. Let me try that and see what I can find. Update: No, seems not
Last edited by MalcolmG; 11-06-2019 at 04:33 PM.
|
|
|
11-06-2019, 06:45 PM
|
#5251
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Just had a go at getting the meters to work on the MCU/XT, but not having much luck.
I have the correct defs in the .mst (at least I haven't changed them) and I have:
Code:
VUMeter| TrackOutputMeter
in the Channel Zone, but all I get is a row of .......... in display lower and nothing on the 'Signal' LED. Plenty of busy MIDI info coming from Reaper but nothing happening.
Actually, just flashing the 'Signal' LED is all I'm looking for
|
|
|
11-07-2019, 07:43 AM
|
#5252
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
Just had a go at getting the meters to work on the MCU/XT, but not having much luck.
I have the correct defs in the .mst (at least I haven't changed them) and I have:
Code:
VUMeter| TrackOutputMeter
in the Channel Zone, but all I get is a row of .......... in display lower and nothing on the 'Signal' LED. Plenty of busy MIDI info coming from Reaper but nothing happening.
Actually, just flashing the 'Signal' LED is all I'm looking for
|
Your .mst should include something like this:
Code:
Widget VUMeter1
FB_MCUVUMeter 0
WidgetEnd
Widget VUMeter2
FB_MCUVUMeter 1
WidgetEnd
...
and in the Channel section of your .zon:
Code:
...
VUMeter| TrackOutputMeter
...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 07:47 AM
|
#5253
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by woodslanding
Okay, I've just been turned on to this thread, via gearslutz (how random!) and it's extremely exciting!
I had thought I would have to do a lot more rolling-my-own to get my controller working. Now the potential uses for my very modest X-touch mini are exploding!
Which has made me think of a feature I'd like...
I am in process of creating a master control panel gui for live use. I've been using a modified version of the Lokasenna gui stuff. It's coming along. What I'd like to be able to do is have a section of the gui devoted to showing what the behringer is doing at any given moment, based on the currently selected zone, selected channel, and any modifiers. Since you (are planning to?) support scribble strips, I'm wondering if this is already available.... just not sure where to hook into it.
I'm thinking along the lines of a .csv text string I can parse to populate a set of labels, which are laid out in the order the controls appear in the behringer, and colored and/or numbered according to the currently selected channel.
Is this (already?) possible?
Also not sure how this information would get to my script from reaper... that might be the most troublesome part! I guess it could be written to an .ini file that my script could read from. The problem then is just letting the script know when that data has changed.
Thoughts??
|
Not quite sure what you're asking -- do you mean you wish to implement a virtual display for the mini -- one that would simulate scribble strips ?
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 07:48 AM
|
#5254
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
Your .mst should include something like this:
Code:
Widget VUMeter1
FB_MCUVUMeter 0
WidgetEnd
Widget VUMeter2
FB_MCUVUMeter 1
WidgetEnd
...
and in the Channel section of your .zon:
Code:
...
VUMeter| TrackOutputMeter
...
|
Yep, and all I get is row of ......
|
|
|
11-07-2019, 07:53 AM
|
#5255
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MalcolmG
In CSI.INI, I'm assuming:
- first listed port is the one CSI will listen on
- second listed port is the one CSI will send to (on the IP listed at the end of the line)
Is that correct? I'm assuming so, otherwise it wouldn't be receiving the messages in CSI to begin with.
As an aside, in the case of Lemur, both ports were 8000 (on different IPs, obv) For Reaktor, they were both on the local machine so they were different ports then.
I wonder if the free Reaktor player will run my Ensemble? That way you could test it without Lemur. Let me try that and see what I can find. Update: No, seems not
|
Hmmm...
As far as the .ini file order just open the config panel, that will tell you
The next thing I would do is get Touch OSC since we have already have it working on OS X, Windows 10, iOS and Android, even if just to help troubleshoot the Lemur/CSI issues...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 11:29 AM
|
#5256
|
Human being with feelings
Join Date: Mar 2007
Location: Denver, CO
Posts: 633
|
Quote:
Originally Posted by Geoff Waddington
Not quite sure what you're asking -- do you mean you wish to implement a virtual display for the mini -- one that would simulate scribble strips ?
|
Exactly.
From reading further back on the thread, it looks like you are supporting scribble strips, but there's nothing yet about them in the tutorial video or wiki as far as I can tell.
I'm attaching a simple example of what it might look like for the behringer. This would just be a little floating window you could open with a command in reaper (and it would look a little nicer--this is literally just spacings mocked up in inkscape.) Maybe with a drop-down to select the controller to show. A controller specific toolbar, basically.
Taking it a step further, you could actually make the boxes function as sliders and buttons, and encoders function as +- buttons. That way you would have a complete virtual controller you could use when you are working on your laptop away from the actual unit. Don't know how useful that would be for folks, but it's an idea.
For a real cadillac solution you'd want versions of this script for every control surface out there (that doesn't actually have scribble strips!) I'd be happy to offer code for the behringer as a starting point. Maybe I could even figure out how to lay out controls from an editable text file... I actually really need to do that anyway, as I keep changing my mind about my layout the list of controls would be read from the mst file. I suppose the size and positions of controls could be in the same file and just ignored by csi...??? I'd also want an option to select the color, including just taking the color of the selected channel. Text comes from the zone file, correct? I guess color eventually will as well?
I could probably manage to get something like this working if I knew how to get the text and color data.
In any case, I'm going to figure out how to lay out my controls from a text file asap, as that's obviously the way to do it going forward.
cheers!
-eric
|
|
|
11-07-2019, 02:59 PM
|
#5257
|
Human being with feelings
Join Date: Mar 2007
Location: Denver, CO
Posts: 633
|
okay here's a super rough start... I've read the following file:
Code:
/ X-Touch Mini
/ Ensure X-Touch Mini is configured in "standard" mode
/
/ Layout:
/ Layer A
/ Rotary Buttons (EN 1-8 Push)
/ Rotary Knobs (EN 1-8 Turn)
/ Upper Buttons (BT 1-8)
/ Lower Buttons (BT 9-16)
/ Master Fader (FD 1)
/
/ Layer B
/ Rotary Buttons (EN 1-8 Push)
/ Rotary Knobs (EN 1-8 Turn)
/ Upper Buttons (BT 1-8)
/ Lower Buttons (BT 9-16)
/ Master Fader (FD 1)
Widget LayerA_RotaryPush1
Press 9a 00 7f
Row 2
Col 1
WidgetEnd
Widget LayerA_RotaryPush2
Press 9a 01 7f
Row 2
Col 2
WidgetEnd
Widget LayerA_RotaryPush3
Press 9a 02 7f
Row 2
Col 3
WidgetEnd
Widget LayerA_RotaryPush4
Press 9a 03 7f
Row 2
Col 4
WidgetEnd
Widget LayerA_RotaryPush5
Press 9a 04 7f
Row 2
Col 5
WidgetEnd
Widget LayerA_RotaryPush6
Press 9a 05 7f
Row 2
Col 6
WidgetEnd
Widget LayerA_RotaryPush7
Press 9a 06 7f
Row 2
Col 7
WidgetEnd
Widget LayerA_RotaryPush8
Press 9a 07 7f
Row 2
Col 8
WidgetEnd
Widget LayerA_Rotary1
Fader7Bit ba 01 7f
FB_Fader7Bit ba 01 7e 0.5
Row 1
Col 1
WidgetEnd
Widget LayerA_Rotary2
Fader7Bit ba 02 7f
FB_Fader7Bit ba 02 7f 0.5
Row 1
Col 2
WidgetEnd
Widget LayerA_Rotary3
Fader7Bit ba 03 7f
FB_Fader7Bit ba 03 7f 0.5
Row 1
Col 3
WidgetEnd
Widget LayerA_Rotary4
Fader7Bit ba 04 7f
FB_Fader7Bit ba 04 7f 0.5
Row 1
Col 4
WidgetEnd
Widget LayerA_Rotary5
Fader7Bit ba 05 7f
FB_Fader7Bit ba 05 7f 0.5
Row 1
Col 5
WidgetEnd
Widget LayerA_Rotary6
Fader7Bit ba 06 7f
FB_Fader7Bit ba 06 7f 0.5
Row 1
Col 6
WidgetEnd
Widget LayerA_Rotary7
Fader7Bit ba 07 7f
FB_Fader7Bit ba 07 7f 0.5
Row 1
Col 7
WidgetEnd
Widget LayerA_Rotary8
Fader7Bit ba 08 7f
FB_Fader7Bit ba 08 7f 0.5
Row 1
Col 8
WidgetEnd
Widget LayerA_UpperButton1
Press 9a 08 7f
FB_TwoState 9a 08 7f 8a 08 00 0.5
Row 3
Col 1
WidgetEnd
Widget LayerA_UpperButton2
Press 9a 09 7f
FB_TwoState 9a 09 7f 8a 09 00 0.5
Row 3
Col 2
WidgetEnd
Widget LayerA_UpperButton3
Press 9a 0a 7f
FB_TwoState 9a 0a 7f 8a 0a 00 0.5
Row 3
Col 3
WidgetEnd
Widget LayerA_UpperButton4
Press 9a 0b 7f
FB_TwoState 9a 0b 7f 8a 0b 00 0.5
Row 3
Col 4
WidgetEnd
Widget LayerA_UpperButton5
Press 9a 0c 7f
FB_TwoState 9a 0c 7f 8a 0c 00 0.5
Row 3
Col 5
WidgetEnd
Widget LayerA_UpperButton6
Press 9a 0d 7f
FB_TwoState 9a 0d 7f 8a 0d 00 0.5
Row 3
Col 6
WidgetEnd
Widget LayerA_UpperButton7
Press 9a 0e 7f
FB_TwoState 9a 0e 7f 8a 0e 00 0.5
Row 3
Col 7
WidgetEnd
Widget LayerA_UpperButton8
Press 9a 0f 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 3
Col 8
WidgetEnd
Widget LayerA_LowerButton1
Press 9a 10 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 4
Col 1
WidgetEnd
Widget LayerA_LowerButton2
Press 9a 11 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 4
Col 2
WidgetEnd
Widget LayerA_LowerButton3
Press 9a 12 7f
FB_TwoState 9a 12 7f 8a 12 00 0.5
Row 4
Col 3
WidgetEnd
Widget LayerA_LowerButton4
Press 9a 13 7f
FB_TwoState 9a 13 7f 8a 13 00 0.5
Row 4
Col 4
WidgetEnd
Widget LayerA_LowerButton5
Press 9a 14 7f
FB_TwoState 9a 14 7f 8a 14 00 0.5
Row 4
Col 5
WidgetEnd
Widget LayerA_LowerButton6
Press 9a 15 7f
FB_TwoState 9a 15 7f 8a 15 00 0.5
Row 4
Col 6
WidgetEnd
Widget LayerA_LowerButton7
Press 9a 16 7f
FB_TwoState 9a 16 7f 8a 16 00 0.5
Row 4
Col 7
WidgetEnd
Widget LayerA_LowerButton8
Press 9a 17 7f
FB_TwoState 9a 17 7f 8a 17 00 0.5
Row 4
Col 8
WidgetEnd
Widget LayerA_Fader
Fader7Bit ba 09 7f
Row 1
Col 9
WidgetEnd
/################################################
And generated a set of labels (well actually labeled faders...) So far it just reads the control names, which is not what we want. But it's a start. I appears that REAPER has no way to know which bank of buttons on the xtouch is selected--I don't think it sends out any messages when pressed--so I limited myself to bank A. That's fine for me, given that CSI allows you to create any number of zones.
Also it would be nice to support a vertical type of control eventually, but for now the fader is just another horizontal button.
|
|
|
11-07-2019, 03:37 PM
|
#5258
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by woodslanding
Exactly.
From reading further back on the thread, it looks like you are supporting scribble strips, but there's nothing yet about them in the tutorial video or wiki as far as I can tell.
I'm attaching a simple example of what it might look like for the behringer. This would just be a little floating window you could open with a command in reaper (and it would look a little nicer--this is literally just spacings mocked up in inkscape.) Maybe with a drop-down to select the controller to show. A controller specific toolbar, basically.
Taking it a step further, you could actually make the boxes function as sliders and buttons, and encoders function as +- buttons. That way you would have a complete virtual controller you could use when you are working on your laptop away from the actual unit. Don't know how useful that would be for folks, but it's an idea.
For a real cadillac solution you'd want versions of this script for every control surface out there (that doesn't actually have scribble strips!) I'd be happy to offer code for the behringer as a starting point. Maybe I could even figure out how to lay out controls from an editable text file... I actually really need to do that anyway, as I keep changing my mind about my layout the list of controls would be read from the mst file. I suppose the size and positions of controls could be in the same file and just ignored by csi...??? I'd also want an option to select the color, including just taking the color of the selected channel. Text comes from the zone file, correct? I guess color eventually will as well?
I could probably manage to get something like this working if I knew how to get the text and color data.
In any case, I'm going to figure out how to lay out my controls from a text file asap, as that's obviously the way to do it going forward.
cheers!
-eric
|
Yeah, we've tossed this around a few times here and there, probably now time to take a closer look...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 03:50 PM
|
#5259
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by woodslanding
okay here's a super rough start... I've read the following file:
Code:
/ X-Touch Mini
/ Ensure X-Touch Mini is configured in "standard" mode
/
/ Layout:
/ Layer A
/ Rotary Buttons (EN 1-8 Push)
/ Rotary Knobs (EN 1-8 Turn)
/ Upper Buttons (BT 1-8)
/ Lower Buttons (BT 9-16)
/ Master Fader (FD 1)
/
/ Layer B
/ Rotary Buttons (EN 1-8 Push)
/ Rotary Knobs (EN 1-8 Turn)
/ Upper Buttons (BT 1-8)
/ Lower Buttons (BT 9-16)
/ Master Fader (FD 1)
Widget LayerA_RotaryPush1
Press 9a 00 7f
Row 2
Col 1
WidgetEnd
Widget LayerA_RotaryPush2
Press 9a 01 7f
Row 2
Col 2
WidgetEnd
Widget LayerA_RotaryPush3
Press 9a 02 7f
Row 2
Col 3
WidgetEnd
Widget LayerA_RotaryPush4
Press 9a 03 7f
Row 2
Col 4
WidgetEnd
Widget LayerA_RotaryPush5
Press 9a 04 7f
Row 2
Col 5
WidgetEnd
Widget LayerA_RotaryPush6
Press 9a 05 7f
Row 2
Col 6
WidgetEnd
Widget LayerA_RotaryPush7
Press 9a 06 7f
Row 2
Col 7
WidgetEnd
Widget LayerA_RotaryPush8
Press 9a 07 7f
Row 2
Col 8
WidgetEnd
Widget LayerA_Rotary1
Fader7Bit ba 01 7f
FB_Fader7Bit ba 01 7e 0.5
Row 1
Col 1
WidgetEnd
Widget LayerA_Rotary2
Fader7Bit ba 02 7f
FB_Fader7Bit ba 02 7f 0.5
Row 1
Col 2
WidgetEnd
Widget LayerA_Rotary3
Fader7Bit ba 03 7f
FB_Fader7Bit ba 03 7f 0.5
Row 1
Col 3
WidgetEnd
Widget LayerA_Rotary4
Fader7Bit ba 04 7f
FB_Fader7Bit ba 04 7f 0.5
Row 1
Col 4
WidgetEnd
Widget LayerA_Rotary5
Fader7Bit ba 05 7f
FB_Fader7Bit ba 05 7f 0.5
Row 1
Col 5
WidgetEnd
Widget LayerA_Rotary6
Fader7Bit ba 06 7f
FB_Fader7Bit ba 06 7f 0.5
Row 1
Col 6
WidgetEnd
Widget LayerA_Rotary7
Fader7Bit ba 07 7f
FB_Fader7Bit ba 07 7f 0.5
Row 1
Col 7
WidgetEnd
Widget LayerA_Rotary8
Fader7Bit ba 08 7f
FB_Fader7Bit ba 08 7f 0.5
Row 1
Col 8
WidgetEnd
Widget LayerA_UpperButton1
Press 9a 08 7f
FB_TwoState 9a 08 7f 8a 08 00 0.5
Row 3
Col 1
WidgetEnd
Widget LayerA_UpperButton2
Press 9a 09 7f
FB_TwoState 9a 09 7f 8a 09 00 0.5
Row 3
Col 2
WidgetEnd
Widget LayerA_UpperButton3
Press 9a 0a 7f
FB_TwoState 9a 0a 7f 8a 0a 00 0.5
Row 3
Col 3
WidgetEnd
Widget LayerA_UpperButton4
Press 9a 0b 7f
FB_TwoState 9a 0b 7f 8a 0b 00 0.5
Row 3
Col 4
WidgetEnd
Widget LayerA_UpperButton5
Press 9a 0c 7f
FB_TwoState 9a 0c 7f 8a 0c 00 0.5
Row 3
Col 5
WidgetEnd
Widget LayerA_UpperButton6
Press 9a 0d 7f
FB_TwoState 9a 0d 7f 8a 0d 00 0.5
Row 3
Col 6
WidgetEnd
Widget LayerA_UpperButton7
Press 9a 0e 7f
FB_TwoState 9a 0e 7f 8a 0e 00 0.5
Row 3
Col 7
WidgetEnd
Widget LayerA_UpperButton8
Press 9a 0f 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 3
Col 8
WidgetEnd
Widget LayerA_LowerButton1
Press 9a 10 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 4
Col 1
WidgetEnd
Widget LayerA_LowerButton2
Press 9a 11 7f
FB_TwoState 9a 0f 7f 8a 0f 00 0.5
Row 4
Col 2
WidgetEnd
Widget LayerA_LowerButton3
Press 9a 12 7f
FB_TwoState 9a 12 7f 8a 12 00 0.5
Row 4
Col 3
WidgetEnd
Widget LayerA_LowerButton4
Press 9a 13 7f
FB_TwoState 9a 13 7f 8a 13 00 0.5
Row 4
Col 4
WidgetEnd
Widget LayerA_LowerButton5
Press 9a 14 7f
FB_TwoState 9a 14 7f 8a 14 00 0.5
Row 4
Col 5
WidgetEnd
Widget LayerA_LowerButton6
Press 9a 15 7f
FB_TwoState 9a 15 7f 8a 15 00 0.5
Row 4
Col 6
WidgetEnd
Widget LayerA_LowerButton7
Press 9a 16 7f
FB_TwoState 9a 16 7f 8a 16 00 0.5
Row 4
Col 7
WidgetEnd
Widget LayerA_LowerButton8
Press 9a 17 7f
FB_TwoState 9a 17 7f 8a 17 00 0.5
Row 4
Col 8
WidgetEnd
Widget LayerA_Fader
Fader7Bit ba 09 7f
Row 1
Col 9
WidgetEnd
/################################################
And generated a set of labels (well actually labeled faders...) So far it just reads the control names, which is not what we want. But it's a start. I appears that REAPER has no way to know which bank of buttons on the xtouch is selected--I don't think it sends out any messages when pressed--so I limited myself to bank A. That's fine for me, given that CSI allows you to create any number of zones.
Also it would be nice to support a vertical type of control eventually, but for now the fader is just another horizontal button.
|
I'm confused, is that meant to be an .mst file ?
If not, what is this file ?
If so, the syntax is incorrect, we sort of standardized on the Mackie C4, where rows are letters and columns are numbers.
We also have a (sort of) naming convention
Taking this into account, your .mst file would look something like this:
Code:
Widget LayerA_RotaryPushA1
Press 9a 00 7f
WidgetEnd
Widget LayerA_RotaryPushA2
Press 9a 01 7f
WidgetEnd
...
Widget LayerA_RotaryA1
Fader7Bit ba 01 7f
FB_Fader7Bit ba 01 7e 0.5
WidgetEnd
Widget LayerA_RotaryA2
Fader7Bit ba 02 7f
FB_Fader7Bit ba 02 7f 0.5
WidgetEnd
...
Widget LayerA_ButtonA1
Press 9a 08 7f
FB_TwoState 9a 08 7f 8a 08 00 0.5
WidgetEnd
Widget LayerA_ButtonA2
Press 9a 09 7f
FB_TwoState 9a 09 7f 8a 09 00 0.5
WidgetEnd
...
Widget LayerA_ButtonB7
Press 9a 16 7f
FB_TwoState 9a 16 7f 8a 16 00 0.5
WidgetEnd
Widget LayerA_ButtonB8
Press 9a 17 7f
FB_TwoState 9a 17 7f 8a 17 00 0.5
WidgetEnd
Widget LayerA_Fader1
Fader7Bit ba 09 7f
WidgetEnd
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 04:25 PM
|
#5260
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
Hmmm...
As far as the .ini file order just open the config panel, that will tell you
|
Good call. I always use the text files Just checked and yes, that's correct.
I also just tried Protokol (which is also from Hexler, like TouchOSC) with the same result. It's almost like it's not using my ip/port and sending them somewhere else.
Quote:
Originally Posted by Geoff Waddington
The next thing I would do is get Touch OSC since we have already have it working on OS X, Windows 10, iOS and Android, even if just to help troubleshoot the Lemur/CSI issues...
|
OK I'll try that next (probably tonight). Have to give myself a quick lesson in TouchOSC.
|
|
|
11-07-2019, 05:37 PM
|
#5261
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MalcolmG
Good call. I always use the text files Just checked and yes, that's correct.
I also just tried Protokol (which is also from Hexler, like TouchOSC) with the same result. It's almost like it's not using my ip/port and sending them somewhere else.
|
just in case, have you made sure the other apps are not stealing or hanging on to the ports ?
In other words, maybe start fresh, then just run Reaper and the app...
Quote:
Originally Posted by MalcolmG
OK I'll try that next (probably tonight). Have to give myself a quick lesson in TouchOSC.
|
There are some Touch OSC phone and pad .ost and .zon files in the build that you can use as starters.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-07-2019, 06:07 PM
|
#5262
|
Human being with feelings
Join Date: Jun 2015
Location: Sydney, Australia
Posts: 180
|
Quote:
Originally Posted by Geoff Waddington
just in case, have you made sure the other apps are not stealing or hanging on to the ports ?
In other words, maybe start fresh, then just run Reaper and the app...
|
Yep, done that. However, the fact that the feedback gets through to Lemur (on the same port) from my Reaktor ensemble suggests the ports are ok. And that it doesn't get through from CSI to a different port when my ensemble is the receiver makes me think the issue is in CSI/my config.
Quote:
Originally Posted by Geoff Waddington
There are some Touch OSC phone and pad .ost and .zon files in the build that you can use as starters.
|
Will do, ta.
|
|
|
11-07-2019, 10:11 PM
|
#5263
|
Human being with feelings
Join Date: Mar 2007
Location: Denver, CO
Posts: 633
|
Quote:
Originally Posted by Geoff Waddington
I'm confused, is that meant to be an .mst file ?
If not, what is this file ?
[/code]
|
An mst file from the stock csi install modified to have some primitive layout syntax (which csi would ignore, but the screen display could use.) The thought is that a user could put data into their mst file to match the physical positions of their controls, and the scribble strip toolbar would use that to place the controls onscreen.
It wouldn't have to integrate into the mst file, it's just an idea.... a proof of concept to see if I could parse such a file to extract layout data and place controls in the gui... I'm not a programming whiz, so that's encouraging
I'm still wondering if the list of control destinations in the currently active zone(s) is stored somewhere, or how else I might access it....
Last edited by woodslanding; 11-07-2019 at 10:26 PM.
|
|
|
11-07-2019, 11:05 PM
|
#5264
|
Human being with feelings
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,785
|
Why not do a description instead of an example to be digested by some software that does not yet exist ?
-Michael
|
|
|
11-08-2019, 04:00 AM
|
#5265
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by woodslanding
An mst file from the stock csi install modified to have some primitive layout syntax (which csi would ignore, but the screen display could use.) The thought is that a user could put data into their mst file to match the physical positions of their controls, and the scribble strip toolbar would use that to place the controls onscreen.
It wouldn't have to integrate into the mst file, it's just an idea.... a proof of concept to see if I could parse such a file to extract layout data and place controls in the gui... I'm not a programming whiz, so that's encouraging
I'm still wondering if the list of control destinations in the currently active zone(s) is stored somewhere, or how else I might access it....
|
Ahh, Ok, it's usually not a good idea to alter file formats, but there is an easy solution, using the CSI naming convention.
Code:
Widget LayerA_RotaryPushA1
Press 9a 00 7f
WidgetEnd
Widget LayerA_RotaryPushA2
Press 9a 01 7f
WidgetEnd
...
Widget LayerA_RotaryA1
Fader7Bit ba 01 7f
FB_Fader7Bit ba 01 7e 0.5
WidgetEnd
Widget LayerA_RotaryA2
Fader7Bit ba 02 7f
FB_Fader7Bit ba 02 7f 0.5
WidgetEnd
...
Widget LayerA_ButtonB1
Press 9a 08 7f
FB_TwoState 9a 08 7f 8a 08 00 0.5
WidgetEnd
Widget LayerA_ButtonB2
Press 9a 09 7f
FB_TwoState 9a 09 7f 8a 09 00 0.5
WidgetEnd
...
Widget LayerA_ButtonC7
Press 9a 16 7f
FB_TwoState 9a 16 7f 8a 16 00 0.5
WidgetEnd
Widget LayerA_ButtonC8
Press 9a 17 7f
FB_TwoState 9a 17 7f 8a 17 00 0.5
WidgetEnd
Widget LayerA_Fader1
Fader7Bit ba 09 7f
WidgetEnd
Where the letter A,B,C means row and the number 1-8, means column.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
Last edited by Geoff Waddington; 11-08-2019 at 04:29 AM.
|
|
|
11-08-2019, 11:07 AM
|
#5266
|
Human being with feelings
Join Date: Mar 2007
Location: Denver, CO
Posts: 633
|
Cool, I'll do it that way. It also occurred to me I could comment out those lines, but I like your way better.
Boasorte: the software does exist, I used it to generate those buttons. I could post it, but it's still super sketchy.
But unless I can name the buttons appropriately it's not going to matter. Still wondering how I might do that.
|
|
|
11-08-2019, 12:21 PM
|
#5267
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
Your .mst should include something like this:
Code:
Widget VUMeter1
FB_MCUVUMeter 0
WidgetEnd
Widget VUMeter2
FB_MCUVUMeter 1
WidgetEnd
...
and in the Channel section of your .zon:
Code:
...
VUMeter| TrackOutputMeter
...
|
Still no go on the meters i'm afraid. I get the row of dots (i've discovered that these are present below the meter when it works- tried the Reaper stock MCU plugin and the meters work fine)
Has FB_MCUVUMeter perhaps been modified in some way to work better with surfaces such as the Icon ProX and the X-Touch, that have LED meters next to the fader, and broken the original somehow?
|
|
|
11-08-2019, 03:53 PM
|
#5268
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
Still no go on the meters i'm afraid. I get the row of dots (i've discovered that these are present below the meter when it works- tried the Reaper stock MCU plugin and the meters work fine)
Has FB_MCUVUMeter perhaps been modified in some way to work better with surfaces such as the Icon ProX and the X-Touch, that have LED meters next to the fader, and broken the original somehow?
|
No, those are all separate classes.
Hmmm... I thought I ripped off that Reaper stock MCU code properly -- obviously my copying skills are less than stellar -- I'll try again
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-08-2019, 05:07 PM
|
#5269
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
No, those are all separate classes.
Hmmm... I thought I ripped off that Reaper stock MCU code properly -- obviously my copying skills are less than stellar -- I'll try again
|
Thanks Geoff The MCU meters are pretty useless as far as actually discerning signal levels, but having a signal present indication is still handy
|
|
|
11-09-2019, 05:22 PM
|
#5270
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
New build is up.
Hopefully fixes MCU metering, anyone with MCU's please check, thanks.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-09-2019, 05:24 PM
|
#5271
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Got a Novation Launchpad mini mk3 today, AND the website now has the Programmers Reference Manual for it !!
Looks like we only get 128 colours instead of thousands like on the pro, but still looks like a fun package to play with...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-09-2019, 06:54 PM
|
#5272
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
New build is up.
Hopefully fixes MCU metering, anyone with MCU's please check, thanks.
|
No luck here i'm afraid. Still just the row of dots. I can see the metering info being sent on the MIDI interface, just no action on the LED or display.
|
|
|
11-09-2019, 07:10 PM
|
#5273
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
I grabbed a bit of the output:
Code:
OUT -> XT#2 d0 55 00
OUT -> XT#2 d0 54 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 54 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 51 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 51 00
OUT -> XT#2 d0 50 00
|
|
|
11-09-2019, 07:21 PM
|
#5274
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
I grabbed a bit of the output:
Code:
OUT -> XT#2 d0 55 00
OUT -> XT#2 d0 54 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 54 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 53 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 51 00
OUT -> XT#2 d0 52 00
OUT -> XT#2 d0 51 00
OUT -> XT#2 d0 50 00
|
Oops, forgot to mention there are now 2 different types:
FB_MCUVUMeter
FB_MCUXTVUMeter
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-09-2019, 07:51 PM
|
#5275
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
Oops, forgot to mention there are now 2 different types:
FB_MCUVUMeter
FB_MCUXTVUMeter
|
Making progress
Still nothing on DisplayLower apart from dots, but the signal LEDs are working fine. The dots don't disappear when Reaper is stopped, so the pan info doesn't return automatically.
|
|
|
11-09-2019, 08:08 PM
|
#5276
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
Making progress
Still nothing on DisplayLower apart from dots, but the signal LEDs are working fine. The dots don't disappear when Reaper is stopped, so the pan info doesn't return automatically.
|
Rats, not the progress I was looking for
I dug up a very old Magic Logic Control manual and found out you could turn on just the signal LEDS.
I was hoping the LCD display would continue to function normally -- alas seems like meter mode means both signal LEDS and display.
So what should happen ?
Should the lower LCDs become meters if you have FB_MCUVUMeter defined ?
Wish we could have our cake and eat it too, especially since the signal LEDs are so much better at the job than stealing the lower displays, which suck at it...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-09-2019, 08:37 PM
|
#5277
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
Rats, not the progress I was looking for
I dug up a very old Magic Logic Control manual and found out you could turn on just the signal LEDS.
I was hoping the LCD display would continue to function normally -- alas seems like meter mode means both signal LEDS and display.
So what should happen ?
Should the lower LCDs become meters if you have FB_MCUVUMeter defined ?
Wish we could have our cake and eat it too, especially since the signal LEDs are so much better at the job than stealing the lower displays, which suck at it...
|
Ah, I see. Yes, it is a shame the meters still take over the lower display. I did a quick check on the stock Reaper MCU plugin and they take over there too. I'd just assumed (wrongly) that they'd only kick in when the transport was running.
I guess if they're going to take over the lower display it's probably best to have them working, then folks can decide if they'd rather have the meter or the pan info.
The pan info does come back if you turn a control when the transport is stopped. Maybe if I put the VUMeter in it's own Zone I could flip back and forth? I there a way the Pan Zone can auto GoZone on transport stop? Just thinking out loud
|
|
|
11-10-2019, 05:36 AM
|
#5278
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
Ah, I see. Yes, it is a shame the meters still take over the lower display. I did a quick check on the stock Reaper MCU plugin and they take over there too. I'd just assumed (wrongly) that they'd only kick in when the transport was running.
I guess if they're going to take over the lower display it's probably best to have them working, then folks can decide if they'd rather have the meter or the pan info.
The pan info does come back if you turn a control when the transport is stopped. Maybe if I put the VUMeter in it's own Zone I could flip back and forth? I there a way the Pan Zone can auto GoZone on transport stop? Just thinking out loud
|
Nah, it's WAY worse internally than that
Turns out, the CSI code WAS right, but there was a missing step elsewhere -- a SysEx message for each Channel to set the surface Channel to meter mode.
But wait, there's more -- that means it's a Surface state -- if you change pages, guess what ? Yup it's still in meter mode.
It stays in meter mode until you send it SysEx to go out of meter mode, or you power in off -- Uggghhh.
So, think the best we can do without a gazillion special case duct tape workarounds -- if playing do this, if stopped do that etc. -- which are Ux KILLERS by the way -- is to implement your solution -- ya gotta really want meters -- for me the lower display is WAY more important, but CSI is all about choice
Yup, methinks this goes on the back burner for now, much more low hanging fruit to gather first.
So, in next build adding MCU VU will also show on lower display, and you are committing for ALL Pages -- about the best we can do for now...
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
11-10-2019, 07:24 AM
|
#5279
|
Human being with feelings
Join Date: Sep 2017
Location: London, England.
Posts: 4,887
|
Quote:
Originally Posted by Geoff Waddington
Turns out, the CSI code WAS right, but there was a missing step elsewhere -- a SysEx message for each Channel to set the surface Channel to meter mode.
|
Was this what was preventing the DisplayLower bargraph showing?
Quote:
So, in next build adding MCU VU will also show on lower display, and you are committing for ALL Pages
|
Fair enough, then peeps can pick
Incidentally, I had a quick look at how Logic deals with this (the MCU has a 'Logic' mode) It's actually quite interesting.
The meter is a small, vertical bargraph on the RHS of the display that spans both lower and upper display rows. It bounces 'through' the end of the track name (the letters reappear when the meter is lower than the top row) Because it's on the RHS, there is still room to the left of it for the Pan value. When you adjust the Pan, the track name changes to 'Pan' (changing back a couple of seconds after you finish adjusting -this happens for all the channel functions, volume, mute etc)
What's funny is that the Logic Mode metering works perfectly in CSI but unfortunately all the other CSI display functions are broken I always wondered what the difference between those two MCU start up modes was- guess I know now
EDIT: Just tried Logic whilst started up in regular MCU mode, it works just the same. So that's not the difference in the startup modes
|
|
|
11-10-2019, 07:37 AM
|
#5280
|
Human being with feelings
Join Date: Mar 2009
Location: Dartmouth, Nova Scotia
Posts: 11,252
|
Quote:
Originally Posted by MixMonkey
Was this what was preventing the DisplayLower bargraph showing?
|
That's what was preventing ANY metering from showing
I discovered you could turn on only the signal LED so I tried that first, as you know.
Now CSI will turn on both the LED and the display.
__________________
To install you need the CSI Software and Support Files
For installation instructions and documentation see the Wiki
Donate -- via PayPal to waddingtongeoff@gmail.com
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 10:38 PM.
|