Login / Register  0 items | $0.00 NewWhat is KVR? Submit News Advertise
Markleford
KVRAF
 
3304 posts since 30 May, 2002, from My chair

Postby Markleford; Mon Dec 13, 2004 9:50 am

vurt wrote:eg is based on electric ag is based on acoustic

:lol: :wink:

ebinary wrote:The metal plate is actually on the back of the neck, I think.

There's indeed a plate there, but I figure that you're going to be touching it almost all the time anyway while you're playing...

I got the EG version for a couple of weeks. Its ok, but we decided not to keep it for our band. Just a little small and cheap feeling.

Yes, I'd be loathe to use it live, but it almost begs to be used in a band by me! :) If I were gigging, I'd definitely have to check into reinforcing the neck somehow...

- m
Markleford's band, The James Rocket: http://www.TheJamesRocket.com/
Markleford's tracks: http://www.markleford.com/music/
Markleford's free MFX, DXi2, DR-008 modules: http://www.TenCrazy.com/
kara
KVRAF
 
1795 posts since 17 Mar, 2004, from Bretagne, the west of France

Postby kara; Tue Dec 14, 2004 5:24 am

vurt wrote:dont suppose you could get a screenshot of how its set up?please 8)


As promissed, my setup

Image

The Midi ch component is used to redirect all strings of the EZ to 1 midi channel.
The Midi patcher is used to filter out notes with low velocities (fretted notes). This is only use if I play synths with it, when I play guitar I want those to have hammer ons.
The MDNO component is used to send the notes off.
This component has to be side-chained to your midi in channel

Rony
User avatar
vurt
addled muppet weed
 
33792 posts since 25 Jan, 2003, from through the looking glass

Postby vurt; Tue Dec 14, 2004 9:31 am

thanks rony 8)
manytone
Mod-ulator
 
3091 posts since 30 Oct, 2000, from "Where I'm to, There I'll be"

Postby manytone; Tue Dec 14, 2004 9:38 am

Anybody seen these in Canada?
Even the Yamaha Dealers that i checked don't even list them.

Anyone?
Paul
Image
User avatar
vurt
addled muppet weed
 
33792 posts since 25 Jan, 2003, from through the looking glass

Postby vurt; Tue Dec 14, 2004 9:43 am

i got mine from argos on a managers special 8)
mbncp
KVRian
 
1253 posts since 17 Jul, 2003

Postby mbncp; Tue Dec 14, 2004 5:19 pm

Made this small vbscript that uses Midi-OX to convert sysex to notes.
See the different settings for specific behaviour
Usage:
1) Create a profile in Midi-OX, with 1 in (the EZ) and 1 out port (virtual port). The ports should not be attached and Notes and CCs should be filtered. Save the profile and close Midi-ox
2) Open Notepad and paste the code below.
Set Const MOX_PROFILE = "my full path mox profile.ini" in the script
3) Adjust parameters to your needs.
4) Save the script with a .vbs extension and dble-click to run the script.

In the following example ( SplitFret = 1 And lTuning = Array(0, 0, 0, 2, 2, 0) ). Playing open strings ( no frets ) will output a Em chord on channel 1, while the fretted notes will output to channel 2 (playing normaly).
Code: Select all
'-------------------------------------
Const MOX_PROFILE = "M:\MIDIOX\EZ-AG profile.ini" ' adjust
Const SplitFret = 1 ' 0..12   ' 0 = no splitting, Ex: 5 -> 0-4 left and 5-12 right
Const RememberLeftSplit = False ' True / False
'Left Split Settings
Const lChannel = 1 ' 1..16   or 0 To use chn 1 - 6
Const lTranspose = -12 ' Global Transpose
Const lFretDnModes = 0 ' -1, 0, 1..127, 128
Const lFretUpModes = -1 ' -1, 0, 1..127, 128
lTuning = Array(0, 0, 0, 2, 2, 0) ' transpose by string
'Right Split Settings
Const rChannel = 2 ' 1..16   or 0 To use chn 7 - 12
Const rTranspose = 0 ' Global Transpose
Const rFretDnModes = 0 ' -1, 0, 1..127, 128
Const rFretUpModes = 0 ' -1, 0, 1..127, 128
rTuning = Array(0, 0, 0, 0, 0, 0) ' transpose by string
' fret modes:
' -1: do nothing
'  0: noteoff
'  1..127 : noteon velo
'  128 : use last velo
'--------------------------------------



