1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Multi Thread Work Around

Discussion in 'MASCHINE Area' started by bcoco85, Feb 27, 2012.

  1. bcoco85

    bcoco85 NI Product Owner

    Messages:
    355
    hi
    this guide is like a nasty fix for a long time feature request. this is not real multithreading, im not sure, but i think this can free a little power.

    the basis of this is take the ability of the [WIKIPEDIA]JACK Audio Connection Kit[/WIKIPEDIA], a great [WIKIPEDIA]open source[/WIKIPEDIA] tool that can route audio between programs, and supports multiple processors.

    i write this guide for [WIKIPEDIA]OSx86[/WIKIPEDIA]. this guide is the same for [WIKIPEDIA]Window[/WIKIPEDIA]. its the same method but with other screenshots...

    this links are useful for understanding this
    http://trac.jackaudio.org/wiki
    http://www.jackosx.com/about.html

    i will try to explain a little guide for those who does not want to struggle with your head. i understand you people because i normally use my head for headspins and halos.

    according to this
    this sentence made me think that multiple outputs can do this graph. but im not sure if this graph can be done by different outputs of the same program. this is why this is a nasty fix.

    run JACK2
    View attachment 26865

    and configure it propertly. here its my preferences window. its a reference, dont just copypaste because every needs and system is different. windows jack control panel is like the classic jack. this screenshot os for the osx port of jack jack2preferencias.png
    hog mode: this is also known as exclusive access mode. jack2 take full control of the audio device. this is good to enable.
    clock drift compensation: this is used when different devices are used.
    system port monitoring: system outputs have monitoring channels.
    activate midi: in osx midi system is good as is.
    virtual input/output channels: because by now this is a manual setting for non native jack programs, set it to a good value.


    AFTER starting the jack daemon, run maschine (and everything related with audio)
    maschinejack.png

    To do easy routing, i use Patchage: http://drobilla.net/software/patchage/

    jack now has connected to the jack daemon. if all maschine groups are routed to maschine master, you only have to connect OUT1L and OUT1R.
    jackmaschinemaster.png

    to this point, this guide is still valid for those who want to SAMPLING from another program (insert_here_the_name_of_your_favorite_music_player_program, internet, whatever......)
    somerouting.png
    here it is an example using jack for sampling from vlc and firefox.

    ___

    what im testing is what i think it should do the multithreading: routing various groups through jack. but i have to insist in this. im not sure if it really uses various cpu cores.


    Now configure maschine outputs:

    A to MASTER (master output default is out1)
    B to OUT 2
    C to OUT 3
    D to OUT 4
    E to OUT 5
    F to OUT 6
    G to OUT 7
    H to OUT 8


    and connect the respective left and right outputs:
    final.png

    hold control while clicking to select various items, and enter to connect.
     
  2. 645576

    645576 Forum Member

    Messages:
    201
    Unless I am missing something, you cannot make Maschine use multiple threads just because JACK does. The hosting of plugins and sounds occurs within a single Maschine application and so Maschine is in fact configured as "INPUT --> A --> B --> C --> OUTPUT" which your own text suggests will not work.

    What they seem to mean there is that multiple audio applications can route through jack on multiple threads - not multiple sources from one application engine like Maschine.

    I would love to be proven wrong on this, but I am just doubting it very seriously. Plus, why not just use multiple instances in your DAW such as Cubase or Sonar? Then you can really have multicore support.

    D
     
  3. lethal_pizzle

    lethal_pizzle NI Product Owner

    Messages:
    10,599
    A single instance of Maschine only uses one core, regardless of how you route audio.
     
  4. TwoToneshuzz

    TwoToneshuzz Forum Member

    Messages:
    94
    interesting point here. Now the interesting thing then is if you could run mulitple stand alone instances of Maschine, then you could concievably have mulithreading. But of course this is kind of clumsy. i suppose in this scenario, you could think of each standalone instance of Maschine as a "Super Group". I think you can launch several instances of a program using the Console.

    I Use my host Numerology pro 3 and Maschine both in stand alone synced with midi. This gets me some more performance. Synths like Diva in Numerology, external inputs from hardware synths in Nuimerology. Sample instruments in Maschine.

    Neither program is multithreading, but both together standalone are using 1 core each. I just route all audio out LR and can record the total mix using Ambrosias WireTap studio.

    I really think that Maschine should get multithreading in standalone modus now that it has VST hosting.

    No need for jack in the above scenario.

    Regards
     
  5. bcoco85

    bcoco85 NI Product Owner

    Messages:
    355
    yes, the scenario you describe does multithreading. but i was wrong, there is no multithreading in the setting i describe because maschine is the only program generating audio in the graph.
    the only way is running heavy plugins in standalone, controlled by maschine like if they are hardware. you can do this using steinberg vst or any other plugin system for hosts, inside a host but vst it more cpu hungry, and maybe there is no send tempo setting or sync to external device when running as plugin.

    the guide is still useful for syncing traktor with maschine, sampling from whatever program you have, routing audio through ethernet (netjack is needed here), ...
     
  6. mezzurias

    mezzurias NI Product Owner

    Messages:
    2,405
    I used to do this with Kore before VST support came about. I still get better performance doing it this way than opening VSTs in Maschine. The only thing that sucked was the initial setup. In JackOSX you can save configurations to cut back on the setup time. You can also use Soundflower for this but I found it to be pretty buggy and it introduced way too much latency. Someone asked me for a video on how I used Kore with Maschine, but I was to lazy to do it.
     
  7. faster

    faster NI Product Owner

    Messages:
    932
    Very recently, I discovered a workaround too, using maschine as platform/sequencer where I record notes and all midi.

    As a host I use BloXpander, http://www.eareckon.com/ that can have inside a good number of VSTs, (I had 10 of them different ones at one time) all arranged and tweaked and multiple instances of.

    For example: in Maschine, group H is assigned to MIDI out, each of the 16 "sounds" is MIDI out, has a midi channel and that channel corresponds to a slot in Bloxpander which has a VST.

    I can run a lot of them at the same time and maschine doesn't even show any! CPU action!
    Of course the rest of the Groups is used for maschine library, no interference...business as usual;)

    Anyway you can try the demo of Bloxpander, to see what you come up with, (demo doesn't save), that's all.
    Also I am not in any way affiliated with them or do advertisement, (thought I mention it), it is just a great way to have lots of VSTs going on without choking our poor maschine:lol:

    Anyway I hope this helps someone, (maybe some other free VST platforms might work too)...
    cheers:)
     
  8. bcoco85

    bcoco85 NI Product Owner

    Messages:
    355
    so, the solution is running different threads (in order to draw a parallel process graphic): actually you can do this outside maschine.

    thanks for all the people that posted some solutions for this!
    more solutions are welcome. much better with some screenshots, to illustrate the description.
    peace