Jump to content

No select-midi-inputs on Mac?


Recommended Posts

Dear Etu,


The midi works differently in Mac. Actually, Mac can share the midi drivers among different softwares.

In Windows, once a midi driver is used by one application, it can´t be used by other application. 

So, I helped Janusz and the team of programmers to develop a different approach for Windows systems.

With this option for selecting inputs and outputs, you can manage to map the midi inputs and outputs to

 match the best option for your system.


For example, I have the hardware controllers input drivers going in the input of Reaper, that also hosts all my sound libraries and other VSTs.

From Reaper I configured the output of just my little keyboard midi controller to input in Opusmodus, via the loopback software.


In Mac you can map everything using the MIDI/Audio studio configuration inside OSX.


All the best,

Julio Herrlein 


Link to comment
Share on other sites

  • 5 months later...

I think there is some incompleteness in OM regarding MIDI (on mac).
Why it is not possible to choose in- and out-ports like in other SW, f.e. PureData, or even "small" SW like midipipe or pocket-midi?


I have problems with using "Korg minilogue xd" (hereinafter referred to as MXD) with OM (Version 3.0.29206 (3.0.29206)).


When i call (midi-destinations) with connected MXD the result for minilogue-ports is:
(12 . "MIDI OUT") (13 . "SOUND")

But the correct names of the ports are: "minilogue xd SOUND" and "minilogue xd MIDI OUT".
The MXD has 4 ports, 2 out and 2 in: minilogue xd SOUND", "minilogue xd MIDI OUT", "minilogue xd MIDI OUT", "minilogue xd KBD/KNOB" and "minilogue xd MIDI IN".
Why OM cannot recognise the correct names like Dorico, PureData, midipipe, pocket-midi etc.?


Ok, this would be not a great problem alone - but was suspicious. And the problems actually followed:


I tried to use Korg minilogue xd as MIDI-entry for OM, and it doesn't work - it shows strange behaviour and deletes passed-in notes again.
With Dorico and the other mentioned SW there is no problem. So the error is not in the MXD, I suppose.


PROBLEM 2 with MIDI-Out:
My goal is to use OM to control and play the MXD over the OMN-articulation mechanism (which f.e. is described in "Program changes inside the OMN form").

This time simply to control program changes.
So I defined attributes (prg1 to prg500 - MXD has 500 programs, 200 as presets and 300 for users)

and a sound set (here reduced to some selected programs):




And here is the test:

MIDI connection minilogue BUG.opmo


This is the resulting score:




OM seems to recognise only each first program from every hundred, i.e prg1 from the first 100 (= 1 to 100), prg101 from the second 100 (= 101 to 200) and so on.
That means it recognises the LSB, but ignores the program number:

The correct way to change a program on the MXD with MIDI commands is:
(cc0 0 cc32 0 0-99) for prg1 to 100
(cc0 0 cc32 1 0-99) for prg101 to 200
(cc0 0 cc32 4 0-99) for prg401 to 500


It does work when I send the command from the pocket-midi SW, but not from OM.
When OM sends (cc0 0 cc32 0 0) or (cc0 0 cc32 0 4)* MXD changes anyway to Program 1 *(it should to 5), when OM sends (cc0 0 cc32 1 0) or (cc0 0 cc32 1 4)** MXD changes anyway to Program 101 **(it should to 105)  and so on.


BUT: when I connect OM to MXD indirectly over the midipipe SW, simply by passing it on, then it does work!


MidiPipe_IN.png.00535c5b8ec6c04c3425c6c844c36d4e.png    MidiPipe_OUT.png.1bc001e87cc228a5f510ce11c4a3b1f4.png

Does it mean?: OM is sending some incorrect or incomplete MIDI commands? Is there an interrelation with the wrong port-name recognition?

I would appreciate the correction of the possible bugs, but also, if the mac users of OM get the possibility to transparently control the MIDI-In and MIDI-out ports like in other software, f.e. in PureData.:
I think it's obvious that the MIDI handling in OM (on the mac?) needs improvement.



The used computer:



I made a mistake in the picture of the resulting score.

Here the corrected one:



