Forum Replies Created
-
AuthorPosts
-
@proton – do you have fork of the repository? They were not closed.
Yes – it is ok. If someone have a fork of repository it can be uploaded to github but without Steinberg stinky stuff.Overall – i wish that vst will fall – LV2 open format is the future if industry adopt it.
- This reply was modified 5 years, 10 months ago by daimondamps.
Response: Hi Damian,
Thanks for taking the time to write in. For privacy and security reasons, I’m afraid we’re not able to discuss the repository with anyone other than the repository owner.
Please let us know if you have any questions.
All best,….
Repository was very usefull to search all that hidden stuff like lua implementation of JUCE methods. I hope it will be back soon. I can upload my old fork of CTRLR repository without VST SDK stuff.
I’ve send them mail kindly asking to unblock this repository.- This reply was modified 5 years, 10 months ago by daimondamps.
So what are the chances to get repository back (without vst2 sdk) ?
@Possemo I dont think it’s because of the panels . It’s too small market.One more thing . I think if you want first byte you have to use getByte(1) not getByte(0)
Lua arrays(tables) start at 1 instead of 0.
What i’ve posted are the methods for midiMessage object.
So you can use them as getData()or getByte().
You can check interesting type of message with methods like midiMessage:isSomething()
It will return true or false.- This reply was modified 5 years, 10 months ago by daimondamps.
- This reply was modified 5 years, 10 months ago by daimondamps.
- This reply was modified 5 years, 10 months ago by daimondamps.
Github repository is down :/ Good I have a copy.
Why not to use ready class for message type recognition. `module(L)
[
class_(“MidiMessage”)
.def(constructor<>())
.def(constructor())
.def(constructor())
.def(constructor())
.def(constructor())
.def(constructor())
.def(constructor())
.def(constructor())
.def(“getRawData”, &MidiMessage::getRawData)
.def(“getRawDataSize”, &MidiMessage::getRawDataSize)
.def(“getTimeStamp”, &MidiMessage::getTimeStamp)
.def(“setTimeStamp”, &MidiMessage::setTimeStamp)
.def(“addToTimeStamp”, &MidiMessage::addToTimeStamp)
.def(“getChannel”, &MidiMessage::getChannel)
.def(“isForChannel”, &MidiMessage::isForChannel)
.def(“setChannel”, &MidiMessage::setChannel)
.def(“isSysEx”, &MidiMessage::isSysEx)
.def(“getSysExData”, &MidiMessage::getSysExData)
.def(“getSysExDataSize”, &MidiMessage::getSysExDataSize)
.def(“isNoteOn”, &MidiMessage::isNoteOn)
.def(“isNoteOff”, &MidiMessage::isNoteOff)
.def(“isNoteOnOrOff”, &MidiMessage::isNoteOnOrOff)
.def(“getNoteNumber”, &MidiMessage::getNoteNumber)
.def(“setNoteNumber”, &MidiMessage::setNoteNumber)
.def(“getVelocity”, &MidiMessage::getVelocity)
.def(“getFloatVelocity”, &MidiMessage::getFloatVelocity)
.def(“setVelocity”, &MidiMessage::setVelocity)
.def(“multiplyVelocity”, &MidiMessage::multiplyVelocity)
.def(“isSustainPedalOn”, &MidiMessage::isSustainPedalOn)
.def(“isSustainPedalOff”, &MidiMessage::isSustainPedalOff)
.def(“isSostenutoPedalOn”, &MidiMessage::isSostenutoPedalOn)
.def(“isSostenutoPedalOff”, &MidiMessage::isSostenutoPedalOff)
.def(“isSoftPedalOn”, &MidiMessage::isSoftPedalOn)
.def(“isSoftPedalOff”, &MidiMessage::isSoftPedalOff)
.def(“isProgramChange”, &MidiMessage::isProgramChange)
.def(“getProgramChangeNumber”, &MidiMessage::getProgramChangeNumber)
.def(“isPitchWheel”, &MidiMessage::isPitchWheel)
.def(“getPitchWheelValue”, &MidiMessage::getPitchWheelValue)
.def(“isAftertouch”, &MidiMessage::isAftertouch)
.def(“getAfterTouchValue”, &MidiMessage::getAfterTouchValue)
.def(“isChannelPressure”, &MidiMessage::isChannelPressure)
.def(“getChannelPressureValue”, &MidiMessage::getChannelPressureValue)
.def(“isController”, &MidiMessage::isController)
.def(“getControllerNumber”, &MidiMessage::getControllerNumber)
.def(“getControllerValue”, &MidiMessage::getControllerValue)
.def(“isControllerOfType”, &MidiMessage::isControllerOfType)
.def(“isAllNotesOff”, &MidiMessage::isAllNotesOff)
.def(“isAllSoundOff”, &MidiMessage::isAllSoundOff)
.def(“isMetaEvent”, &MidiMessage::isMetaEvent)
.def(“getMetaEventType”, &MidiMessage::getMetaEventType)
.def(“getMetaEventData”, &MidiMessage::getMetaEventData)
.def(“getMetaEventLength”, &MidiMessage::getMetaEventLength)
.def(“isTrackMetaEvent”, &MidiMessage::isTrackMetaEvent)
.def(“isEndOfTrackMetaEvent”, &MidiMessage::isEndOfTrackMetaEvent)
.def(“isTrackNameEvent”, &MidiMessage::isTrackNameEvent)
.def(“isTextMetaEvent”, &MidiMessage::isTextMetaEvent)
.def(“getTextFromTextMetaEvent”, &MidiMessage::getTextFromTextMetaEvent)
.def(“isTempoMetaEvent”, &MidiMessage::isTempoMetaEvent)
.def(“getTempoMetaEventTickLength”, &MidiMessage::getTempoMetaEventTickLength)
.def(“getTempoSecondsPerQuarterNote”, &MidiMessage::getTempoSecondsPerQuarterNote)
.def(“isTimeSignatureMetaEvent”, &MidiMessage::isTimeSignatureMetaEvent)
.def(“getTimeSignatureInfo”, &MidiMessage::getTimeSignatureInfo)
.def(“isKeySignatureMetaEvent”, &MidiMessage::isKeySignatureMetaEvent)
.def(“getKeySignatureNumberOfSharpsOrFlats”, &MidiMessage::getKeySignatureNumberOfSharpsOrFlats)
.def(“isMidiChannelMetaEvent”, &MidiMessage::isMidiChannelMetaEvent)
.def(“getMidiChannelMetaEventChannel”, &MidiMessage::getMidiChannelMetaEventChannel)
.def(“isActiveSense”, &MidiMessage::isActiveSense)
.def(“isMidiStart”, &MidiMessage::isMidiStart)
.def(“isMidiContinue”, &MidiMessage::isMidiContinue)
.def(“isMidiStop”, &MidiMessage::isMidiStop)
.def(“isMidiClock”, &MidiMessage::isMidiClock)
.def(“isSongPositionPointer”, &MidiMessage::isSongPositionPointer)
.def(“getSongPositionPointerMidiBeat”, &MidiMessage::getSongPositionPointerMidiBeat)
.def(“isQuarterFrame”, &MidiMessage::isQuarterFrame)
.def(“getQuarterFrameSequenceNumber”, &MidiMessage::getQuarterFrameSequenceNumber)
.def(“getQuarterFrameValue”, &MidiMessage::getQuarterFrameValue)
.def(“isFullFrame”, &MidiMessage::isFullFrame)
.def(“isMidiMachineControlMessage”, &MidiMessage::isMidiMachineControlMessage)
.def(“getMidiMachineControlCommand”, &MidiMessage::getMidiMachineControlCommand)
.def(“isMidiMachineControlGoto”, &MidiMessage::isMidiMachineControlGoto)
.enum_(“SmtpeTimecodeType”)
[
value(“fps24”, 0),
value(“fps25”, 1),
value(“fps30drop”, 2),
value(“fps30”, 3)
]
// CAUSES COMPILATION ERROR .def(“getFullFrameParameters”, (void (MidiMessage::*)(int &, int &, int &, int &, MidiMessage::SmpteTimecodeType &) const noexcept)&MidiMessage::getFullFrameParameters)
.enum_(“MidiMachineControlCommand”)
[
value(“mmc_stop”, 1),
value(“mmc_play”, 2),
value(“mmc_deferredplay”, 3),
value(“mmc_fastforward”, 4),
value(“mmc_rewind”, 5),
value(“mmc_recordStart”, 6),
value(“mmc_recordStop”, 7),
value(“mmc_pause”, 9)
]
.scope
[
def(“noteOn”, (MidiMessage (*)(int, int, float) noexcept)&MidiMessage::noteOn),
def(“noteOn”, (MidiMessage (*)(int, int, uint8) noexcept)&MidiMessage::noteOn),
def(“noteOff”, &MidiMessage::noteOff),
def(“programChange”, &MidiMessage::programChange),
def(“pitchWheel”, &MidiMessage::pitchWheel),
def(“aftertouchChange”, &MidiMessage::aftertouchChange),
def(“channelPressureChange”, &MidiMessage::channelPressureChange),
def(“controllerEvent”, &MidiMessage::controllerEvent),
def(“allNotesOff”, &MidiMessage::allNotesOff),
def(“allSoundOff”, &MidiMessage::allSoundOff),
def(“allControllersOff”, &MidiMessage::allControllersOff),
def(“endOfTrack”, &MidiMessage::endOfTrack),
def(“tempoMetaEvent”, &MidiMessage::tempoMetaEvent),
def(“timeSignatureMetaEvent”, &MidiMessage::timeSignatureMetaEvent),
def(“midiChannelMetaEvent”, &MidiMessage::midiChannelMetaEvent),
def(“midiStart”, &MidiMessage::midiStart),
def(“midiContinue”, &MidiMessage::midiContinue),
def(“midiStop”, &MidiMessage::midiStop),
def(“midiClock”, &MidiMessage::midiClock),
def(“songPositionPointer”, &MidiMessage::songPositionPointer),
def(“quarterFrame”, &MidiMessage::quarterFrame),
def(“fullFrame”, (MidiMessage (*)(int,int,int,int,MidiMessage::SmpteTimecodeType))&MidiMessage::fullFrame),
def(“midiMachineControlCommand”, &MidiMessage::midiMachineControlCommand),
def(“midiMachineControlGoto”, &MidiMessage::midiMachineControlGoto),
def(“masterVolume”, &MidiMessage::masterVolume),
def(“createSysExMessage”, &MidiMessage::createSysExMessage),
def(“readVariableLengthVal”, &MidiMessage::readVariableLengthVal),
def(“getMessageLengthFromFirstByte”, &MidiMessage::getMessageLengthFromFirstByte),
def(“getMidiNoteName”, &MidiMessage::getMidiNoteName),
def(“getMidiNoteInHertz”, &MidiMessage::getMidiNoteInHertz),
def(“getGMInstrumentName”, &MidiMessage::getGMInstrumentName),
def(“getGMInstrumentBankName”, &MidiMessage::getGMInstrumentBankName),
def(“getRhythmInstrumentName”, &MidiMessage::getRhythmInstrumentName),
def(“getControllerName”, &MidiMessage::getControllerName)
]
];
}`Copy data to another variable. Becouse if another midi message arraive you have midimessage overwriten. Do it first like this on the beginning
local dataRecived=midiMessage:getData ()Then operate on dataRecived as your midiData
- This reply was modified 5 years, 10 months ago by daimondamps.
if your modulator name is “modname” then
local channel = panel:getModulatorByName("modname"):getMidiMessage():getPropertyInt("midiMessageChannel")
- This reply was modified 5 years, 11 months ago by daimondamps.
- This reply was modified 5 years, 11 months ago by daimondamps.
- This reply was modified 5 years, 11 months ago by daimondamps.
Hi , how to properly initialize ProgressBar in Alert window?
I tried :
modalWindow:addProgressBarComponent( 0.5)
modalWindow:addProgressBarComponent(somevariable)
modalWindow:addProgressBarComponent(some_function())ERROR: No matching overload found, candidates:
void addProgressBarComponent(AlertWindow&,custom [double]&)That’s a nice one. I did’t knew that.
#Me too 😛
I’ve just tried.@Quimquim
Workaround : Use sysex type and insert FA in first(one byte field) field- This reply was modified 5 years, 11 months ago by daimondamps.
- This reply was modified 5 years, 11 months ago by daimondamps.
- This reply was modified 5 years, 11 months ago by daimondamps.
Attachments:
You must be logged in to view attached files.Maybe Intel processor backdoor fix has something to do with this?
https://appleinsider.com/articles/18/01/03/apple-has-already-partially-implemented-fix-in-macos-for-kpti-intel-cpu-security-flawYou cannot debug function which affect a panel modulators without MIDI. Thay are affected. They sometimes some feedback loop’s problem.
There is true twice because it has input like (value, force, mute).
I have similiar problem once. Try to change midi controller device to none and then once again to your device.- This reply was modified 6 years ago by daimondamps.
- This reply was modified 6 years ago by daimondamps.
It’s hard to tell because we don’t have whole panel. Something is triggering your script(and this is something what this script is changing)
Maybe try to mute modulator
param:setModulatorValue((_G[ “tbl_keyassgn”..keyselct ])[ i ],false,false,false)
change to
param:setValue((_G[ “tbl_keyassgn”..keyselct ])[ i ],true, true)- This reply was modified 6 years ago by daimondamps.
- This reply was modified 6 years ago by daimondamps.
- This reply was modified 6 years ago by daimondamps.
Do you using some labelChanged callbak? So when you change something , callback is trigerred which is changing uiLabel wchich again triggers the callback.
- This reply was modified 6 years ago by daimondamps.
April 17, 2018 at 7:07 pm in reply to: PC freeze .Issue with too many incoming messages when usin midi in callback. #83527And still there is double message sending issue. It is strange because some users have it and some are not.
April 14, 2018 at 1:04 am in reply to: PC freeze .Issue with too many incoming messages when usin midi in callback. #83492Thank you but I dont think “Matched input messages cached” has something to do with Midi recived callback.
I have created the timer dependent of the variable MIDI_REQUESTED and MIDI_RECIVED.
Now when the panel recive message and process it it cand send another sysex request + some programmed delay.This fixed some issues with cheep and buffer’less interfaces.
It’s slowed down speed of communication but it is more stable now.
Just make sure you process your messages before you send another sysex dump request.
They can overload your buffer’s if they are too fast and too many.Cheers.
- This reply was modified 6 years ago by daimondamps.
-
AuthorPosts