Forum Replies Created
-
AuthorPosts
-
It is on the panel edit page, in the MIDI section, above the MIDI Input Thread priority.
Stoner
Open the MIDI Monitor window and see if your synth is sending the MIDI changes to Ctrlr as the presets are loaded. I do not have one of those synths but doing that should show you what is happening. If there is no MIDI sent to Ctrlr then there is no way for it to update. In that case you may want to try the other setting and see if it send any MIDI messages.
Stoner
I realize this is a bit of an old post but I to needed to convert a sctring to MemoryBlock to use File:replaceWithData. I tried above and ended up writing my own, which does not use a table, but keeps it as string until conversion. Here it is and we start with some string s:
hex = string.format(“%02x”, string.byte(s))
for i = 2, #s do
hex = string.format( “%s %02x”, hex, string.byte(s,i) )
end
bytes = MemoryBlock()
bytes:loadFromHexString( hex )It is quite simple and short and most of it can be displayed using console(). It also could be converted in to a function:
convertStringToData = function( s )
hex = string.format(“%02x”, string.byte(s))
for i = 2, #s do
hex = string.format( “%s %02x”, hex, string.byte(s,i) )
end
data = MemoryBlock()
data:loadFromHexString( hex )
return( data )
endThis is just an FYI if anyone else is interested.
Stoner
Thanks Atom, that is a bit disappointing. As the comboboxes on the panel editor for the changeable values panelMidiInputDevice, panelMidiControllerDevice and panelMidiOutputDevice showed those devices when the combobox is opened and could be altered, I was hoping that those values could be grabbed and shown in a ListBox on one of my tabs.
Stoner
I see this is a couple years old, but I see there was no answer given to the original question. I too would like two list boxes, one for MIDI In device and one for MIDI Out device.
1) How do I get that information from the panel???? I can set the devices but I do not know how to access the information in the combo boxes.
2) Also, is there a way to ask Ctrlr to refresh this list without closing down the program?
@Atom, please answer both questions. Thanks.Stoner
Could it not also the the benefit of what I was asking then also. I.E. I have my Minitaur with a MIDI In and MIDI Out the I link appropriately to Ctrlr MIDI In and Out. I then have a KORG NanoKey or other USB MIDI Device. Could it be selected as Controller device and then have the midi from it pass through Controller and be sent out the MIDI Out channel of Controller but NOT the MIDI IN channel. This would eliminte the neeed to turn on Input->Output MIDI Thru, which would help with a Loopback issue.
Stoner
The device I am asking about is the Controller device listed in the MIDI menu on the application and VST menu bar. MIDI has three devices listed MIDI IN, CONMTROLLER and MIDI OUT.
I would think that MIDI IN should be the device connected to the MIDI OUT port of the external synth.
The MIDI OUT device should connect to the MIDI IN port of the external device. Now we should have communication in/out to/from the external synth.
I am asking about the Controller device which I would think would be something like a Midi Input Keyboard or Pad of some type. I would think that anything connected here would create MIDI messages that are just sent to teh MIDI In port of the external device. I would also think that these should not be shown in the MINI monitor under MIDI In but should only show as MIDI Out in the monitor. This way one could avoid the loopback issue.
Please let me know if this is correct? If not, how is it supposed to work? Thanks.
Stoner
I can confirm that if I remove the compare on the length above I will get a midi message and it’s type will return as 5, which is correct but midi:getSize will return 0 (zero) which should be 7 in my case and no midi data will be sent.
Stoner
No still a problem Atom. Here is what I am doing and I need to get from start to finish and actually send some data. You will need to create a valid File(“ValidSysEx.syx”) called lastFile.
data = MemoryBlock()
len = lastFile:getSize()
if lastFile:existsAsFile() and len > 2 then
if lastFile:loadFileAsData( data ) and len == data:getSize() then
if data:getByte(0) == 0xf0 and data:getByte( len-1 ) == 0xf7 then
midi = CtrlrMidiMessage( data )
panel:sendMidiMessageNow(midi)
utils.infoWindow(“Send SysEx File successful!”, “File sent: “..lastFile:getFullPathName())
else
utils.warnWindow(“Send SysEx File failed!”, “File was not SysEx file: “..lastFile:getFullPathName())
end
else
utils.warnWindow(“Send SysEx File failed!”, “File did not load correctly: “..lastFile:getFullPathName())
end
else
utils.warnWindow(“Send SysEx File failed!”, “File was too small: “..lastFile:getFullPathName())
endStoner
Okay, thanks, but still missed the Trying to use unregistered class error on MB:getSize() of a MemoryBlock.
Stoner
@Atom, I agree if there is only one value to send as in the All Notes Off message or as you said starting a sequencer…. but in the case of for instance a Sustain button, it would have two values and still be momentary. When it presses it turns on and when released it turns off. Also, the images shown reflect that this should be happening.
Although the images reflect a momentary switch, the values sent act like a normal button. On with on press then off with the next press. Should it be like that???
Stoner
I now am trying to do this also, and it appears even Atoms sample code is breaking.
buf = MemoryBlock( 4, true ) gives an No matching overload found error.
yet
buf = MemoryBlock()
l = buf:getSize() yields an error Trying to use unregistered class.
As I can not ever use getSize() on a MemoryBlock I have no idea whether file.loadFileAsData( buf ) is working. It returns a true but I am unable to use buf:getSize() to test the return size.
Help.
Stoner
@Atom Thanks for that one, how about the button problem mentioned above. Hopefully it will be as simple.
Stoner
@dasfaker, well normally when programming list boxes in any windows system using the Windows API or Java API there is a method that allows one to get and set the selected item in the list box. I do not see that in the ListBox or the FileListBox, so I must be missing something.
@Atom, should the spring mode slider send the final midi message to the device when it springs back???Stoner
Atom, would you kindly explain this Controller device and what is it’s purpose and what does it do? And did it used to work and then quit working as msepsis implies??? Thanks.
Stoner
I would agree here. Please advise what the purpose of this Controller device is. I would also expect it to be something like a Midi keyboard or a Pad system or something. I would further expect that the purpose of this device, is so that it does not display it’s input as Midi In, but send it directly to Midi Out.
This would eliminate the looping issue caused by having to use Midi through from Input Device to Output Device. One could have the Input be the Midi out from the synth to receive Sysex, etc and the Output from Ctrlr be sent to the Midi In on the synth and consist of all Midi generated by Ctrlr and whatever is received from the Controller device.
Is this not how it should work? Thanks.
Stoner
No one has answered or acknowledged this yet again. This is the third attempt to get some comment about these issues. There is a third/fourth issue I would like addressed also.
3) The FileListBox does not have the same capabilities as the ListBox. There is no ability to set Selected Font colour nor any ability to set Outline Colour or width or Scrollbar colours on the FileListBox like on the ListBox. Also, on both I do not see a get selected item capability.
I must be missing something somewhere??
Stoner
Well folks, this version has progressed quite a way. Because of an issue I came across and could not resolve the three panels have now become a single panel using tabs. This was necessary as I could not determine how to manipulate modulators on a different panel. When toggling the 7/14 bit MIDI Output the modulators on the main panel must be changed to recognise the correct MIDI from the Minitaur so that they match what is on the Minitaur.
Also, remember that with changes such as Presets or Factory Restore, you should also Receive Snapshot to get your knobs in synch.
I have made the Minitaur Editor and Miscellaneous tabs use the Rotary Vertical slider control and the Under the Hood tab uses just the Rotary slider. The Minitaur Editor tab uses the bubble to display values when moving the slider and the other two do not.
The miscellaneous tab has some things that function and some that do not. The toggles do not function correctly, in my opinion, and neither does the Pitch Bend spring back slider, which does not send the MIDI when it snaps back. I will attend to those and the Preset bank change code in hopefully the next instalment.
All feedback is appreciated and it would be nice to know which functionality you like best in how the sliders behave. As always, have fun and I am continuing work on this panel to complete it.
Thanks…. me
Attachments:
You must be logged in to view attached files.Stoner
I came up with a few issues (not layer related) but with images not showing up correctly. Very flaky. But found message from Atom about the config state saving on the Mac. On the PC it is located in Users\<Current User>\AppData\Roaming\Ctrlr and the file is Ctrlr.settings which should be deleted or renamed to .sav or .old. Them reload the panels and they work again. Not sure if that is your issue, but it was my issue.
Stoner
It does require nightly version 1228 or later and as soon as Atom puts up the latest OSx build I will have my son test it on his Mac.
Stoner
-
AuthorPosts