Link to comment
Share on other sites

This process is unrelated to Opusmodus MIDI. Initially, one must construct a def-sound-set for this purpose. Within the Library, one can find examples demonstrating the method to configure the programs.

Link to comment
Share on other sites

7 hours ago, opmo said:

This process is unrelated to Opusmodus MIDI.

Regarding PROBLEM 1 with MIDI-In:

Is the OMN MIDI-Entry process using a library? I didn't find any information on that (? midi-entry.pdf).

And if not, I would like to have the possibility to make a workaround with external software, (to bring the MIDI-Entry to work), like I did with MIDI-Out and the MIDIPipe software, but it is not possible, because  there is no transparent MIDI-in port in OM I could choose. (I'm sorry, I'm not an expert in MIDI programming, perhaps I dont understand basic things).

Until now I dont know how to use Korg minilogue XD as midi-entry keyboard in OM for OMN-entry over MIDI, because it does not work - it shows a silly behaviour deleting again already entered notes ...



Regarding PROBLEM 2 with MIDI-out:


7 hours ago, opmo said:

one must construct a def-sound-set for this purpose

this one I did, (it was the attached file "korg_minilogue_xd_debug.lisp")

my problem is, it doesn't work as it should. It works only WHEN  piping the OM Midi-out through the external software "Midipipe") ...


7 hours ago, opmo said:

Within the Library, one can find examples demonstrating the method to configure the programs.


I did it: here the code of the def-sound-set I wrote and used in the test:



(in-package :Opusmodus)

;; => !!! ONLY for debug (with reduced number of programs)
;; Programs and banks

