-
Posts
659 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Blogs
Gallery
Posts posted by ssp
-
-
Just now, TK. said:
Hi,
finally found time to go through this thread... ;-)
First of all: the SysEx string contains an "illegal" value: 0xE0
Values >= 80 should not be sent, because they will be interpreted as a new MIDI status.Second: you could simply toggle between the two values 0x10 and 0x01, and insert it into the SysEx string via ^val:
EVENT_BUTTON id=1 range=0x10:0x01 button_mode=toggle type=SysEx stream="0xf0 0x00 0x01 0x16 0x10 0x18 ^val 0xf7"
Best Regards, Thorsten.
The event 0xE0 was a misstype by me sorry about that, this was basically an example sysex string not the actual string
As much as i thought i had learned i see there is still a lot more to learn!! man next week is going to be crazy!
-
Thanks for calling ini TK
Im learning a lot in a short time so yep I am making the odd mistake here and there , but i have everything written down as well. Lots of things to try next week when its all assembled and put together.
The guys have been just nudging me in the right direction rather than all out doing it for me which is great as it is making me think.
here is a screen shot of bome translator capturing the commands from the daw software.
lots to try out, but you can see the captured events on the left in the translator on the right
-
So using bome's midi translator it shows this string
# when you move to another channel from the one you are on
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4E 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4F 7F
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4A 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4D 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4B 00# This is the string to select the channel
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 18 7F ( sysex header= F0 00 01 06 16 )
# This is the string when you deselect
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 18 00
# Now we select a different channel:
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 03 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4E 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4F 7F
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4A 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4D 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4B 00# This is the select string
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 19 7F
# This is the string when you deselect this channel
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 19 00
# And once again when you move to the previous channel
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4E 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4F 7F
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4A 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4D 00
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 4B 00# The first channel that was selected
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 18 7F
# And deselect as before
MIDI IN [Bome MIDI Translator 1 Virtual In]: 90 18 00
-
I will put an example of the correct full strings here later to show the events. That will make it easier to understand.
When you select a different button the daw sends a some sysex out before the full string.
-
one other thing, on some functions i need to have 4 different sysex coming from one button press, one after the other, could i just expand the sysex string, or would i make a table that it would step through?
-
let me know if this is correct
event_button id=1 fwd_id=sender:1 range=0:127 button_mode=toggle
event_sender hw_id=1 id=1000 fwd_id=led:1 type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x10 0xf7" if_equal=0
event_sender hw_id=1 id=1001 fwd_id=led:1 type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x01 0xf7" if_equal=127
ok so looking at this
event_button id=1 #This is the event (button press) id=1 this is the first button on shift register 1=D0
fwd_id=sender:1 #this forwards the event_button idrange=0:127 #midi value range
button_mode=toggle #button type
event_sender hw_id=1 #this is the event id that was forwarded to the senderid=1001 #this gives the event an id (could this be a number say 01 then the second 02?)
fwd_id=led:1 this turns on the dout led 1 on shift register pin 1
type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x01 0xf7" # this is the transmitted sysex stream
if_equal=127 # this is the on off state of the toggle button either off=0 or on=127
-
20 minutes ago, Zam said:
Hello
You can do it this way:
event_button id=1 fwd_id=sender:1 range=0:127 button_mode=toggle event_sender hw_id=1 id=1000 fwd_id=led:1 type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x10 0xf7" if_equal=0 event_sender hw_id=1 id=1001 fwd_id=led:1 type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x01 0xf7" if_equal=127
Best
Zam
Hey many thanks Zam, I hadn't got the the event_sender section yet, I will go through it now and get some lines down to try this week.
I am still hoping thorsten come in to let me know about the sysex from my daw to the oled, The code is amazing and I understand a lot of it, for me its just a couple of functions that have been asked about before but have never been answered or havent been followed up on.
The code above is really clear in its function for me and i can apply this method for other things as i go and make changes.
By the way I really liked thy automation system you made for your console, really good.
-
Planning on spending the day reading through the rest of code info i printed out to see if there is anything in there to explain a dual sysex stream feature on a button event.
-
It's getting late now but... Can I apply two different sysex strings to a toggle switch?
For example
Select track 1= F0 00 01 06 16 E0 18 10 F7
Deselect track 1= F0 00 01 06 16 E0 18 01 F7
The switch is in the last 10/01 at the end of the string.
Having a look through the info in the morning. If I find what I need I will share how to apply it
(EDIT) just found this in "First steps"
Surprise me!
Our last experiment with a single button ends with a small surprise: change the EVENT_BUTTON statement to: EVENT_BUTTON id=1 fwd_id=LED:1 button_mode=OnOnly \ type=SysEx stream="0xf0 0x00 0x00 0x7e 0x32 0x00 0x0d 0x40 0x57 0x6F 0x77 0x21 0xf7" \ lcd_pos=1:1:1 label="Button #%3i: %3d" ...and have a look at the MIOS Terminal while pressing the button... ;-) Ok, this demonstration should also show you, that it's possible to send SysEx streams, and that multiple lines in the configuration file can be concatenated to a single command with the backslash (\) character. This needs to be expanded for a dual function toggle switch so it needs an on & off string.
I would use it in this aspec to send my string: EVENT_BUTTON id=1 fwd_id=LED:1 button_mode=Toggle \ type=SysEx stream="0xf0 0x00 0x01 0x16 0xE0 0x18 0x10 0xf7"
I need to apply a "Toggle On/Off" state to the string so it has an on and off event stream.
-
I have managed to set up bome's midi translator tonight and try a few things out as I built my mb_mf but the 10mhz crystal wont be here until next week.
The correct sysex string for the oled coming from my daw software is this
F0 00 01 06 16 12 00 00 00 73 74 72 69 6E 67 73 F7
this hex is ascii for strings: 73 74 72 69 6E 67 73
the header is different to what the pdf told me, however I will try this out next week as a command from mios studio.
I did see there was another thread asking TK if it was possible to map these sysex commands to individual oled displays but there was no follow up on this and I did post on that particular thread the other day to see if it had been resolved. As i know the strings involved in generating the "track name" on the display it will allow me to use this on each new track. i am hoping that when TK pops in again this weekend he may take 5 mins just to answer on this.
I have most of the .ngc code down now and have been busy writing things ready to test next week. Most of the casework has been designed and i will cut it on the cnc machine and laser cutting system in work next week as well.
only a few holdups now!!
Thorsten you crazy german genuis dude. what do you say??? sysex strings of track names to the displays...?? thanks
-
5 hours ago, totoRaymond said:
Hi!
I made the same mistake recently.
If it helps, i found some on aliexpress which seems compatible with MidiBox_NG:
https://fr.aliexpress.com/item/32233300972.html?spm=a2g0w.12010612.8148356.5.58bf27a8d5IkVL
I ordered a pair as samples 2 days ago. I don't expect them soon but i'll keep you updated when they arrive.
Thomas
thanks thomas, i ordered the correct ones in the beginning, i got sent totally different things. I found some on ebay after got them coming tomorrow.
-
Hey latigid, i did order the alientek ones but this is what arrived, not a happy bunny.
Now i have to re-find the correct ones again.
-
-
On 03/12/2019 at 4:47 AM, Flexinoodle said:
Its pretty dead on this forum nowadays uh :(
Hey flex, nice to see you back around again, long time!!! yep I am finding it kinda wierd, its far too quiet and theres no-one in chat anymore. I know we have all aged slightly and have families and work etc.. but damn.. my local morgue has more movement than this place these days lol!!!
-
Just got my 2x40 link pcbs that I had made. These allow me to connect the two lcds I got to the one board and link via ribbon. E2 has a jumper to allow the second enable line to link through or be separated.
-
Hi Thorsten, was there a resolution to this? as I am looking to display the channel/track info on a glcd over each fader. i saw john finsters mackie clone and he was aable to have track info on his displays, I have messaged him hoping he will pop in at some time and i can discuss it with him, but i think he just used the mb_lc setup.
On 16/12/2012 at 9:22 PM, Duggle said:Some questions:
- How about LCD display of dynamic text as in patch name(s) contained within a received Sysex message?
I've no solution for this yet, but to ensure that this won't be forgotten I just have added this topic to the MBLC page.
It will probably work in conjunction with a EVENT_RECEIVER which listens to multiple bytes instead only one - but this would blow up the memory storage format, because each EVENT would need to store the byte range.
Once a solution has been found, the label could be inserted into outgoing SysEx, but also displayed on LCD with a special formatting directive (such as %t) -
How do i set the software up so that this sysex string is sent to the glcd:
so the software sends this string F0 00 01 06 02 01 01 02 01 115 116 114 105 110 103 115 F7 which is to the first glcd scribble display and the ascii text is "strings" and is centred
sysex header= F0 00 01 06 02
scribble number 1= 01
line number 1= 01
alignment flag centred = 00
ascii text 115 116 114 105 110 103 115 = strings
sysex close = F7
would i use fwd_to_lcd=<1|0>
I am making a test interface with one motor fader, one glcd and a couple of buttons encoders and led's so that i can get to grips with the code and using mios studio i want to test this by sending the string to the test box.
can anyone help me on this please?
-
Oh...( zz) . Convert binary to hex.. Lol sorry head fudge.
So, 0000/0110, the first 1 being
Invert 0=normal, 1=inverted
0000=center not inverted hex 00
0001=left not inverted hex 01
0010=right not inverted hex 02
Ok if I want a single glcd to show this how do I map this sysex string to the glcd when the software outputs it?
-
Here is a string, I am not sure on the alignment flags (zz) can anyone explain the alignment flags to me? I am looking it up online also.
F0 00 01 06 02
xx = scribble strip id 0-7
yy = line number 0-3
zz = alignment flag and normal/inverted
• flag bits xxxxiaa (0000000 = centered normal)
• aa = alignment (center: 0, left: 1, right: 2)
• i = inverted
• x = not used
tx = text in ASCII format
This is to the first glcd
F0 00 01 06 02 01 01 (zz) 01 115 116 114 105 110 103 115 F7
This is the first GLCD line 1 (i am learning about the flag bits) not inverted and the asci text "strings" closed with F7
-
Its weird looking a this all these years later and understanding what i didnt back then.
Also the issue with the shuttle was solved i missed the full string..
Forward: F0 7F device_ID 06 47 03 sh sm sl F7 -> 21 13 n
Reverse: F0 7F device_ID 06 47 03 sh sm sl F7 -> 21 23 n
Also the movlw function, which means 'Move Literal Value Into W', or put the value that follows directly into the W register.
I found a pdf a while ago that explainied pic programming here is the link incase anyone wants it: http://groups.csail.mit.edu/lbr/stack/pic/pic-prog-assembly.pdf
I just got a couple of core8 from modular addict as i like the old pic mb64e and its also a good build with my son who is getting into music and midi and electronics, he is 13 and enjoying it.
-
How would you use fwd_to_lcd=<1|0> to forward the incoming sysex to a glcd? If using the above sysex sent out from the software. As the label of the track is defined in the software daw, would you no longer use a "label" for this.?
-
SysEx
SysEx header <SysExHdr> F0 00 01 06 02
Manufacturer ID 00 01 06
16 fader Device ID 16
8 fader Device ID 02Faders
Use MIDI pitch bend message to transmit fader moves and receive fader positions. FaderPort 8. Channels 0-7 are used to address faders 1-8 respectively. FaderPort 16. Channels 0-15 are used to address faders 1-16 respectively.Received Ex, ll, hh
Transmitted Ex, ll, hh
Fader index x
Low 7 bits ll
High 7 bits hhEncoders
Use CC messages to transmit increment and decrement values. Transmitted endless rotary encoder delta values:
Pan / Param Encoder: B0, 10, xx
Session Navigator Encoder: B0, 3C, xx
xx delta value bit (Bit 6 = direction, Bits 0-5 = number of steps)EDIT: Is it possible to have the glcd respond to the sysex coming in? i cant find where i assign a sysex recieve to a specific glcd. I understand the sysex i need it to recieve but how i assign say glcd 1 to recive the sysex:
ignore the brackets etc they are just reference for the numbers
F0 00 01 06 02 (xx01) (yy01) (zz ??) (aa 00) does the ngc allow for asci text? is this in the documentation? the track name is "strings" in ascii its 115 116 114 105 110 103 115. How do i have the glcd recieve this for displaying the track name?
xx = scribble strip id 0-7
yy = line number 0-3
zz = alignment flag and normal/inverted
• flag bits xxxxiaa (0000000 = centered normal)
• aa = alignment (center: 0, left: 1, right: 2)
• i = inverted
• x = not used
tx = text in ASCII format
I have printed everything out and i am going through it well, just a couple of things i cant find or know about. Its a jump from the old core8's to this, mind you i havent been so excited by code in a long time.
-
really enjoying this code
EVENT_BUTTON id=1 type=NoteOn key=36 lcd_pos=1:1:1 label="Button #%3i: %3d" the simplicity of defining a buttons name and the value etc. push the button and "Button" is displayed on the lcd along with its value of 36.
im now looking at the addition of a sysex command mapped to the button.
Also with regards to the small SSD1306 displays, the software i use uses sysex to talk to them,
here is the sysex from the midi implementation section of the manual
Value Bar Received:
B0, 3i, vv i Value bar number (0 thru 7) vv value (0 to 7F)
B0, 3i, mm i Value bar number offset by 8 (8 thru 15) mm Value bar mode (0: normal, 1: bipolar, 2: fill, 3: spread, 4: off)
B0, 4i, vv i Value bar number (0 thru 7) for strip 9-16 vv value (0 to 7F)
B0, 4i, mm i Value bar number (8 thru 15) for strip 9-16 mm Value bare mode (0: normal, 1: bipolar, 2: fill, 3: spread, 4: off)
Scribble Strips
Addressing: Scribble Strip ID and Scribble Strip Line via SysEx:
Received:
Set Mode:
<SysExHdr> 13, xx, mn F7
xx = scribble strip id 0-7
m = bits 6 to 4
• bit 4 = 0 - do not clear the strings/ redraw old strings in new mode
[<SysExHdr> 0x13, 0x01, 0x05 F7] - Changes display mode to Mode 5 and redraw old strings in new mode
• bit 4 = 1 - clear strings / new strings will be send and drawn in new mode [<SysExHdr> 0x13, 0x01,0x12 F7] - Changes display mode to Mode 2 and clears the old strings for Scribble Strip #1)
• bit 5 = unused • bit 6 = unused n = mode number (bits 3 to 0)
Send String:
Send the text messages to the scribble strips. Received: <SysExHdr> 12, xx, yy, zz, tx,tx,tx,... F7
xx = scribble strip id 0-7
yy = line number 0-3
zz = alignment flag and normal/inverted
• flag bits xxxxiaa (0000000 = centered normal)
• aa = alignment (center: 0, left: 1, right: 2)
• i = inverted
• x = not used
tx = text in ASCII format
Metering
Channel Pressure message (After Touch) for the peak and reduction meters.
Received:
Dn, vv
n meter address
• 0-7 peak meters 1-8
• 9-15 reduction meters 1-8
vv meter value (0...7F)
Peak meters decay automatically.
Reduction meters are set by the host only (no automatic decay).
Program Change message for the peak and reduction meters 9-16.
Cn, vv
n meter address
• 0-7 peak meters strip 9-16
• 9-15 reduction meters strip 9-16 vv meter value (0...7F)
Peak meters decay automatically. 100% decay in 1.8 seconds.
Reduction meters are set by the host only (no automatic decay).
Running Status The following message is should be sent every second: A0,00,0
-
beautiful work!! sit patiently in corner with hands up to hopefully get to buy one in the new year ;)
- 2
understanding the .ngc code
in MIDIbox NG
Posted
Finished building the first mb_mf NG and hooked up a fader, all worked first time. Calibration is great through mios studio. Would have been great if it had the ability to have a lcd attached. Just waiting for the other pcbs to arrive now so I can get on with the ngc code learnings and trial!!