Focusrite-Midi-Control icon indicating copy to clipboard operation
Focusrite-Midi-Control copied to clipboard

This is great! A couple of points...

Open beely opened this issue 6 years ago • 4 comments
trafficstars

Hey - thanks for this, it's like a dream come true and super-useful!

I'm experiencing two issues with it - firstly, I get persistent crashes after some arbitrary time - if I leave it open, after say ten minutes or so, it will randomly crash. I'll sort out a crash log shortly below together with system details etc.

If I leave it running, it will always eventually crash, sometimes about 5-10 mins, sometimes up to 30 mins or more.

Secondly, if possible, a feature request. Currently the app listens to incoming MIDI on all ports. So if I learn, say CC#12 on Chan 1 to a control, the app will respond to that message regardless of the MIDI port it arrives on. I'd like the mapping to apply only to the MIDI port it was learnt from.

The reason being is that I'm controlling the app from one MIDI controller, and there is another MIDI controller on a separate port, that occasionally sends spurious MIDI values due to it's encoders being "twitchy", which resets levels randomly. It's not so easy to change the mappings here as a workaround as these controllers have all kinds of things mapped to them, although I can probably sort something out.

But that feature would be useful to me, hence the FR...

beely avatar Nov 11 '19 21:11 beely

System: MBP 2011, 16GB, High Sierra 10.13.6

Crash log (ask if you need more details):

Process: Focusrite Midi Control [31176] Path: /Applications/Utilities/Focusrite Midi Control.app/Contents/MacOS/Focusrite Midi Control Identifier: raduvarga.Focusrite-Midi-Control Version: 1.5 (5) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: Focusrite Midi Control [31176] User ID: 501

Date/Time: 2019-11-11 20:56:47.212 +0000 OS Version: Mac OS X 10.13.6 (17G65) Report Version: 12 Anonymous UUID: FFF54B39-9A25-E46B-AEEA-8B777385A378

Sleep/Wake UUID: A7D69194-ACA3-4E9F-982A-F55423A8F0FE

Time Awake Since Boot: 380000 seconds Time Since Wake: 35000 seconds

System Integrity Protection: disabled

Crashed Thread: 5 Dispatch queue: com.apple.root.default-qos

Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000040e0715fbec8 Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0]

Thread 5 (crashed thread)

Thread 5 Crashed:: Dispatch queue: com.apple.root.default-qos 0 libobjc.A.dylib 0x00007fff62ceed3b objc_retain + 27 1 libswiftCore.dylib 0x000000010ad7c021 swift::metadataimpl::ValueWitnessesswift::metadataimpl::ObjCRetainableBox::initializeWithCopy(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetMetadataswift::InProcess const*) + 17 2 libswiftCore.dylib 0x000000010ab6fef6 VariantDictionaryBuffer.nativeUpdateValue(:forKey:) + 1430 3 libswiftCore.dylib 0x000000010ab02585 _T0s10DictionaryVq_Sgxcis + 245 4 raduvarga.Focusrite-Midi-Control 0x000000010a934fbc closure #1 in newMidiMessageReceived(midiMessage:) + 172 5 raduvarga.Focusrite-Midi-Control 0x000000010a93501d partial apply for closure #1 in newMidiMessageReceived(midiMessage:) + 13 6 raduvarga.Focusrite-Midi-Control 0x000000010a93504d _T0Ieg_IeyB_TR + 45 7 libdispatch.dylib 0x00007fff638ed4dd _dispatch_block_sync_invoke + 102 8 libdispatch.dylib 0x00007fff638dadb8 _dispatch_client_callout + 8 9 libdispatch.dylib 0x00007fff638f0fc9 _dispatch_sync_function_invoke + 54 10 libdispatch.dylib 0x00007fff638ee433 _dispatch_sync_block_with_private_data + 395 11 libswiftDispatch.dylib 0x000000010b1205d1 DispatchQueue.sync(execute:) + 49 12 libswiftDispatch.dylib 0x000000010b120570 DispatchQueue.sync(execute:) + 16 13 raduvarga.Focusrite-Midi-Control 0x000000010a934ee3 newMidiMessageReceived(midiMessage:) + 275 14 raduvarga.Focusrite-Midi-Control 0x000000010a934d74 MyMIDIReadProc(pktList:readProcRefCon:srcConnRefCon:) + 10004 15 raduvarga.Focusrite-Midi-Control 0x000000010a935b39 @objc MyMIDIReadProc(pktList:readProcRefCon:srcConnRefCon:) + 9 16 com.apple.audio.midi.CoreMIDI 0x00007fff3c7c7a55 LocalMIDIReceiverList::HandleMIDIIn(unsigned int, unsigned int, void*, MIDIPacketList const*) + 117 17 com.apple.audio.midi.CoreMIDI 0x00007fff3c7c78da MIDIProcess::RunMIDIInThread() + 138 18 com.apple.audio.midi.CoreMIDI 0x00007fff3c7d8c8e XThread::RunHelper(void*) + 10 19 com.apple.audio.midi.CoreMIDI 0x00007fff3c7dce7b CAPThread::Entry(CAPThread*) + 77 20 libsystem_pthread.dylib 0x00007fff63c2c661 _pthread_body + 340 21 libsystem_pthread.dylib 0x00007fff63c2c50d _pthread_start + 377 22 libsystem_pthread.dylib 0x00007fff63c2bbf9 thread_start + 13

beely avatar Nov 11 '19 21:11 beely

Hi @beely!

I know about the crash problem, I know where it is but didn't really figure out how to fix it. It's my first project in this programming language so I'm missing something.

About the thing with midi channels I wasn't aware of, it totally makes sense the way you described, I will try to implement this change ,shouldn't be a big deal.

About the first issue I'll give it another shot.

raduvarga avatar Nov 11 '19 21:11 raduvarga

Awesome, thank you - I've got a workaround for the MIDI port thing in the meantime.

Thanks again for making this!

beely avatar Nov 11 '19 22:11 beely

@beely The crashes are fixed now in the new version, it's stable and has many more features now, check it out here: https://www.raduvarga.com/software/focusrite-midi-control

raduvarga avatar Apr 01 '21 10:04 raduvarga