RememberLeftSplit = True works this way:
Playing on the left side of the split will play normally, but as soon as you hit a fret on the right split, playing open strings will play the chords you last played on the left split.
As soon as you press a fret on the left split, things are back to normal.
Note that strings that are not played while 'recording' the left split, won't play at all when played open once a fret has been pressed on the right split. This trick could be used to mute the open string play.
Confused .. ?

Code: Select all
' MIDIOX EZ-AG
' Copyright (c) 2004 mbncp
' v. 1.05
Option Explicit
'-------------------------------------
Const MOX_PROFILE = "M:\MIDIOX\EZ-AG profile.ini" ' adjust
Const SplitFret = 3 ' 0..12   ' Ex: 5 -> 0-4 left and 5-12 right
Const RememberLeftSplit = True ' True / False
'Left Split Settings
Const lChannel = 1 ' 1..16   or 0 To use chn 1 - 6
Const lTranspose = -12 ' Transpose
Const lFretDnModes = 0 ' -1, 0, 1..127, 128
Const lFretUpModes = -1 ' -1, 0, 1..127, 128
lTuning = Array(0, 0, 0, 0, 0, 0) ' transpose by string
'Right Split Settings
Const rChannel = 2 ' 1..16   or 0 To use chn 7 - 12
Const rTranspose = 0 ' Transpose
Const rFretDnModes = 0 ' -1, 0, 1..127, 128
Const rFretUpModes = 0 ' -1, 0, 1..127, 128
rTuning = Array(0, 0, 0, 0, 0, 0) ' transpose by string
' fret modes:
' -1: do nothing
'  0: noteoff
'  1..127 : noteon velo
'  128 : use last velo
'--------------------------------------
Dim mox, StdOut, roots, split
Dim lGts(6) , rGts(6), Player(6)
Dim lTuning, rTuning, lRecMode
Const A = 128
Init
StartMox

Sub Init()
  Dim n, chn
  Set StdOut = WScript.StdOut
  roots = Array(-1, &H4C, &H47, &H43, &H3E, &H39, &H34)
  For n = 1 To 6
    Set lGts(n) = new CGtStr
    If lChannel = 0 Then chn = n-1 else chn = lChannel-1
    lGts(n).Init roots(n), chn, lTranspose+lTuning(n-1), lFretDnModes, lFretUpModes
    Set rGts(n) = new CGtStr
    If rChannel = 0 Then chn = n+5 else chn = rChannel-1
    rGts(n).Init roots(n), chn, rTranspose+rTuning(n-1), rFretDnModes, rFretUpModes
    Player(n) = False ' Left Split
    lRecMode = True
  Next
  If SplitFret < 1 Then split = 13 else split = SplitFret
End Sub

Sub Mox_SysExInput( sx )
  Dim func, c1, c2, n
  func = CLng(Mid(sx, 17, 1))
  c1 = CLng(Mid(sx, 20, 1))
  c2 = CLng("&H" & Mid(sx, 22, 2))
  ' PrintLn sx
  ' PrintLn func & vbTab & c1 & vbTab & c2
  Select Case func
    Case 1
      c2 = c2 - roots(c1)
      If c2 < split Then
        If RememberLeftSplit Then
          If Not lRecMode Then
            lRecMode = True
            For n = 1 To 6
              lGts(n).SetRecMode(True)
            Next
          End If
        End If
        lGts(c1).FretDown c2
      Else
        If RememberLeftSplit Then
          If lRecMode Then
            lRecMode = False
            For n = 1 To 6
              lGts(n).SetRecMode(False)
            Next
          End If
        End If
        rGts(c1).FretDown c2
      End If
    Case 2
      c2 = c2 - roots(c1)
      If c2 < split Then lGts(c1).FretUp c2 Else rGts(c1).FretUp c2
    Case 5
      If c2 = 0 Then
        rGts(c1).NoteOff : lGts(c1).NoteOff
      Else
        If rGts(c1).GetCount() Then rGts(c1).NoteOn c2 Else lGts(c1).NoteOn c2
      End If
    Case 6 ' +/- buttons
    Case 7 ' Sound Select /  Song Select buttons
  End Select
