Jump to content

Recommended Posts

Posted

Hello,

 

I'm trying generate midi to play Amplesound guitars where each midi event is on a channel per string basis.   1st string is midi channel 1, 2nd string midi channel 2.   

 

I tried doing it the way I pasted below, but the midi ends up being 6 instruments rather than 1 instrument with notes on 6 channels.  So that doesn't work.  Is there a way to have articulations for notes, translate into a midi channel?  Or any other ideas?

 

 

 

(setf 1-string '(-h e4))
(setf 2-string '(-eq q c4 eq c4))
(setf 3-string '(-q h g3 q g3))
(setf 4-string '(-e qh e3 e e3))
(setf 5-string '(q. c3 f e c3 p h c3 f))
(setf 6-string '(-w))

(def-score chordio
    (:title "C Chord"
     :key-signature '(c major)
     :time-signature (get-time-signature 6-string :group :auto)
     :tempo 84)
  
  (6s :omn 6-string
      :channel 6) 
  (5s :omn 5-string
      :channel 5)
  (4s :omn 4-string
      :channel 4)
  (3s :omn 3-string
      :channel 3)
  (2s :omn 2-string
      :channel 2)
  (1s :omn 1-string
      :channel 1)
  )

;write to midi file
(compile-score *last-score* :output :midi  
               :file "/Users/me/desktop/foo.mid" )

 

 

 

Posted

MIDI Type 1 is generally preferred for compositional work, especially in software environments or for complex arrangements. Its structure facilitates easier editing and clearer organisation of parts, which is valuable for both composers and performers who need to make adjustments. Consequently, there was no compelling reason for Opusmodus to implement support for MIDI Type 0 format.

Posted

The problem with Midi Type 1 is that it is 1 midi channel per track.  Modern midi like MPE use multiple midi channels per track.   I have a Linnstrument and a Jamstik...   Both of these instruments send out multiple channels of midi intended for 1 instrument or 1 track.   Most software instruments these days can receive either MPE or multiple midi channels to one instrument, like Ampleguitars I mentioned earlier.   I was writing out the midi file so I could import it into Cubase to be imported onto one track...  I've figured out how to convert type 1 to type 0, so I can do it now, and not end up with 7 tracks when I import the midi.

 

But my approach in Opusmodus to generate this midi for one instrument seems very convoluted and forced.  I'm basically pretending 1 guitar instrument is 6 instruments.

 

I'm hoping I can do this with articulations on the notes, rather than the convoluted approach above...  if you see my other post, I ask about this.

 

I want to do composition triggering these types of multi-channel instruments, where Opusmodus seems tied to one channel per instrument..  If I can't do this with Opusmodus, that is fine and I understand, but I would like to know one way or the other..

 

 

Posted

May be you can try something like this:

 

;;;---------------------------------------------------------
;;; Parameters
;; CH for Channel
(add-program-attributes
'(ch1)
'(ch2)
'(ch3)
'(ch4)
'(ch5)
'(ch6)
)

(setf melo '((q c4 ch1 d4 ch2 e4 ch3 f4 ch4)(q g4 ch5 h. a4 ch6)))

(setf channel1 (filter-events 'ch1 melo))
(setf channel2 (filter-events 'ch2 melo))
(setf channel3 (filter-events 'ch3 melo))
(setf channel4 (filter-events 'ch4 melo))
(setf channel5 (filter-events 'ch5 melo))
(setf channel6 (filter-events 'ch6 melo))

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

(def-score guitar
    (:title "Title"
     :composer "Composer Name"
     :copyright "Copyright © "
     :key-signature 'chromatic
     :time-signature '((1 1 1 1) 4)
     :tempo 100
     :octave-shift '(c3 c6)
     :layout (guitar-down8-layout '(guitar1 guitar2 guitar3
                                    guitar4 guitar5 guitar6))
     )
  
  (guitar1
   :omn channel1
   :channel 1
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )

(guitar2
   :omn channel2
   :channel 2
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )

(guitar3
   :omn channel3
   :channel 3
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )

(guitar4
   :omn channel4
   :channel 4
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )

(guitar5
   :omn channel5
   :channel 5
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )

(guitar6
   :omn channel6
   :channel 6
   :sound 'gm
   :program 'acoustic-guitar-steel
   :volume 100
   :pan 64
   :controllers (91 '(60))
   )
  )

SB.

Posted

Thanks!  That is cool.

 

One question with the articulation approach.   In OMN, can multiple notes with different articulations occur at the same point in time?

 

thanks again

Posted

thanks

 

Isn't that 2 articulations on the same note or chord at one moment in time?

 

I meant if 2 notes sound at the same moment in time, can one of them have one articulation, and the other note have a different articulation?

 

 

 

Posted

So I think my assumption is correct.   You can't have different articulations on 2 notes that occur at the same time in OMN.

 

The issue is that e4 exists in 5 places on a guitar, on different strings, and they all have a different timbre.   

 

So in OMN if you have the chord    c4e4g4, how do I represent this is played on 4th string, 3rd string, and 2nd string.

 

I think I have come up with a clumsy solution.   The idea would be to create an articulation for every string combination

 

st-1, st-2, etc, st-6, st-65, st-64, etc. st-432.

 

I would need 63 articulations for a 6 string guitar.  Then I would need to parse chords, based on the articulation, and send that note to the proper single note voice.

 

c4e4g4 st-432 -> would end up

 

c4 on the string 4 voice

e4 on the string 3 voice

g4 on the string 2 voice

 

Does this sound like a good approach?

 

Join the conversation

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

Guest
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