Audiobus: Use your music apps together.

What is Audiobus?Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.

Download on the App Store

Audiobus is the app that makes the rest of your setup better.

miRack / Simpliciter & Mozaic - I am stuck!

edited September 2022 in Support and Feedback

This may be a long shot, but you never know. I am using Mozaic to control Simpliciter in miRack (and also VCV Rack) programatically. It works as expected, except for one anomaly I am stuck on. I have created a minimal test setup to demonstrate the problem. You can try it for yourself if you have miRack and Mozaic. (See attached files - you will need to remove the '.txt' suffix from the Mozaic file, or you can just paste the text from the other file into a blank program.)

Here's what I am doing in the test program. I set the start and end points programatically, by sending MIDI CCs from a Mozaic program, with a MIDI-->CV module in miRack to connect to the Simpliciter inputs. (See the picture for details.) For test purposes I have arbitrarily set up eight separate clips, with 'Next' and 'Prev' buttons to step between them. (Note that I am not using Simpliciter's 'slice' functions, I am just changing the start and end points myself.)

This works fine and I can step back and forth between the clips. However, the clips don't start playing from the beginning when I switch. That's okay, Simpliciter has a 'start' button for the Playhead, and pressing this manually restarts the clip. The 'start' button has a CV input, so I have linked that to a CC, which I also send from my program. This doesn't behave as expected and I can't make it work :neutral:

I have included a button to send the 'start' command (my RESTART button) and this works as expected, restarting the clip if it is already playing or starting it if it is not. BUT when I send the 'start' command after I change the clip start and end points, it doesn't do anything. I don't know why, and nothing I have tried can make it work except introducing an unacceptably large delay (1 second) before sending the 'start' command.

(Interestingly enough, this behaviour is almost exactly the same in miRack and VCV Rack, except in miRack I have to separate the ON/OFF CCs for the 'start' trigger by about 10ms or it doesn't get noticed.)

I just want to be able to switch the start and end points like this but have the clip start playing from the beginning. (BTW, using the 'slice' functions does restart the clips (slices) correctly, but using slices isn't possible for a different reason.)

Any hackers out there, I am open to suggestions!

Comments

  • I appreciate that you made me notice this cool mirack/vcv module. It looks real nice. Be patient and Ill try to recreate your setup. Looks nice.

    So many mirack modules are so cool, who could possibly have the time to deep dive them

  • wimwim
    edited September 2022

    @MarkH - does this actually work with no errors in the log? I haven't tried it, but gave a quick look at the code, and the syntax doesn't look right in the nCurrentSlice = statements.

    @NextSlice
      // Move the start and end markers to the next slice
      // nCurrentSlice = Inc nCurrentSlice, 7  // Limit to 8 slices
      // Standard syntax ...
      Inc nCurrentSlice, 7 // Limit to 8 slices
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    
    @PrevSlice
      // Move the start and end markers to the previous slice
      // nCurrentSlice = Dec nCurrentSlice, 0
      // Standard syntax ...
      Dec nCurrentSlice, 0
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    
  • edited September 2022

    @wim said:
    @MarkH - does this actually work with no errors in the log? I haven't tried it, but gave a quick look at the code, and the syntax doesn't look right in the nCurrentSlice = statements.

    @NextSlice
      // Move the start and end markers to the next slice
      // nCurrentSlice = Inc nCurrentSlice, 7  // Limit to 8 slices
      // Standard syntax ...
      Inc nCurrentSlice, 7 // Limit to 8 slices
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    
    @PrevSlice
      // Move the start and end markers to the previous slice
      // nCurrentSlice = Dec nCurrentSlice, 0
      // Standard syntax ...
      Dec nCurrentSlice, 0
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    

    Yes, it works as a function although I can see the manual disagrees :) I checked and it works either way!

  • @Richtowns said:
    I appreciate that you made me notice this cool mirack/vcv module. It looks real nice. Be patient and Ill try to recreate your setup. Looks nice.

    So many mirack modules are so cool, who could possibly have the time to deep dive them

    Great, thanks. Yes, miRack seems like an incredibly rich playground!

  • @MarkH said:

    @wim said:
    @MarkH - does this actually work with no errors in the log? I haven't tried it, but gave a quick look at the code, and the syntax doesn't look right in the nCurrentSlice = statements.

    @NextSlice
      // Move the start and end markers to the next slice
      // nCurrentSlice = Inc nCurrentSlice, 7  // Limit to 8 slices
      // Standard syntax ...
      Inc nCurrentSlice, 7 // Limit to 8 slices
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    
    @PrevSlice
      // Move the start and end markers to the previous slice
      // nCurrentSlice = Dec nCurrentSlice, 0
      // Standard syntax ...
      Dec nCurrentSlice, 0
      Call @SendSlice
    
      // Reset the play head to the start of the slice
      Call @SendRestart
    @end
    

    Yes, it works as a function although I can see the manual disagrees :) I checked and it works either way!

    OK. I would still fix it though. Undocumented syntax could possibly stop working in a future update, and the way you've done it is redundant. 😉

    I'll try to take some time to work with that miRack module. My guess is the issue is with the module, not your code. I've only ever briefly messed with Simpliciter, so I don't know if I'll be of any help.

  • edited September 2022

    I’m pretty sure that’s a module bug, I have problems, errors and odd behaviors in other nysthi modules too.
    I’ve been asking for updated @nysthi modules in the miRack forum for ages, the version on miRack is very old.in VCV it’s several revisions ahead, much bugs corrected and awesome new functionality. let’s hope @mifki can update it soon. Maybe you can email asking too.

  • miRack updates are a bit tricky as it is stuck in the VCV Rack 1.0 fork. This is because VCV 2 was changed to GPL licensing, making it incompatible with the App Store. Modules are increasingly becoming dependent on VCV 2.

    That's not to say that problems with existing modules can't be fixed, it just means newer source code can't always be used.

  • Just checked:

    @OnLoad
      a = 0
      b = 10
    
      a = Inc b
    
      Log {a=},a,{   b=},b
    @End
    

    This results in a=11, so indeed the Dec is returning its value - but i‘m with @wim: This is an undocumented side-effect that might be removed in a future Mozaic version - and as you are assigning to the same variable as in the Dec statement, the asssignment itself is redundant.

    .

    @MarkH BTW: You could ‚compress‘ the aum session file and attach that zip to a new message of this thread. In that way debugging your problem would be a lot easier, as miRack and Mozaic‘s state and the routing will be included. I don‘t know if the simpliciter wav‘s are also stored in the session or if these are only references to local files - but adding some wac files is simpler than setting up everything.

  • @Synthi said:
    I’m pretty sure that’s a module bug, I have problems, errors and odd behaviors in other nysthi modules too.
    I’ve been asking for updated @nysthi modules in the miRack forum for ages, the version on miRack is very old.in VCV it’s several revisions ahead, much bugs corrected and awesome new functionality. let’s hope @mifki can update it soon. Maybe you can email asking too.

    I'm inclined to agree that this is a bug, although it's in both the VCV and miRack versions. I have tried all kinds of workarounds but the best I have come up with is to accept a 200ms delay in sending the restart, which seems to work in both VCV and miRack. Because this leaves a glitch when the clip starts playing (before it jumps back to the start), I have added a VCA, ADSR and a gate signal (yet another CC!) to try to suppress the glitch. It more or less works, and will probably be good enough for present purposes.

    Here's how the addition looks in VCV (just because the ADSR module has a picture of the envelope):

    And here's the change to the SendRestart function:

    @SendRestart
      // Toggle the 'start' button on and off.
      // In the miRack/VCV patch we need to use a MIDI-->CV converter to link
      // this MIDI CC to the Simpliciter 'start' CV input of the Play Head.
    
      SendMidiCC nChannel, ccGate, 0  // Mute the sound (triggers the ADSR Release)
      SendMidiCC nChannel, ccRestart, 127, 200  // Toggle the restart trigger, delayed by 200ms
      SendMidiCC nChannel, ccRestart, 0, 210  // (10ms gap seems to be required for the trigger to be seen)
      SendMidiCC nChannel, ccGate, 127, 210  // Unmute the sound (re-triggers the ADSR)
    @end
    
  • @Synthi said:
    I’m pretty sure that’s a module bug, I have problems, errors and odd behaviors in other nysthi modules too.
    I’ve been asking for updated @nysthi modules in the miRack forum for ages, the version on miRack is very old.in VCV it’s several revisions ahead, much bugs corrected and awesome new functionality. let’s hope @mifki can update it soon. Maybe you can email asking too.

    please stop fake news ;)
    the behaviour is correct and if you find any bug in my modules please report it to my github with a patch (only with nysthi modules) to reproduce it

    I won't update any miRack nysthi set, it's too far from my current source code
    and I'm currently leaving the VCV world too

    thanks

    here a video of the test

    simpliciter with a sequencer setting start and stop point and triggering the start (not in LOOP mode)

  • Well that's encouraging, but my example doesn't behave that way :(

  • @nysthi said:
    I won't update any miRack nysthi set, it's too far from my current source code
    and I'm currently leaving the VCV world too

    Really sad to hear that, as your modules are some of the most interesting. But thank you for creating them for us.

  • wimwim
    edited September 2022

    @bygjohn said:

    @nysthi said:
    I won't update any miRack nysthi set, it's too far from my current source code
    and I'm currently leaving the VCV world too

    Really sad to hear that, as your modules are some of the most interesting. But thank you for creating them for us.

    Ditto! @nysthi - you have made so many completely awesome modules. I don't know how to thank you enough.

    I can't remember if I've ever made a monetary contribution in support of your work. Is there somewhere one can go to do this?

  • edited September 2022

    please stop fake news ;)
    the behaviour is correct and if you find any bug in my modules please report it to my github with a patch (only with nysthi modules) to reproduce it

    I won't update any miRack nysthi set, it's too far from my current source code
    and I'm currently leaving the VCV world too

    thanks

    here a video of the test

    simpliciter with a sequencer setting start and stop point and triggering the start (not in LOOP mode)

    Thanks @nysthi , fake news! no! no more big brother watching you! ;)
    Well, I left using Squonk months ago because the bugs, those have been corrected in VCV since long time ago but not in miRack.
    Sad that you won´t update miRack for correcting bugs, I really love it, I intend to use is a a replacement for my old serge programmer when out of the studio.

  • @Synthi said:
    I’m pretty sure that’s a module bug

    I note that @nysthi's demo is using CV triggers, so now I'm wondering if this is a problem with the MIDI-->CV module. I will have to check if there are any alternatives.

  • @MarkH said:

    @Synthi said:
    I’m pretty sure that’s a module bug

    I note that @nysthi's demo is using CV triggers, so now I'm wondering if this is a problem with the MIDI-->CV module. I will have to check if there are any alternatives.

    You could try the trigger delay module in between and play with gate length

  • @Synthi said:

    @MarkH said:

    @Synthi said:
    I’m pretty sure that’s a module bug

    I note that @nysthi's demo is using CV triggers, so now I'm wondering if this is a problem with the MIDI-->CV module. I will have to check if there are any alternatives.

    You could try the trigger delay module in between and play with gate length

    Okay, I'll have a look at that. I tried in VCV with the Kilpatrick Audio MIDI-->CV module and it behaves the same, so I guess it's not the MIDI that's at fault.

  • wimwim
    edited September 2022

    Could you use note input and try the Midi Trigger Input module instead?
    Sorry, I don't have time to try that myself right now.

    It might also work to use the Basic Midi Input module, wiring the gate input to Simpliciter.

    If only CC input is available, you could convert that to notes in the Mozaic script.

  • @wim said:
    Could you use note input and try the Midi Trigger Input module instead?
    Sorry, I don't have time to try that myself right now.

    It might also work to use the Basic Midi Input module, wiring the gate input to Simpliciter.

    If only CC input is available, you could convert that to notes in the Mozaic script.

    Thanks for the suggestion. I spent some time experimenting with this too, but same results. Not to worry, I have an acceptable workaround now.

  • @Synthi said:

    @MarkH said:

    @Synthi said:
    I’m pretty sure that’s a module bug

    I note that @nysthi's demo is using CV triggers, so now I'm wondering if this is a problem with the MIDI-->CV module. I will have to check if there are any alternatives.

    You could try the trigger delay module in between and play with gate length

    Thanks for the suggestion. I tried this too, but it made now difference. Indeed, I see this does with a module pretty much the same as I am doing in code by delaying the CCs, so that's an education! I can see how the money adds up if you're doing all this with real Eurorack hardware :)

  • I just loaded this module and can’t figure out how to select slices. If I drag in the sample it just slides the entire module around. If I double-tap I get a menu.

  • wimwim
    edited July 2023

    @Wrlds2ndBstGeoshredr said:
    I just loaded this module and can’t figure out how to select slices. If I drag in the sample it just slides the entire module around. If I double-tap I get a menu.

    Everything is done with knobs and buttons. You don't interact with the wave display directly.

    To define your own slices use the slice maker section. Adjust the beginning and ending markers to define the slice, then hit Save. You'll see a the slice # and number of slices update below the counter. Now repeat for the next slice. You should now have two slices. You can navigate between them using the arrow buttons or the knob in the Slice Assembler section.

    To modify slices, get to the slice you want, adjust endpoints as above, then hit the upd button. To delete slices use the del button in the slice assembler.

    You can also use the slice grid section with its "on" button and peak button. To move between those slices use that section's sel button.

  • @wim said:

    @Wrlds2ndBstGeoshredr said:
    I just loaded this module and can’t figure out how to select slices. If I drag in the sample it just slides the entire module around. If I double-tap I get a menu.

    Everything is done with knobs and buttons. You don't interact with the wave display directly.

    To define your own slices use the slice maker section. Adjust the beginning and ending markers to define the slice, then hit Save. You'll see a the slice # and number of slices update below the counter. Now repeat for the next slice. You should now have two slices. You can navigate between them using the arrow buttons in the Slice Assembler section.

    To modify slices, get to the slice you want, adjust endpoints as above, then hit the upd button. To delete slices use the del button in the slice assembler.

    You can also use the slice grid section with it's "on" button and peak button. To move between those slices use that section's sel button.

    Tnx mucho. Could have sworn I saw him dragging in the sample on YouTube.

  • @Wrlds2ndBstGeoshredr said:

    @wim said:

    @Wrlds2ndBstGeoshredr said:
    I just loaded this module and can’t figure out how to select slices. If I drag in the sample it just slides the entire module around. If I double-tap I get a menu.

    Everything is done with knobs and buttons. You don't interact with the wave display directly.

    To define your own slices use the slice maker section. Adjust the beginning and ending markers to define the slice, then hit Save. You'll see a the slice # and number of slices update below the counter. Now repeat for the next slice. You should now have two slices. You can navigate between them using the arrow buttons in the Slice Assembler section.

    To modify slices, get to the slice you want, adjust endpoints as above, then hit the upd button. To delete slices use the del button in the slice assembler.

    You can also use the slice grid section with it's "on" button and peak button. To move between those slices use that section's sel button.

    Tnx mucho. Could have sworn I saw him dragging in the sample on YouTube.

    If it's a VCV rack demo maybe it works that way there.

  • edited July 2023

    About simpliciter and miRack AUv3 in AUM, when stand-alone it takes little cpu , but when using inside AUM as AUv3 , using simpliciter with several cvs and triggers modulating parameters, CPU consumption goes to the roof…. Was experimenting with it making a kind of random looper but it’s unusable because the crackling and glitches caused by CPU spikes. Can anyone compare the CPU difference between standalone and AUv3? @mifki ?

  • edited July 2023

    @Richtowns said:
    I appreciate that you made me notice this cool mirack/vcv module. It looks real nice. Be patient and Ill try to recreate your setup. Looks nice.

    So many mirack modules are so cool, who could possibly have the time to deep dive them

    And it loads Morphagene Reels!

    Omri Cohen has very good tutorials on the Geodesics modules, Befaco modules, nysthi, Lifeform Modular, Impromptu, and the Audible (Mutable) Instrument stuff.

    Modular Curiosity is good as well

    And of course, Divkid

Sign In or Register to comment.