End Sub

Sub Mox_MidiInput( ts, port, stat, dat1, dat2)
  'mox.OutputMidiMsg -1, stat, dat1, dat2
End Sub

Class CGtStr
  Private Count, Hi, Play, Frets(12), stat, root, lvel, lastPlay
  Private Transp, FretDnMode, FretUpMode, recMode
  Sub Init(r, ch, tr, fdm, fum)
    Dim n
    Count = 0 : Play = -1 : root = r
    For n = 0 To 12
      Frets(n) = False
    Next
    stat = &H90 + ch : Hi = 0 : lvel = 64
    Transp = tr : FretDnMode = fdm : FretUpMode = fum : lastPlay = -1 : recMode = True
  End Sub
  Sub FretDown(f)
    Frets(f) = True
    Count = Count+1
    If f < Hi Then Exit Sub
    Hi = f
    If FretDnMode = -1 Then Exit Sub
    NoteOn FretDnMode
  End Sub
  Sub FretUp(f)
    Dim n
    Frets(f) = False
    Count = Count-1
    If f < Hi Then Exit Sub
    If FretUpMode > -1 Then NoteOn FretUpMode
    Hi = 0 : f = f-1
    If Count = 0 Then Exit Sub
    For n = f To 1 Step -1
      If Frets(n) Then
        Hi = n
        Exit For
      End If 
    Next
    If FretDnMode > 0 Then NoteOn FretDnMode
  End Sub
  Sub NoteOff
    If Play < 0 Then Exit Sub
    mox.OutputMidiMsg -1, stat, Play, 0
    Play = -1
  End Sub
  Sub NoteOn(vel)
    Dim k
    NoteOff
    If vel = 0 Then exit sub
    If recMode Then
      Play = Hi + root + Transp
      LastPlay = Play
    Else
      Play = lastPlay
    End If
    If Play < 0 Or Play > 127 Then
      Play = -1 : Exit Sub
    End If
    If vel = 128 Then vel = lvel Else lvel = vel
    mox.OutputMidiMsg -1, stat, Play, vel
  End Sub
  Sub SetRecMode(md)
     recMode = md
     If recMode Then LastPlay = -1
  End Sub
  Function GetCount()
    GetCount = Count
  End Function
End Class

Sub AllNotesOff()
  Dim n
  For n = 1 To 6
    lGts(n).NoteOff
    rGts(n).NoteOff
  Next
End Sub

Sub StartMox()
  dim pIN, pOUT
  Set mox = WScript.CreateObject("Midiox.MoxScript.1", "Mox_") 
  If mox.InstanceNumber < 1 Then
    MsgBox "Failed creating Midiox"
    Exit Sub
  End If
  mox.LoadProfile MOX_PROFILE
  If mox.OpenMidiInCount < 1 Then
    MsgBox "No open IN port"
    Exit Sub
  End If
  pIN = mox.GetInPortID(mox.GetFirstOpenMidiInDev)
  If mox.OpenMidiOutCount < 1 Then
    MsgBox "No open OUT port"
    Exit Sub
  End If
  pIN = mox.GetOutPortID(mox.GetFirstOpenMidiOutDev)
  mox.DivertMidiInput = 1
  mox.FireMidiInput = 1
  MsgBox "Click OK to terminate", vbOKOnly, "EZ-AG midiox sysx"
  AllNotesOff
  mox.FireMidiInput = 0
  mox.DivertMidiInput = 0
End Sub

Sub PrintLn(s)
  StdOut.WriteLine s
End Sub


v 1.02 few changes
v 1.03 bug fix
v 1.04 Added splitting, individual string transposition
Use SplitFret = 0 for normal use ( no split ), then only the left parameters are used
v 1.05 bug fix, added RememberLeftSplit (True / False)
Last edited by mbncp on Fri Dec 17, 2004 4:32 am, edited 1 time in total.
AndrewSimon
KVRAF
 
