Jump to content

Featured Replies

Posted

Greetings all:

 

I have an issue that I just can't figure out. (not enough coffee?)

 

I am working with Opus (East West VSTi) - and the Hollywood Solo Violin.  My quest is to program a sound set and get the instrument to key-switch - a work in progress there.  Nothing seems to work on this so far.

 

HOWEVER.  in this process I am recording output in MIDI from the Notation Viewer playback (Obey Ports).

 

And, I get the following result:

image.png.0b427505693d54413941fcf5c983b61e.png

I cannot figure out why this would be.  It seems like a bug to me, but who knows?  With the low velocity it seems like a midi-note-off command.

Here is the code:

 

;;;---------------------------------------------------------

(setf vln '((h g3 -h ) (q gs3 -q -h) (-w)))

;;;---------------------------------------------------------
;;; Score and Layout

(def-score test
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (treble-layout 'vln))
 
  (vln
   :omn vln
   :port 3
   :channel 1
   )
  )

 

It seems not to matter how long the "rest" is until the notation viewer produces the "ghosted" copy of the last note and stops playback.

It is probably me doing something wrong, but in the midst of trying to get key-switch programming going here  I noticed this interesting issue.

 

Notes:
running current version of Opusmodus

Windows 10

Nuendo 13

East-West Opus (latest version)

Hollywood Solo Violin

 

Here are the various midi destinations from loopMIDI:

OM 16 > (midi-destinations)
((0 . "Microsoft GS Wavetable Synth") (1 . "StudioRack") (2 . "SG Device I/O") (3 . "01") (4 . "02") (5 . "03") (6 . "04") (7 . "StreamDeck2DawTrack") (8 . "DawTrack2StreamDeck") (9 . "MidiKeys_IN") (10 . "MidiKeys_OUT"))

 

I hope someone might be able to help me see the error of my ways.

 

Thanks,

 

Robert

No bug:

 

(setf vln '((h g3 -h ) (q gs3 -q -h) (-w)))

(def-score test
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (treble-layout 'vln))
 
  (vln
   :omn vln :sound 'gm :channel 1 :program 0)
  )


Screenshot 2024-09-11 at 16.42.36.png

 

As you can see all fine 🙂

  • Author

Of course, the Opusmodus code is fine.  This is also confirmed here - as a 'gm sound (internal MIDI no ports), the sound plays back as expected. 

 

This is a system issue, a problem with MIDI output formatting and the ports referenced by loopMIDI (on our system) sending to the DAW from the Opusmodus software interface..

 

1) We are sending MIDI out of a selected PORT to a VSTi that is hosted in a DAW .


2) We have confirmed that it does not matter what VSTi or output port or channel is used.  This anomalous issue persists.

3) Our comment (report) references playback from the Notation Viewer.  However, this issue also occurs with playback from the MIDI player.

 

4) From what we observe here, the "ghosted" last note occurs at the end point of playback.

 

Thank you for your comment, but the problem is not something that we see how to resolve here.

  • Author

Thank you for the suggestion.

 

I have been, in fact doing this.

 

But, your comment does not address the bug report I have posted.

 

With my thanks.

  • Author

I am very sorry for taking up your bandwidth with this small matter.

Can you suggest what the issue might be?  Our "setup" was originally suspected, but we have not been able to discern the problem.  Our testing  was initially focused on the observation that something is up with whatever code is sending "all notes off" or flushing the MIDI data stream from the players.  Once again, we are using Windows 10 and this may be an issue related only to the Windows version of Opusmodus and the Windows OS.

 

It was very clear to us from our work on this issue that the Notation Viewer and the MIDI Player both output a final ghosted note of the previous note at a velocity of "1".  We have simply recorded this MIDI stream to our DAW and looked at the data to confirm this. It does not matter how long the rest (silence) is before the end of the playback (we used rests to pad out the duration).  Just at the cessation of the playback, there is a copy of the last note with a velocity of "1".  A standard note-off command as we know is the note # with a velocity of "0".  To us the data of this "ghosted note" is suspicious of a code error.

 

This observation is what makes us think that there is a bug in the MIDI playback code at the end of the MIDI playback.   It also seems to indicate that the "ports" and loopMIDI are not the issue.  It also seems to indicate that it is not a Windows 10 specific issue.  It seems that the issue lies in the code for the players and how they output the MIDI data stream.  But, of course, we have no real idea about the nature of this.

 

Finally, we have output directly from Opusmodus using the compile-score command in order to look at the midi data stream.  We assumed that there would be no "ghosted note" but it is in fact observed. This is very confusing to us as it seems to point to a system issue once again and not a "setup" issue.  The duration of the event is 1 tick and the velocity is 1.

image.png.dc16d6d3282efe47fde9814b66e1f74c.png

 

Here is the code used to create this output.

 


;;(setf alto-flute '((h d4 marc fs4 trem) (q e4 frull a4 vib a3 marc b3 vib) (h d4  -h)))

(setf pit '(d3 fs4 e4 a4 a3 b3 d4 d4))
(setf len '(h h q q q q h -h -w -w))
(setf vel '(mf))
(setf art '(marc trem frull frull marc marc vib vib))

(setf alto-flute-2 (make-omn
                    :length len
                    :pitch pit
                    :velocity vel
                    :articulation art))
                    


;;;---------------------------------------------------------
;;; Score and Layout

(def-score alto-flute
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (alto-flute-layout 'alto-flute))
 
  (alto-flute
   :omn alto-flute-2
   :port "01"
   :channel 1
   ;;:sound 'fujara-flute
   ;;:program '(def)
 
   )
  )

(compile-score 'alto-flute :output :midi :file "test")

 

 

We also tried this test:

 

;;(setf alto-flute '((h d4 marc fs4 trem) (q e4 frull a4 vib a3 marc b3 vib) (h d4  -h)))

(setf pit '(d3 fs4 e4 a4 a3 b3 d4 d4))
(setf len '(h h q q q q h -h -w -w))
(setf vel '(mf))
(setf art '(marc trem frull frull marc marc vib vib))

(setf alto-flute-2 (make-omn
                    :length len
                    :pitch pit
                    :velocity vel
                    :articulation art))
                    


;;;---------------------------------------------------------
;;; Score and Layout

(def-score alto-flute
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (alto-flute-layout 'alto-flute))
 
  (alto-flute
   :omn alto-flute-2
   :channel 1
   :sound 'gm
   :program 'acoustic-grand-piano))
 

(compile-score 'alto-flute :output :midi :file "test-gm")

This has created the same result.  Obviously, in this case, without using ports.
 

We are stumped.  If it is our system, it is beyond our understanding as to why Opusmodus would write this MIDI data-stream based on some attribute of our system that has nothing to do with the program itself.

It would be interesting to know if any other Windows version user has observed this issue during their work with the system.

Thanks again for taking your time to respond to me about this.  That is much appreciated.

 

rst

test.mid test-gm.mid

  • Author

Greetings all:

 

Further research on this small issue has revealed the following.

 

Using this OM code two midi files are created.  One for each of the OMN forms shown: pno1 and pno2.
 

(setf pno1 '(t gs2d3 p a1eb2f2 e. f1bb1 mp arp+ped -h e f1bb1 p))
(setf pno2 '(t gs2d3 p a1eb2f2 e. f1bb1 mp arp+ped -h -w -w -w))
    
;;;---------------------------------------------------------
;;; Score and Layout

(def-score piano
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :layout (bass-layout 'piano))
 
  (piano
   :omn pno2
   :channel 1
   :port 3
   ;;:sound 'gm
   ;;:program 'acoustic-grand-piano))
))
 

(compile-score 'piano :output :midi :file "test-pno2")

 

In the case of pno1, in which the OMN form does not end with a rest, the MIDI file does not show the 1-tick vel 1 "ghost note."

In the case of pno2, in which the OMN form DOES end with a rest, the MIDI file shows the "ghost note."

It seems that, at least on Windows, writing MIDI data when an OMN form ends with a rest may create this output.
 

test-pno1.mid test-pno2.mid

  • Author

Thanks for taking a look at this.  It may be something easy to fix if there is really an issue.

The optimal approach is to export the score in MusicXML format, as this will yield the best result.

Regarding MIDI export, there is indeed a ghost note present when saving the file.

Create an account or sign in to comment


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy