Anonyme-x222 Posted June 13 Report Share Posted June 13 Hi, I would like to add a remote control option in the external controller section. seq_midi_in.c The function static s32 SEQ_MIDI_IN_Receive_ExtCtrlCC(u8 cc, u8 value) need to be modified like this static s32 SEQ_MIDI_IN_Receive_ExtCtrlCC(u8 cc, u8 channel, u8 value) The call like this: SEQ_MIDI_IN_Receive_ExtCtrlCC(midi_package.cc_number, midi_package.chn, midi_package.value); i will have to add : Mutes By Midi Channel in the const char* ext_ctrl_str[SEQ_MIDI_IN_EXT_CTRL_NUM] = However the mute channel part isn't in a case but directly in the root of the function ? can help ? Thanks in advance, Have a good day, Rgds, Quote Link to comment Share on other sites More sharing options...
Rio Posted June 13 Report Share Posted June 13 It reads a little heavy but can you briefly describe what exactly you want to do? Do you want to mute all tracks that listen to a specific channel? Quote Link to comment Share on other sites More sharing options...
Anonyme-x222 Posted June 16 Author Report Share Posted June 16 Well, i would like to add an option in the external control list Mutes By Midi Channel, where you select a CC , and each channel of this cc will mute/unmute one track: ex CC122 ch1 mute track 1, CC122 chl 2 mute track 2, etc... Quote Link to comment Share on other sites More sharing options...
Rio Posted June 16 Report Share Posted June 16 (edited) Do you have experience in programming? The reason I ask is because it requires that. And your approach of changing the args of a core function is definitely not the right way. Btw: I think this is pretty custom for your needs, since the mute works in a different way in the midi implementation (regarding tracks). Otherwise, if you absolutely need it and above all if you are confident that you can do it, then you can hack the seqv4 source and define and include your own external control as a CC and specify & transmit the channel there as a value, which is used in your own loop through the tracks and mutes or unmutes the corresponding tracks if (value == track's channel). e.g. seq_midi_in.h --> #define SEQ_MIDI_IN_EXT_CTRL_MUTE_BY_CHANNEL 16 #define SEQ_MIDI_IN_EXT_CTRL_NUM_IX_CC 17 <-- (make sure to increase the NUM_IX_CC) seq_midi_in.c --> seq_midi_in_ext_ctrl_asg[SEQ_MIDI_IN_EXT_CTRL_MUTE_BY_CHANNEL] = 122; // your cc for that control const char* ext_ctrl_str[SEQ_MIDI_IN_EXT_CTRL_NUM] = { .. "Mute by channel", // your name for that control } <-- (index 16 must be noted here) append your external control handling inside: static s32 SEQ_MIDI_IN_Receive_ExtCtrlCC(u8 cc, u8 value) if (cc == seq_midi_in_ext_ctrl_asg[SEQ_MIDI_IN_EXT_CTRL_MUTE_BY_CHANNEL]) { ... } but i think if you want to change something in the code, you have to get familiar with the structure of the entire source anyway. Greetings,rio Edited June 16 by Rio Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.