2566 posts since 29 Mar, 2004, from Phoenix AZ USA

Postby AndrewSimon; Wed Dec 15, 2004 11:16 pm

Cool bucodi

But where can I find the MDNO.DLL ?


:?:
SecondSkin
KVRian
 
587 posts since 15 Dec, 2003, from Hangin' out with my 5 year old

Postby SecondSkin; Thu Dec 16, 2004 11:30 am

In the example ( SplitFret = 1 And lTuning = Array(0, 0, 0, 2, 2, 0) ). Playing open strings ( no frets ) will output a Em chord on channel 1, while the fretted notes will output to channel 2 (playing normaly).


WOW! I just realized how cool that would be. Damn good stuff. Maybe we should keep this stuff secret for a while... :wink:
And all life's fears
Can invade my ears
I can handle it
Markleford
KVRAF
 
3304 posts since 30 May, 2002, from My chair

Postby Markleford; Thu Dec 16, 2004 12:12 pm

Well, I'm personally not planning on keeping it secret once I start releasing this kind of stuff myself. 8)

But I can never fault Marc's code except for the fact that he prefers VB-style syntax, while my stuff is in Javascript. :P However, I might try to put a GUI on it by coding it up in DHTML.

One thing we've yet to do is send systex information back to the EZ to write our own words on the LED frets. :hihi:

One could only hope that these custom interpreters catch on and Yamaha realises they could have a hit on their hands if they re-released the EZ's for the soft-synth market rather than as a "learning instrument".

- m
Markleford's band, The James Rocket: http://www.TheJamesRocket.com/
Markleford's tracks: http://www.markleford.com/music/
Markleford's free MFX, DXi2, DR-008 modules: http://www.TenCrazy.com/
User avatar
vurt
addled muppet weed
 
33792 posts since 25 Jan, 2003, from through the looking glass

Postby vurt; Thu Dec 16, 2004 12:15 pm

AndrewSimon wrote:Cool bucodi

But where can I find the MDNO.DLL ?


:?:



http://haydxn.whiterabbitdesign.co.uk/MDNOv1c.rar


our good friend haydxn left this link on page 4 :wink:
mbncp
KVRian
 
1253 posts since 17 Jul, 2003

Postby mbncp; Fri Dec 17, 2004 5:33 am

Markleford wrote:Well, I'm personally not planning on keeping it secret once I start releasing this kind of stuff myself. 8)

But I can never fault Marc's code except for the fact that he prefers VB-style syntax, while my stuff is in Javascript. :P However, I might try to put a GUI on it by coding it up in DHTML.

One thing we've yet to do is send systex information back to the EZ to write our own words on the LED frets. :hihi:

One could only hope that these custom interpreters catch on and Yamaha realises they could have a hit on their hands if they re-released the EZ's for the soft-synth market rather than as a "learning instrument".

- m


For experimenting vbs or js are ok, but I guess that a standalone app would do a better job.
I wouldn't mind that Yamaha is giving us the tools to reprogram the chip :hihi:
To bad they used sysex instead of NRPN , but it's actually great that we have access to the raw data ( btw, thanks for having remind me this, I wasn't really happy using mfx).

Now, there is still some work, I would like some 'smart' hammering and glissando modes.
Also, I have a foot controller with 10 buttons and 2 pedals, could be used to change modes or settings.

I think I have some decent code (C++) that handles MidiIO (incl. sysex), let me know :wink:

Marc

btw, I updated the script to 1.05, make sure to give it a try ... after Christmas :hihi:
Markleford
KVRAF
 
3304 posts since 30 May, 2002, from My chair

Postby Markleford; Fri Dec 17, 2004 7:36 am

mbncp wrote:For experimenting vbs or js are ok, but I guess that a standalone app would do a better job.

But when doing a standalone app, you again either have to implement some sort of scripting or intense configuration for the user, or else you have to know every option to include!

I suppose you could always host MfxScript in it... ;)

I wouldn't mind that Yamaha is giving us the tools to reprogram the chip :hihi:

