Home Forums General Panels, Components, Macros Emu Morpheus Panel?

This topic contains 24 replies, has 6 voices, and was last updated by  human fly 2 days, 14 hours ago.

Viewing 20 posts - 1 through 20 (of 25 total)
  • Author
    Posts
  • #70204

    BryanP
    Participant

    Hi all. I’m a complete newbie so please forgive my ignorance(s)!

    I’ve just fired up my old Morpheus after about 15 years of gathering dust and I’m hoping to get back into editing her. I have an old copy of Midiquest but I can’t seem to get them to play nicely on OSX. Midiquest is sending Sysex and Morpheus is responding but I can’t get patches to load/save.

    So I’m hoping that:

    A) Someone has a Morpheus Ctrlr panel (http://ctrlr.org/forums/users/2mm/ seems to have made a working version a few years back but I can’t find any trace of it)

    B) There’s a way to record the Sysex from Midiquest and use that as the basis for a new panel.

    The Morpheus has a pretty comprehensive Sysex spec (I’ve attached the manual) but it’s been so many years since I’ve used Sysex that it seems like a heck of a task to start from scratch.

    Any advice would be appreciated.

    Thanks in advance!

    Attachments:
    You must be logged in to view attached files.
    #70206

    BryanP
    Participant

    I found a way to record the Midiquest sysex data. It was as simple as patching the midi out back to the midi in on my interface and recording the sysex data with the Ctrlr Midi Monitor.

    However, my poor old Morpheus has developed what appears to be a possibly fatal ‘Corrupted RAM’ fault. I’ve ordered a new RAM battery so fingers crossed….

    #70230

    BryanP
    Participant

    Hi all. I’m making progress but I’m stumped with negative values. I’ve had a good look around the forums and found some handy tips but nothing that has solved my problem.

    For parameters such as pan and tuning, using the standard LS and MS in the sysex strings works fine for positive values but not for negative values it seems e.g…

    Master tune:
    F0 18 0C 00 03 04 02 LS MS F7edits positive values, but if I insert 7f as the MS F0 18 0C 00 03 04 02 LS 7f F7 then it edits negative values.

    Midi Quest is spitting out the following:
    F0 18 0C 00 03 04 02 variable 00 F7 for positive values and F0 18 0C 00 03 04 02 variable 7F F7 for negative values

    Any idea how I can persuade Ctrlr to do the same?

    P.S. I’ve tried using the Proteus 2 panel as Morpheus ‘should’ be able to respond to Proteus sysex. It does for positive values but not for negative values.

    • This reply was modified 1 year, 3 months ago by  BryanP.
    • This reply was modified 1 year, 3 months ago by  BryanP.
    • This reply was modified 1 year, 3 months ago by  BryanP.
    #70237
    Possemo
    Possemo
    Participant

    for parameters with negative values I use uiFixedSlider. There you can define every value. But I never used it in MS/LS scenarios, you will have to try out. In the field “Slider contents” I set for example this:

    -63=65
    -62=66
    -61=67
    -60=68

    -5=123
    -4=124
    -3=125
    -2=126
    -1=127
    0=64
    0=0
    1=1
    2=2
    3=3
    4=4
    5=5

    59=59
    60=60
    61=61
    62=62
    63=63

    On the first value you can put anything you want, it is just display. The second is the “fixed value”. Hopefully MS/LS will take this value. Every fixed slider has normal values too (the first value, at the top is 0, the second is 1 etc..)

    • This reply was modified 3 weeks, 3 days ago by Possemo Possemo.
    #72604

    roger@fo-co.com
    Participant

    THough I am not a real (leave alone advanced) CTRLR user, I am offereing help for the creation of a Morpheus panel. I have played around with Cubase Device Panels managing Sysex, so I got a basic understanding of its Sysex.

    Best regards.

    #81008

    roger@fo-co.com
    Participant

    Hello!

    I am currently working on an editor for E-mu Morpheus, and so far I have figured out the mayor part of its sysex. There is one (first) issue though, where I need assistance.

    Firstly, my Sysex experiences were mostly applied in Cubase Device Panels, but this platform is (surprise!) Cubase Pro only, and also kind of limited for certain situations.

    Issue:
    In E-mu Morpheus there are 197 different filter types, which I would like to make available via Ctrlr. The problem is, that those filter types are not simple listed in a linear, consecutive manner, but the sysex may vary from filter type to filter type.
    I am looking for a list or combo solution, which permits to program
    – one dedicated message per list entry – let say:

    Filter type 1: F0 AA BB CC 10 00 F7
    Filter type 2: F0 AA BB CC 14 05 F7

    etc.,

    so on selecting a filter type in my list this one message would be sent. I resolved this in Cubase Device Panels with 197 individual momentary switches, but this makes way too much use of space on the screen.

    Anyone who can help me out with that? A demo panel, which I could study and modify, would be very apreciated, but is obviously no condition.

    Thanks in advance.

    Roger

    #81010
    Possemo
    Possemo
    Participant

    I guess there are several ways to do that. I personally would do it with a Lua script. Would that be an option for you? If your answer is yes I could give you some hints.

    #81060
    drsteve
    drsteve
    Participant

    I haven’t done anything with Ctrlr in years and I have never used a Morpheus; however, I am a little familiar with E-Mu’s sysex. I was under the impression you could set the filter type (parameter offset 236), the following 5 parameters, and route virtual patchcords to the filter parameters. I don’t know how to do that in Ctrlr, but with my limited understanding of Ctrlr, those are some basic functions. I think a few years ago someone attempted a panel for the E-Mu samplers. I’d have to check, but I think the use of sysex is similar. If it’s the E-Mu sysex you are working on, maybe the EOS sysex manual might provide some insights.

    Kudos to you for doing this!!!!!!! Once you have a Ctrlr panel for the Morpheus, it might be useful in developing panels for other vintage E-Mu gear.

    BTW, it seems that the patchcords will only affect the filter parameters at note on; evidently there is no ability to use controller sources to modify filter parameters once the note has started.

    Encouragement, encouragement, encouragement!!!

    Wish my UltraProteus’s midi i/o worked as I would love to see what I could do to help.

    Steve

    ————-
    This is what I was remembering (in case it’s helpful.) http://ctrlr.org/forums/topic/emu-e4-functionality-demo/

    • This reply was modified 3 weeks, 1 day ago by drsteve drsteve. Reason: to add link to E4 Ctrlr panel I referenced
    #81063

    rpcfender
    Participant

    Here is a sorted list of the Morpheus filter names that might be useful.
    0 : null filter
    162 : LPFlange.4
    163 : LPFlngBk.4
    164 : Flange2.4
    165 : CubeFlanger
    166 : Flange3.4
    167 : Flange 5
    168 : Flange 4.4
    169 : Flange 6.4
    170 : Flange 6R.4
    171 : Flng>Flng1
    172 : 0>Flng2
    173 : Flng>Flng6
    174 : Flng>Flng3b
    175 : Flng>Flg4
    176 : Flng>Flng5
    177 : Flng>FlngT
    178 : Flng>FlngC
    179 : Flanger 7.4
    180 : Bonk>CO
    181 : Speaker
    182 : Expander
    183 : Acc.Vel-2
    184 : VowelSpace
    185 : CO>FlngT
    186 : AEParLPVow
    187 : AEParaVowel
    188 : AOLpParaVow
    189 : AOParaVowel
    190 : AUParaVow.4
    191 : UOParaVow.4
    192 : SftEOVowel4
    193 : Vocal Cube
    194 : C1-6 Harms4
    196 : Voce.4
    197 : ChoralComb4
    198 : Bassutoi.4
    199 : Ee-Yi.4
    200 : Ii-Yi.4
    201 : Uhrrrah.4
    202 : YeahYeah.4
    203 : Vow>Vow1
    204 : Vow>Vow2
    205 : SoftEOAE
    207 : YahYahs.4
    208 : YoYo.4
    209 : More Peaks
    210 : BrickWaLP.4
    211 : MdQ 2PoleLP
    212 : HiQ 2PoleLP
    213 : MdQ 4PoleLP
    214 : HiQ 4PoleLP
    215 : 2p>4p 0
    218 : LowPassPlus
    219 : Low Past.4
    221 : 4PoleMidQ.4
    222 : HPSweep.4
    223 : HiSwept1.4
    224 : HghsSwpt2.4
    225 : Hi Accent.4
    226 : HiPassSwp.4
    227 : DeepCombs.4
    228 : One Peak
    229 : Rev Peaks
    231 : Odd>+
    232 : VarSlope.4
    233 : APass.4
    234 : BrickWalLP2
    236 : HP LP PZ
    237 : PZ Notch
    238 : Band-aid
    239 : HiHatLPEQ
    240 : Snare LPEQ2
    241 : 4>2 LowQHiQ
    242 : Notcher2.4
    243 : Ntches2Oct4
    244 : BassDrumEQ
    246 : BassEQ 1.4
    247 : B BOOST.4
    248 : BssBOOST2.4
    249 : Wah4Vib.4
    251 : G MajTrans4
    253 : HP Brass
    259 : Wa Wa.4
    261 : BrassRez.4
    262 : PZ Syn Horn
    263 : BrassyBlast
    264 : Brass Swell
    265 : LoVelTrum
    266 : BrsSwell2.4
    267 : Chiffin.4
    268 : ShakuFilter
    270 : Piano 1
    272 : Piano 2.4
    273 : EZ Rhodez.4
    274 : MoogVocodr4
    275 : MoogVocSwp
    276 : AcGtrRs.4
    277 : Qbase.4
    278 : TubeSust.4
    281 : 0>Bell-
    282 : 0>Bell+
    283 : Bel>Crs>Bel
    284 : Chrs>Flng1
    285 : Ev/OdNtch.4
    286 : 1.5/3KNBPR4
    288 : Odd/EvnNtch
    291 : HOTwell.4
    292 : Cym
    293 : VelMarim
    294 : EZ Vibez.4
    297 : Swingshift
    298 : 500up.4
    299 : C1Harmonic
    300 : Odd>Even
    301 : 0>Shp1
    302 : 0>Shp2
    303 : Lpeq Vel
    304 : CleanSweep4
    305 : StrSweep.4
    307 : PowerSweeps
    308 : TSweep.4
    309 : SweepHiQ1.4
    310 : V>FcQuad.4
    311 : Nexus.4
    312 : Krators.4
    313 : Harmonix.4
    314 : GreenWorld4
    315 : Comb/Swap.4
    316 : Comb/HP.4
    317 : Swirly
    318 : Be Ye.4
    319 : Cavatate.4
    320 : GentleRez.4
    321 : Bendup/Swap
    322 : Bendup
    323 : Skweezit
    324 : Lo/High.4
    325 : SbtleMvmnt4
    326 : BuzzyPad.4
    327 : StrngThng.4
    328 : Bw5kHz+6.4
    329 : Bw65Hz/2k.4
    330 : Bb80Hzbw1.4
    331 : 2 PoleLoQ.4
    332 : HighsTwist4
    333 : Cubix
    334 : Intervallc4
    335 : EvenCuts.4
    336 : OddCuts.4
    337 : PWMTrans.4
    338 : HiEndQ
    340 : 4 PoleLoQ.4
    341 : BroadRes.4
    344 : RubberHose4
    345 : Shp>Shp1
    346 : HeeghCube
    347 : NoizCube
    348 : VeloctyTilt
    349 : Syn Wow.4
    351 : CntrySweep4
    352 : Diffuser.4
    353 : MdlySweep.4
    354 : PoleCross.4
    355 : StrongShimr
    356 : Chrs>Flng2
    357 : 0>Shp3
    358 : Acc.Vel-1
    359 : Vel2-Wind
    360 : GtrSkwk
    361 : Harmo
    362 : Start>EndA
    363 : Start>EndB
    364 : MovingPick1
    365 : Mph+Trns1
    366 : 0>Odds
    367 : Clr>Oboe
    368 : Bell.Waha
    369 : 0>Muter
    370 : Belwahb
    371 : MovingPick2
    372 : Comb Voices
    373 : Odd-Ev Hrm
    374 : OddHrm+Rez
    375 : EvnHrm+Rez
    376 : GuitXpress
    377 : BassXpress
    378 : MellowPeaks
    380 : AHmBnd.4
    381 : BriteFlng.4
    382 : MildPolSwap
    383 : MildQPole
    385 : Vintage
    386 : Separator
    396 : Tam
    397 : NotchPkSwp4
    403 : ApDistB6.4
    407 : TubeJam.4

    All the best
    Royce

    #81079

    roger@fo-co.com
    Participant

    Hello!

    First of all thanks to all contributers for their help. As I mentioned earlier, the Sysex itself does not represent a major problem (anymore), thanks to Cubase Device Panles. I also analyzed the data emitted by a Windows software editor for Morpheus, which gave me a quite clear idea.

    1. Just as rpcfender stated in the post before, there are gaps in the list of filter types. If you check out the post before, you will find missing for example the the filter type with the number 195. That filter type simple does not exist (at least in Morpheus).

    Now, it is known, that Morpheus and UltraPorteus are largely compatible, the Ultraproteus having more waveforms and filters, and it would make sense to use those gaps for UltraProteus-only filter types. Could somebody please check, if those gaps in the filter type list are UltraProteus filters? If that´s the case, then I could insert those values too, with an UltraProteus only mark. The numbers in question are:

    195, 206, 216, 217, 220, 230, 235, 245, 250, 252, 254-258, 260, 269, 271, 279, 280, 287, 289, 290, 295, 296, 306, 339, 342, 343, 350, 379, 384, 387-395, 395-402, 404-406

    2. The suggestion to offer a separate NULL FILTER switch is a great idea, as this filter type has its own modified sysex. Thank you very much for this suggestion.

    3. If the missing filter numbers are not from UltraProteus, then I´d prefer a solution to be able to assign a code per filter, just like I would do with a switch.

    Is there a way to create some kind of list (drop down or scrollbar), which allows to assign a whole sysex code for example?
    Like this:

    000 Filter type A: F7 18 0C bla bla F7
    001 Filter type B: F7 18 0C blip blip F7
    002 Filter type C: F7 18 0C blob blob F7

    etc.

    Thanks in advance to everybody.

    #81161
    Possemo
    Possemo
    Participant

    AFAIK this is not possible:

    000 Filter type A: F7 18 0C bla bla F7
    001 Filter type B: F7 18 0C blip blip F7
    002 Filter type C: F7 18 0C blob blob F7

    With uiFixedSlider and uiListBoxes you can build a list of custom values but one integer number only. If the two values in the sysexstring are nibbles of one big value you could try the variables ls and ms.

    This seems to be the sysexstring format:

    F0 SysEx Status Byte
    18 E-mu Mfg. ID
    0C Morpheus Product ID
    dd Device ID 0-15
    03 Command ID
    pl Parm Number ls byte
    pm Parm Number ms byte
    vl Parm Value ls byte
    vm Parm Value ms byte
    F7 End of SysEx Status

    So yes, Values are nibbles and this can be done with a standard uiSlider. In the sysex-field of the Slider you put something like this:

    F7 18 0C 00 03 7f 7f ls ms F7

    Edit: this should work with FixedSliders too and for that matter with ListBoxes as well.

    • This reply was modified 2 weeks, 3 days ago by Possemo Possemo.
    • This reply was modified 2 weeks, 3 days ago by Possemo Possemo.
    #81194

    roger@fo-co.com
    Participant

    Thanks Possemo for your contribution. I was expecting that I would only be able to change one number inside the sysex string. This leaves me for the moment with two options:

    1. create a list, filling the gaps with an UNKNOWN FILTER message
    2. create a button for each and every filter type

    For option 1 I have begun to make a listbox, just to give it a try, how far I can go with that. Or maybe someone comes up with another idea…

    Thanks to everyone.

    Roger

    #81195

    roger@fo-co.com
    Participant

    Guys, I think I got it…

    Thanks to Possemo I followed the path of nibbles. Turns out that it is actually managed as 7bit nibbles. I now can assign one value in the Sysex formula and access the other filter types.

    Syntax is:

    F0 18 0C dd 03 6C 41 LS MS F7 (LS and MS in CAPITAL LETTERS).

    Every filter now has its own ID, which I can comfortably insert in the listbox.

    To be continued…

    #81266
    Possemo
    Possemo
    Participant

    Oh yes I forgot: lowercase are 4-bit nibbles, uppercase are 7-Bit nibbles, but you found that out yourself.

    #81267
    Possemo
    Possemo
    Participant

    Btw. an uiCombo would be another option. But for that much options a ListBox is probably the best option. You could even make a big screen where you show every option at a glance like the “Presets” tab of my Matrix-1000 panel. It shows 800 options and it consists of 16 ListBoxes (see attached screenshot). Very little Lua programming is needed when you want to deselect all other options when you select one.

    Attachments:
    You must be logged in to view attached files.
    #81351

    roger@fo-co.com
    Participant

    Thanks for your comments.

    My plan is to create firstly a Patch/Preset Editor, so I can control its synthesis parameters from inside Cubase, which means tabs for all parameters for primary and secondary voices. Also a GENERAL tab for Easy Editing of patch volume and panning.

    Later on, I might add more tabs for more functionality. At the end of the day, I am still a newbie in CTRLR. I still even don´t know, how to retrieve preset data from Morpheus to show it in CTRLR…

    All the best.

    Roger

    #81424

    roger@fo-co.com
    Participant

    The filter lists for primary y secondary voices
    are now ready and working.
    I wonder if there is a possibility to save SNAPSHOTS AS PRESETS,
    to be called from within CTRLR.

    Greetings.

    Roger

    #81531

    roger@fo-co.com
    Participant

    Hello!
    The panel is already taking shape, but I am stuck with the XY-Pad.
    Imagine control several filter parameters at once…

    I would like to control two parameters with the XY-Pad simultaneously. I already found out, how to assign/link parameters to each of the axis (currently Primary Filter Morph and Filter Transform 2), but no MIDI is sent. Must be something easy…still I didn´t find out how.

    Any idea how to solve that?

    All the best.

    Roger

    #81611
    Possemo
    Possemo
    Participant

    Save the panel, close it, then re-open it. For some reason the linkage you set up in the uiXYsurface does not become active until you close and re-open the panel.

    #81616

    roger@fo-co.com
    Participant

    I´ll give it a try. Thank you.

    All the best.

    Roger

Viewing 20 posts - 1 through 20 (of 25 total)

You must be logged in to reply to this topic.

Comments are closed.