|
||
Title: Need Help! Mapping MIDIOX for class project? Post by sheilaj on Feb 4th, 2006, 12:47am Hi everyone. I'm working on a class excercise for Music Lab. This project involves the following MIDI file. You can download it from my brothers friends website... http://www.timelineperformance.com/sheilaj/MarcusMusicLab11.MID The teacher asked for us to identify his hypothetical function of control numbers 21 and 22 throughout the MIDI file; to identify their undefined purpose. My belief is control 21 has a value that matches an upcoming MIDI note number, that the note is a bogus note not correct for the performance. Also I found after every control 21 there is a matching control number 22 that has the same value, maybe some sort of backup for the preceeding control 21. Their primary purpose if used with some sort of advanced MIDI filter or mapper would be to remove or silence only the matching note number within their range. This can be confirmed as the MIDI file plays terribly unless I manually remove the notes that match each 21/22 values. Now I would like to see if MIDIOX can be mapped to eliminate the unwanted notes from playing, using the Control functions my teacher put into the MIDI file. I cannot seem to find a MIDI command to place into the MIDIOX mapper that can stop the upcoming note from playing! I even think his thought is Control number 22 is used to stop the note-off of the matching control number 21 from continuing in case the note is used in the real performance. Confusing huh?? Although I believe I have met the requirements for this lab, to identify the hypothetical use, I would be sure to get a 100% on this excercise (worth 25% of my lab credit) if I show a way to map the controls to remove the undesired notes using MIDI software. I have tried everything! Any help is sincerely appreciated! Thank you! Sheila ??? |
||
Title: Re: Need Help! Mapping MIDIOX for class project? Post by Peter L Jones on Feb 4th, 2006, 3:23am My only suggestion is to map CC21 to CC7 value 0 and CC22 to CC7 value 100 (or 127) - that is, use them to toggle channel volume. Depending how the sound source responds, that might work. Or you might hear drop outs instead of the wrong notes. |
||
Title: Re: Need Help! Mapping MIDIOX for class project? Post by Jamie OConnell on Feb 4th, 2006, 10:44pm I haven't looked at the MIDI file, but I don't think you can directly use data mapping to solve this. You can't map CC:21 into any event that will prevent a particular note from sounding. You could certainly do this with MIDI COM Scripting, although it would be a little more involved. Perhaps the CC:22 events are there to specify the end of the particular note edit? I mention this because an extra Note Off event will not sound or be harmful, and it would be good to have a bounded period for the edit. Some pseudo-code might go like: // Assume 3 BYTE MIDI Messages consist of Status // (actually Status + Channel), data1, data2 if (Status == Controller && data1 == 21) NoteEdit = data2 else if (Status == NoteOn && data1 == NoteEdit) discard event else if (Status == NoteOff && data1 == NoteEdit) discard event else if (Status == Controller && data1 == 22) NoteEdit = -1 // or some other non-note number value |
||
Title: Re: Need Help! Mapping MIDIOX for class project? Post by sheilaj on Feb 7th, 2006, 2:07am First thank you both: Peter Jones and Jamie OConnell for your help. You both offer strong suggestions. Peter, I'm concerned your solution would not only mute the so called bogus note, but also other notes that are true events in the MIDI file (between each Control 21 and 22 event). The information Jamie posted seems to offer hope I'm not looking for a solution that doesn't exist. All I can say Jamie is I am no programmer! The only reason what you posted made any sense is I took an MSDOS class in High School and retained a little about batch files. If the scripting you are referring to is like running batch files am I correct in assuming I'd need to convert the MIDI file to text format first before running your script? Also, how do I go about running a MIDI COM script? Is there some sort of documentation that explains how I do this? In my limited study time I tried to look through the forums scripting questions and didn't seem to find answers. I think if I get a decent handle on the task I can do this. My roommate (and classmate) bet me $5 there isn't a way. I'm out to prove her wrong! ;D Any further help especially towards answering my questions is most appreciated. I have like 10 days to try and knock the socks off my teacher insuring a 100% (which I really need) and win enough for lunch (about all $5 buys nowadays), but I can say the information posted has already proved beneficial towards my essay on this lab. Thank You!! Thank you ALL for your help!! Sheila |
||
Title: Re: Need Help! Mapping MIDIOX for class project? Post by Jamie OConnell on Feb 12th, 2006, 4:13pm Windows Script Host (WSH) is built in to Windows XP. MIDI-OX has a COM scripting interface that supports WSH. Look in the MIDI-OX help file under Scripting. |
||
MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1! YaBB © 2000-2003. All Rights Reserved. |