I wonder if you could turn it into an arpeggiator. :D

To bad they used sysex instead of NRPN , but it's actually great that we have access to the raw data ( btw, thanks for having remind me this, I wasn't really happy using mfx).

Yes, it's amazing that they had the idea to include that.

I do have a bit of difficulty to try to decide what should be put into the "MIDI translator" and what can be done through MFX. I already had a few 6-channel MFX plugs for use with my brother's Roland GR-50, so I could do transpositions and stuff that way.

But I suppose a 100% native non-MFX solution would be useful to more people.

Now, there is still some work, I would like some 'smart' hammering and glissando modes.

I'd already started the "straight" keyboard mode, the guitar mode (using highest note as priority) with good hammering, and using the strings as drum triggers.

For glissando playing, I figured that it would be best to delay note-off messages by a few ticks to ensure an overlap between notes.

Also, I have a foot controller with 10 buttons and 2 pedals, could be used to change modes or settings.

Sounds like my ART X-15 Ultrafoot controller! :D

For right now, however, I was using the Sound buttons to change modes. I also did an "All Notes Off" on program change, too.

I think I have some decent code (C++) that handles MidiIO (incl. sysex), let me know :wink:

Well, if you want to share, I'd certainly welcome it. I suppose looking into the DirectMusic API might be worth the effort as well.

btw, I updated the script to 1.05, make sure to give it a try ... after Christmas :hihi:

Only a week away! :D

- m
Markleford's band, The James Rocket: http://www.TheJamesRocket.com/
Markleford's tracks: http://www.markleford.com/music/
Markleford's free MFX, DXi2, DR-008 modules: http://www.TenCrazy.com/
mbncp
KVRian
 
1253 posts since 17 Jul, 2003

Postby mbncp; Fri Dec 17, 2004 7:19 pm

Markleford wrote:But when doing a standalone app, you again either have to implement some sort of scripting or intense configuration for the user, or else you have to know every option to include!


Instead of using Midi-Ox, we could use Mabry midiio32.ocx. It is now freeware and the source is provided as well. It can be found here:
http://home.modemss.brisnet.org.au/~mlevoi/midi.html (mabrymidi.zip)
I made a simple MidiThru app to test it and it seems to work ok. Install midiio32.ocx, and save the following code as .hta, (NOT .html) to avoid xp freaking out, and dble-click.

Code: Select all
 <HTML>
<HEAD>
  <HTA:APPLICATION ID="theApp"
    APPLICATIONNAME="MidiThru"
    BORDER="dialog"
    CAPTION="yes"
    MAXIMIZEBUTTON = "no"
    SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes"
    SYSMENU="yes"
    ICON="%SystemRoot%\PCHealth\HelpCtr\System\images\24x24\arrow_green_normal.bmp"
    WINDOWSTATE="normal">
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>MidiThru</TITLE>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--
Option Explicit
 ' StateConstants
Const  msMSClosed = 0
Const  msMSOpen = 1
Const  msMSStarted = 2
Const  msMSStopped = 3
Const  msMSPaused = 4
 ' OutActionConstants
Const  msMOANone = 0
Const  msMOAOpen = 1
Const  msMOAClose = 2
Const  msMOAReset = 3
Const  msMOAStart = 4
Const  msMOAStop = 5
Const  msMOAQueue = 6
Const  msMOAImmediate = 7
Const  msMOATimer = 8
Const  msMOAPause = 9
 ' InActionConstants
Const  msMIANone = 0
Const  msMIAOpen = 1
Const  msMIAClose = 2
Const  msMIAReset = 3
Const  msMIAStart = 4
Const  msMIAStop = 5
Const  msMIARemove = 6

Sub button1_onclick
  If MIn.State = msMSStarted Then
    MIn.MessageEventEnable = False
    MIn.Action = msMIAStop
    button1.Value = "Start"
  Else
    If MIn.State = msMSClosed Or MOut.State = msMSClosed Then
      MsgBox "Select your Midi Devices first", vbOKOnly, "Error"
      Exit Sub
    End If
    MIn.MaxSysexSize = 32
    MIn.MessageEventEnable = True
    MIn.Action = msMIAStart
    button1.Value = "Stop"
  End If
