Forum Replies Created

Viewing 15 posts - 16 through 30 (of 73 total)
  • Author
    Posts
  • in reply to: Matrix last midi command [feature request] #7199
    Patrick KiznyPacocreative
    Participant

    Oh, that’s pure gold! Amazing.
    Is there a way I can access more undocumented stuff somehow?

    in reply to: Incorrect data types #7187
    Patrick KiznyPacocreative
    Participant

    Oh, now that works. Stupid me.

    in reply to: Incorrect data types #7185
    Patrick KiznyPacocreative
    Participant

    Generally something weird is going on.

    // In Matrix
    // in the head
    Declare Local float $v$ = 0
    
    // Later in case branches
    CaseBranch "Test"
    	$v$ = currentCaseOptionValueFloat(0)
    	Message {"test CCOVF " + currentCaseOptionValueFloat(0) + " $v$ " + $v$   }
    	BreakCaseBranch

    Fails to assign value to the variable, and output is:
    currentCaseOptionValueFloat(0) ⇀ correct value
    $v$ ⇀ 0

    I’m using these assignments to tidy up my code and avoid repetitions

    Any ideas?

    in reply to: ExecuteCaseBranch [value] (feature request) #7183
    Patrick KiznyPacocreative
    Participant

    That makes sense.
    Or similarly, I could restrict myself to using a single CaseBranch extension, but put a lot of features there and use flags to execute them selectively.
    Thanks!

    in reply to: Jump on modular loopers not working in synced mode ? #7182
    Patrick KiznyPacocreative
    Participant

    I’m not sure if it’s happening also in regular modes, as I don’t have seeking implemented there yet.
    This is coming from my macros that use midi controllers to use looper more as an instrument, including playing with in/out points, speed and dynamic seek(jump)

    Look at CaseBranch “[1] Pos” for specifics, but I include a wider piece of code for context.

    	// ----------------------------------------------------- Individual loopers control page 2 -----------------------------------------------------
    
    CaseBranch "[1] Spd"
    
    	// vars for each channel
    	$k$ = 1
    	$m$ = $Looper_fx1_rank1_PlayerMode_state$
    	$b$ = $Looper_fx1_rank1_current_length$
    	$r$ = $Looper_fx1_rank1_ReverseDirection_state$
    
    	// ETS mode,
    	If { $m$ == 2 }
    		$spd$ = {scale(currentCaseOptionValueFloat(0), 1, 126, $spd_max2$, 1)}
    		$frz$ = {$spd$ > ($spd_max2$ * 0.95) ? 1 : 0 }
    		InsertSendMessage fx[$k$] 1 HTSSpeed $spd$
    		InsertSendMessage fx[$k$] 1 HTSFreeze $frz$
    	Else
    		$spd$ = {currentCaseOptionValueFloat(0) < 64 ? scale(currentCaseOptionValueFloat(0) , 0, 64, $spd_min1$, 1) : scale(currentCaseOptionValueFloat(0), 65, 127, 1, $spd_max1$)}
    		IfThen {$r$ == 1 } Do $spd$ = { $spd$ * -1 }
    		InsertSendMessage fx[$k$] 1 SpeedFloat $spd$
    	EndIf
    	WaitDuration 17
    
    	BreakCaseBranch
    
    CaseBranch "[1] In"
    	InsertSendMessage fx1 1 SelectionIn {scale(currentCaseOptionValueFloat(0), 2, 125, 0, $Looper_fx1_rank1_current_length$)}
    	BreakCaseBranch
    
    CaseBranch "[1] Out"
    	InsertSendMessage fx1 1 SelectionOut {scale(currentCaseOptionValueFloat(0), 2, 125, 0, $Looper_fx1_rank1_current_length$)}
    	BreakCaseBranch
    
    CaseBranch "[1] Pos"
    	If { $Looper_fx1_rank1_PlayerMode_state$ == 2}
    		$v$ = {scale(currentCaseOptionValueFloat(0), 2, 125, $Looper_fx1_rank1_SelectionIn_state$, $Looper_fx1_rank1_SelectionOut_state$)}
    		InsertSendMessage fx1 1 Jump $v$
    	EndIf
    	WaitDuration 17
    	BreakCaseBranch
    
    CaseBranch "[1] Rev"
    
    	InsertSendMessage fx1 1 ReverseDirection {$Looper_fx1_rank1_ReverseDirection_state$ == 0 ? 1 : 0}
    	MidiControllerSend {$Looper_fx1_rank1_ReverseDirection_state$ == 0 ? 11 : 12 } 51 $chan_b2$ "Launch Control XL"
    	BreakCaseBranch
    
    CaseBranch "[1] Copy"
    	$m_press_flag$ = 1
    	BreakCaseBranch
    
    CaseBranch "[1] Copy_up"
    	If {$m_press_flag$ == 1}
    		InsertSendMessage fx1 1 AudioMessages Paste
    
    		MidiControllerSend 60 61 $chan_b2$ "Launch Control XL"
    		WaitDuration 500
    		MidiControllerSend 12 61 $chan_b2$ "Launch Control XL"
    		//MidiControllerSend 12 $LC_lastcopied$ $chan_b2$ "Launch Control XL"
    
    		$m_press_flag$ = 0
    	EndIf
    	BreakCaseBranch
    
    CaseBranch "[1] Copy_longpress"
    	$m_press_flag$ = 0
    	InsertSendMessage fx1 1 AudioMessages Copy
    in reply to: ExecuteCaseBranch [value] (feature request) #7177
    Patrick KiznyPacocreative
    Participant

    One thing I’m seeing already is that I can use it only once from a case branch.
    So, unless you suggest another workaround I can’t achieve something like this:

    CaseBranch "Do this"
    	ExecuteCase "DoThat1"
    	ExecuteCase "DoThat2"
    	ExecuteCase "DoThat3"
    EndCaseBranch
    in reply to: Jump on modular loopers not working in synced mode ? #7176
    Patrick KiznyPacocreative
    Participant

    Here’s a video
    https://www.dropbox.com/scl/fi/czrj2p6walysekgdgaxay/2025-02-11-20.44.38.mp4?rlkey=uevu49o9zzog6p042z1v5mw5m&dl=0

    For some reason, I can’t reproduce exactly the same behavior now, but something similar happens:
    After setting in- and out- points and using jump, the playhead does not loop within the selection, but moves between the last jump-point and the end-point.
    No continuous midi command is sent for sure.

    in reply to: Jump on modular loopers not working in synced mode ? #7175
    Patrick KiznyPacocreative
    Participant

    Thanks for your note about the InsertSendMessage. I think I already unified it, but it does not affect the bug.
    I’ll record a video to show you exactly.

    in reply to: ExecuteCaseBranch [value] (feature request) #7174
    Patrick KiznyPacocreative
    Participant

    I was going through the docs, but I wasn’t able to figure out this could do the job. Now this makes sense and could work.

    How can I pass the last value coming from a midi trigger (like a CC value)?
    I’m using it in the context of Matrix, and all cases are triggered with midi.
    Many make use of the value provided from midi.
    I mean I could use another variable to store that, but maybe I don’t have to?

    Thanks

    in reply to: Plugins refresh (feature request) #7172
    Patrick KiznyPacocreative
    Participant

    Oh, It looks like I posted a semi-finished comment, my bad.
    The button I meant is refresh – “Refresh plug-in list, SFX list, audio files in File players, etc.”
    I’m trying to fail-proof a performance setting and avoid touching mouse 🙂

    in reply to: AudioEngine start/stop by macro #7171
    Patrick KiznyPacocreative
    Participant

    Thanks, helpful.

    in reply to: Korpus Loopers – Extend buffer length #7153
    Patrick KiznyPacocreative
    Participant

    Philippe,

    Do you have an ETA for the next release?
    Asking for a friend 🙂

    in reply to: Korpus Loopers – Extend buffer length #6995
    Patrick KiznyPacocreative
    Participant

    I think that gives some good options.
    Thanks for considering my input.

    On the UI side, one note I had was that minimized/extended window state of a looper is not memorized in presets. Not a priority thing for sure.

    “TrimLoopSamples” — yeah something along the line of this. Mybe TrimSample? or SnapSample?

    in reply to: Korpus Loopers – Extend buffer length #6990
    Patrick KiznyPacocreative
    Participant

    I re-approach this. I do think it would be actually handy to think about sync options of loaded samples, assuming we want to work in beat-synchronous mode.
    Currently, when you load a sample into a modular looper, it loads in total length and theres really not much synchronization:
    1/ Even if sync is set (say to 4 beats), the selection of the sample does NOT correspond to that related to tempo, but that of a sample. So we can’t really load a long loop and easily select 4 beats period, to make a simple beat.
    2/ If we load a really short sample (as it’s the case with many percussive sounds), there’s no easy way to make this thing last a bar.

    given this, I think it would be beneficial to:
    1/ Have a restart/sync button that starts the loop on the beginning of the next phrase
    2/ Have a button, that would either trim or extend the content of a looper to that which is set in the sync options
    3/ Have an option for waveform selection follow the beat length derived from current tempo and sync, not from the loaded sample length

    That way we could easily take a one-shot and use it as a groove foundation.

    Yes… probably I can work around a lot of that with macros, but I believe many users will find it handy.

    in reply to: Extending Granulaterre #6970
    Patrick KiznyPacocreative
    Participant

    Whooooa, you’re a legend. Thanks!
    Apologize if I doubled requests.

Viewing 15 posts - 16 through 30 (of 73 total)