(def-sound-set K_MINILOGUE_XD_DEBUG
  (:group Programs-1-100
   ;;(:bank-select :msb): 0
   ;;(:bank-select :lsb): 0
   ;;program number: 0

   ;;; === Pad: POLY
   prg1   (cc0 0 cc32 0 0) ;"1 Replicant xd"
   ;;; === Poly Synth: POLY
   prg2   (cc0 0 cc32 0 1) ;"2 TyoCityLoop"
   prg3   (cc0 0 cc32 0 2) ;"3 Sharp Fifth"
   prg4   (cc0 0 cc32 0 3) ;"4 Quarra"
   prg5   (cc0 0 cc32 0 4) ;"5 Terror Key"
   prg6   (cc0 0 cc32 0 5) ;"6 PWM Cloud"
   prg7   (cc0 0 cc32 0 6) ;"7 Pump SAW"
   prg8   (cc0 0 cc32 0 7) ;"8 Orchestra xD"
   ;;; === Bass: UNISON
   prg9   (cc0 0 cc32 0 😎 ;"9 MirroredBass"
   ;;; === Bass: CHORD
   prg10  (cc0 0 cc32 0 9) ;"10 Mr. Squelch"
   ;;; === Lead POLY
   prg11  (cc0 0 cc32 0 10) ;"11 MetalFnkLead"
   ;;; === Poly Synth: POLY
   prg12  (cc0 0 cc32 0 11) ;"12 Space Clavi"
   ;;; === Chord: CHORD
   prg13  (cc0 0 cc32 0 12) ;"13 VelocityStab"
   ;;; === Bass: CHORD
   prg14  (cc0 0 cc32 0 13) ;"14 Bassblaster"
   ;;; === Arp: ARP
   prg15  (cc0 0 cc32 0 14) ;"15 Digital Rush"
   ;;; === Poly Synth: POLY
   ;;; === Lead: UNISON
   prg99  (cc0 0 cc32 0 98) ;"99 Rave Synth"
   prg100 (cc0 0 cc32 0 99) ;"100 Detuned Saw"
   prg117 (cc0 0 cc32 1 16) ;"117 Cloud Level "
   prg118 (cc0 0 cc32 1 17) ;"118 Beautyvolver "
   prg119 (cc0 0 cc32 1 18) ;"119 Sparkles "
   ;;; === Template: POLY
   prg197 (cc0 0 cc32 1 96) ;"197 TPL Talkie"
   prg198 (cc0 0 cc32 1 97) ;"198 TPL Kick"
   prg199 (cc0 0 cc32 1 98) ;"199 TPL Snare"
   ;;; === Template: CHORD
   prg200 (cc0 0 cc32 1 99) ;"200 TPL Hats"

   :group User-Programs-201-300
   prg201 (cc0 0 cc32 2 0 ) ;"Init Program201"
   prg300 (cc0 0 cc32 2 99) ;"Init Program300"

   :group User-Programs-301-400
   prg301 (cc0 0 cc32 3 0 ) ;"Init Program301"
   prg400 (cc0 0 cc32 3 99) ;"Init Program400"

   :group User-Programs-401-500
   prg401 (cc0 0 cc32 4 0 ) ;"Init Program401"
   prg500 (cc0 0 cc32 4 99) ;"Init Program500"

   :group Bank
   cc0 0
   cc32 32



And here is the code of the testing-file:



;; ---------------------------------------------------------
;; MIDI connection Minilogue XD BUG
;; ---------------------------------------------------------


;;with SCORE
;;TEST score(s):

((0 . "Bus 1") (1 . "Bus IAC 2") (2 . "Bus IAC 3") (3 . "Bus dorico_in") (4 . "Bus5 PD in") (5 . "Bus6 PD out") (6 . "GrandeOrgue") (7 . "Arturia mkII 61") (8 . "Kontakt") (9 . "Halion Sonic") (10 . "MuseScore") (11 . "MIDI OUT") (12 . "SOUND") (13 . "MidiPipe Eingang 1"))

;;; Parameters

(setf size 7)
(setf bars (gen-repeat size '(4/4)))
;(setf pause (length-span bars '(-q)))

(setf mxd-rh '(q d4g4 prg118 g4 g4a4 fs4b4 d4g4 g4 g4a4 -q e4 prg5 c4fs4 g4  
h fs4a4 q d4b4  e4c5 fs4a4 prg100 w d4g4 w d4 -w))

(setf mxd-lh '(q b3 cs3 c4 d4 b3 cs3 c4 -q g3 c4 d4 a3 d4 q d3 d4 a3 w b3 d3 -w))

;(setf port_MXD (vwom:get-port-nr "MidiPipe Eingang 1")) ;<= does work thru MidiPipe app!
;=> 13

(setf port_MXD (vwom:get-port-nr "SOUND")) ; ;<= buggy when direct connection to mxd!
;=> 12

;;; Score and Layout

(def-score minilogue-xd
    (:title "minilogue-xd"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (organ-layout 'mxd-rh 'mxd-lh :name "Minilogue XD" :abbr "MXD."
                           :bar-adjustments '(
                                              (1 :note "BUG: must: prg118 - is:prg101")
                                              (3 :note "BUG: must: prg5 - is:prg1")
                                              (5 :note "BUG: must: prg100 is:prg1")
   :omn mxd-rh
   :port port_MXD ;minilogue xd SOUND
   :channel 1;
   :sound MXD_sound
   ;:program 'prg1
   :volume 100
   :pan 64

   :omn mxd-lh
   :volume 100
   :pan 64

;(show-midi-events 'minilogue-xd)




[in the testing-file I use the function "get-port-nr"


here the code:


(defun get-port-nr(port-name)
 "returns corresponding port number to passed-in port name"
  (car (rassoc port-name (Opusmodus::midi-destinations)
               :test ’string=)))




I hope you can help me ...

Best regards!


Link to comment
Share on other sites

Dear Ottorino,


In OSX, all the midi inputs configured in MIDI Studio setup (of the OSX system itself) will be available.

Maybe this behaviour of the notes appearing and then disappearing can be due to doubling the midi information at some point.

Maybe the other software, like midipipe are doing some duplication or filtering off the notes.

Link to comment
Share on other sites

There is no need to do what you are doing. The best way to setup the port is by number. There is no need for midipipe etc...

(def-score exp
    (:key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 60
     :layout (grand-layout '(rh lh)))
  (rh :omn rh
      :port 0
      :channel 1
      :sound 'Minilogue)
  (lh :omn lh)


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use Privacy Policy