End Sub

Sub MIn_Error
  MsgBox "MInErr"
End Sub

Sub MOut_Error
  MsgBox "MOutErr"
End Sub

Sub window_onload
  dim op, c, n
  On Error Resume Next
  window.resizeTo 300, 300
  On Error Goto 0
  c = MIn.DeviceCount - 1
  MidiInList.options(0).text="<No Midi In Port>"
  for n = 0 to c
    MIn.DeviceID = n
    set op = document.createElement("OPTION")
    op.value = n+2
    op.text = MIn.ProductName
    MidiInList.add(op) '()
  next
  MidiInList.selectedIndex = 0
  c = MOut.DeviceCount - 1
  MidiOutList.options(0).text="<No Midi Out Port>"
  for n = -1 to c
    Mout.DeviceID = n
    set op = document.createElement("OPTION")
    op.value = n+2
    op.text = MOut.ProductName
    MidiOutList.add(op) '()
  next
  MidiOutList.selectedIndex = 0
End Sub

Sub window_onunload
  If MIn.State = msMSStarted Then button1_onclick
End Sub

Sub MidiOutList_onchange
  If MIn.State = msMSStarted Then button1_onclick
  MOut.Action = msMOAClose
  if MidiOutList.selectedIndex = 0 then exit sub
  MOut.DeviceID = MidiOutList.selectedIndex - 2
  MOut.Action = msMOAOpen
  if Mout.HMidiDevice = 0 then
    MsgBox "Unable to open selected MidiOut device"
    MidiOutList.selectedIndex = 0
  end if
End Sub

Sub MidiInList_onchange
  If MIn.State = msMSStarted Then button1_onclick
  MIn.Action = msMIAClose
  if MidiInList.selectedIndex = 0 then exit sub
  MIn.DeviceID = MidiInList.selectedIndex - 1
  MIn.Action = msMIAOpen
  if MIn.HMidiDevice = 0 then
    MsgBox "Unable to open selected MidiIn device"
    MidiInList.selectedIndex = 0
  end if
End Sub

Sub MIn_Message
  do while MIn.MessageCount > 0
    MOut.Message = MIn.Message
    If MOut.Message = &HF0 Then
      MOut.Buffer = &HF0 & MIn.Buffer & &HF7
    Else 
      MOut.Data1 = MIn.Data1
      MOut.Data2 = MIn.Data2
      MOut.Action = msMOAImmediate
      MIn.Action = msMIARemove
    End If 
  loop
End Sub

-->
</SCRIPT>
</HEAD>
<BODY>
<P align=left>MidiIn&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<SELECT id=MidiInList
style="WIDTH: 206px" name=select1> <OPTION selected></OPTION></SELECT></P>
<P>MidiOut&nbsp;&nbsp; <SELECT id=MidiOutList style="WIDTH: 210px" name=select2>
  <OPTION selected></OPTION></SELECT></P>
<P><INPUT id=button1 type=button value=Start name=button1></P>
<P>
<OBJECT id=MOut classid=clsid:852E65AA-72F8-11CF-840E-444553540000><PARAM NAME="_Version" VALUE="65537"><PARAM NAME="_ExtentX" VALUE="847"><PARAM NAME="_ExtentY" VALUE="847"><PARAM NAME="_StockProps" VALUE="0"><PARAM NAME="DeviceID" VALUE="-1"><PARAM NAME="VolumeLeft" VALUE="65535"><PARAM NAME="VolumeRight" VALUE="65535"></OBJECT>
</P>
<P>
<OBJECT id=MIn classid=clsid:852E65A5-72F8-11CF-840E-444553540000><PARAM NAME="_Version" VALUE="65537"><PARAM NAME="_ExtentX" VALUE="847"><PARAM NAME="_ExtentY" VALUE="847"><PARAM NAME="_StockProps" VALUE="0"><PARAM NAME="DeviceID" VALUE="0"><PARAM NAME="MessageEventEnable" VALUE="0"><PARAM NAME="MaxSysexSize" VALUE="0"></OBJECT>
</P>
</BODY>
</HTML>
 
