-- | Generic Input and Output
module CsoundExpr.Opcodes.Midi.Generic
    (midiin,
     midiout)
where



import CsoundExpr.Base.Types
import CsoundExpr.Base.MultiOut
import CsoundExpr.Base.SideEffect
import CsoundExpr.Base.UserDefined



-- | * opcode : midiin
--  
--  
-- * syntax : 
--  
--  >   kstatus, kchan, kdata1, kdata2 midiin
--  
--  
-- * description : 
--  
--  Returns a generic MIDI message received by the MIDI IN port
--  
--  
-- * url : <http://www.csounds.com/manual/html/midiin.html>
 
midiin :: MultiOut
midiin = opcode "midiin" args
  where args = []


-- | * opcode : midiout
--  
--  
-- * syntax : 
--  
--  >   midiout kstatus, kchan, kdata1, kdata2
--  
--  
-- * description : 
--  
--  Sends a generic MIDI message to the MIDI OUT port.
--  
--  
-- * url : <http://www.csounds.com/manual/html/midiout.html>
 
midiout ::
          (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
midiout k0status k1chan k2data1 k3data2 = outOpcode "midiout" args
  where args = [to k0status, to k1chan, to k2data1, to k3data2]