Markleford
KVRAF
 
3304 posts since 30 May, 2002, from My chair

Postby Markleford; Fri Dec 17, 2004 7:56 pm

mbncp wrote:Instead of using Midi-Ox, we could use Mabry midiio32.ocx. It is now freeware and the source is provided as well. [...] I made a simple MidiThru app to test it and it seems to work ok.

Very nice solution. :) This will come in handy for a variety of projects.

So, is it very much advantageous to code this into a standalone app? At least it will allow for easier file operations to load and save configurations. And there would be no extra MIDI-OX window that has to appear.

Also it could have a better GUI, though I can do cool things with DHTML! 8)

As for negative arguments, MIDI-OX seems to have a cleaner interface for most things: to do this same MidiThru app is much simpler in MIDI-OX script! Of course, if you're writing a whole app then you'll wrap up everything in classes, just as MIDI-OX has: just more work for a stand-alone solution. ;)

I suppose we have much time to decide. For now, we might as well collect ideas for features and prototype in MIDI-OX!

Speaking of which, my wife is letting me play with the EZ-EG again with the promise that I *must* give it back to her for gift-wrapping before xmas-eve! :hihi: So hopefully I'll share my script tomorrow after I tweak it a little more.

- m
Markleford's band, The James Rocket: http://www.TheJamesRocket.com/
Markleford's tracks: http://www.markleford.com/music/
Markleford's free MFX, DXi2, DR-008 modules: http://www.TenCrazy.com/
AndrewSimon
KVRAF
 
2566 posts since 29 Mar, 2004, from Phoenix AZ USA

Postby AndrewSimon; Fri Dec 17, 2004 9:48 pm

Wow I am lost.
I couldn't make the MIDI-OX code work.
Then again my computer skills are limited.
Is the MIDI-OX program suppose to be open and running?
When I click on the .vbs file it opens MIDI-OX and the script seems to be running but if I open my DAW
it reports that the MIDI ports are "used" by another application and can not be initiated.
Also if I do not connect my EZ-AG port to the Virtual port I do not get MIDI to get through to the DAW.

But anyway I can "play piano" pretty well with the EZ-AG when it comes to cord progressions and decorated with licks.(I block notes with velocities below 17)
I also found "playing Choir" from Atmosphere very enjoyable.
Upper 3 stings are the "male choir" and I use them to play long cords while the "female choir" lower 3 strings play the melody.

My dream is to improvise fast solo lines with Rhodes Elektrik Piano but so far this is not possible.

I think a "Mute pedal" would come very handy here.
I think it should be a very short action pedal for fast playing with basic on/off.

The up position should be in the "Mute" state.
I think this would feel more natural to me.
Press to hear sound , release to mute.(kinda goes together with the right hand)

I already found the perfect pedal for this (cheap Yamaha sustain pedal, very fast)

Now I am about to open the EZ-AG to add a mute jack to it.
I assume I will need to attach one lead to the EZ-AG mute plate ......... and the other lead to GROUND??? ..........DOES THAT MAKE SENSE?


I am very exited about all this and I am happy to hear people with programming skills are looking into this as well.

I think with some cleaver logic programming a lot of things are possible.
For example IF the last note was lets say on the first string first fret (F) and now we are jumping to the other end on the neck , lets say C on the first string the "logic program" can safely conclude that a hand position change has occurred and send a "MUTE all notes" before playing the high C.
Maybe even several "logic settings" for different playing styles.

:shock: :shock: :shock:
:-o :-o :-o

Also can anybody explain to me why is there a different reaction of EZ-AG if I set the Control (internal sound) to OFF as oppose to leaving it in the ON position and lowering the Volume to zero?
It seems in the ON position slides and fast moves on one string react better. (on the other hand it creates a total mess in some playing styles.

I also wanted to share that when I play live I leave the display on SOUND preset 18.
This way a quick tap on the +/- can take me one octave up or down. (17 is one octave down, 19 is one octave up)
Last edited by AndrewSimon on Fri Dec 17, 2004 10:01 pm, edited 2 times in total.
PreviousNext

Moderator: Moderators (Main)

Return to Everything Else (Music related)