Skip to main content
Topic: Midi messages (Read 1997 times) previous topic - next topic

Midi messages

Hi
I'm a newbie to the forum and I have to state 'up front' I am not a composer. In fact, up to two years ago I couldn't read a note of music. When I retired I decided to learn to play piano. I'd bought NWC to help with my daughter's Music secondary education about ten years ago and I thought that it would be useful as an aid for my own lessons. I upgraded to the latest version and it did help; I could now listen to practice pieces to see how they should sound. However, my hands aren't as limber as they once were and I have difficulty getting the right timing for the notes. Since I spent many years developing electronics I thought that, if I could intercept the midi stream, I could build an interface ( something like a data glove) out of a microcontroller and mobile phone buzzers.  My idea was to decode the midi stream and use the glove(s) to signal to my hands when and for how long I needed to press the notes. This would help give me tactile feedback to tie in with the notes that I was playing. I know there are already 'apps' that can give visual feedback but reading the pitch of the notes and, at the same time, watching a red dot bounce along a display is beyond my beginner skills. I am comfortable with the task of creating the hardware however when I come to write the software for the microcontroller I need to know how the data is transmitted from the midi interface on Noteworthy. I have looked online and there is lots of general stuff about data packets, note on signals etc. but I can't find any Noteworthy specific info. Could someone please point me to a file/description/example of what Noteworthy actually does when it sends data to midi? How does it allocate staves, instruments etc. and channel the notes into the Midi stream?

Re: Midi messages

Reply #1
Hi Jmoly,
I know this won't seem very helpful, but NWC just sends a standard MIDI stream (there are a couple of idiosyncrasies but most products have these).

The channel a staff uses is whatever NWC assigns at the time the staff was created UNLESS you change it (staff properties, MIDI tab).  If you use the same template every time you create a file, and the required staff is in the template, then the channel will automatically be the same for that staff in every file.  Everything else is probably best gleaned from a MIDI spec sheet.  There really isn't anything special about NWC MIDI.

I find the idea of your project quite interesting.  Please let us know how you go, and if it helps in the way you hope it will.
I plays 'Bones, crumpets, coronets, floosgals, youfonymums 'n tubies.

Re: Midi messages

Reply #2
Dear Jmoly,

First of all, you can export NWC files as MIDI 0 and MIDI 1 files. That's probably not what you want, but I mention it because it is easy and may be useful to get an idea on how NWC is transcoding the scores into MIDI.

An other approach is to install specific midi tools and send the NWC output not to your speakers, but to this software.

A (very) old tool is Midi-ox ( http://www.midiox.com ). Only Windows NT and Windows 2000 are mentioned, but - with adapted compatibility mode - I was able to install it on Windows 10.

Don't forget to install also virtual patch cables. Midi Yoke can be found on the same website, but there are also alternatives available like for instance LoopBe.

Once you have installed the patch cable(s) and the midi software, you can select the virtual patch cable as midi-output in NWC. I don't know, but you may need to reboot before the patch cables are recognized.
Start midi-ox, configure it to capture the data on the (in NWC selected) patch-cable, and open the input monitor. When you start playing a score in NWC, you should now see the midi commands in the window. If you have also correctly configured an output device you will also hear your music. There are a lot of different options, but documentation is hard/impossible to find. So it is up to you to check if there are other options that will serve your project.

Bart

Re: Midi messages

Reply #3
Hi Jmoly -

what you want to do on some first level, is more or less similar to me, when I drive my crank organ directly from NoteWorthy. What I use:
- A Midisport UNO
- and a j-omega "MIDI-to-parallel" board, which has a single output for every note.

Whether you actually want the latter, or replace it with something you design yourself, you must decide: When you want to signal to your hands, you need to know which note is played by which finger, i.e., the "fingering" comes into play. But, by default, Noteworthy does not know this, so it would not know which finger should be signalled ... from here on, this will be a research project:

- Do you want to add information to an NWC score about the fingering (e.g. as text), which is then somehow transmitted in the MIDI channel to your device (not easy - NWC does not transmit the text)
- or do you want to add some "artificial intelligence" on your side that calculates fingering (very hard, I'll tell you!)
- or can you add the fingering as NWC lyrics, which are then transmitted in the NWC stream? (are they? - I don't know off hand)
- or ... whatever else ...

Another idea: Don't signal the note length, but signal only the "beat" (quarters or whatever). Let Noteworthy play the piece (slowly!) in front of you, so that you see the notes to be played; and at the same time let a "beat track" send beats to your hand, so that you can feel the beat and thus feel when you must go on to the next note (oh, of course you must learn to recognize the note lengths - but there are not that many different ones, so you'll manage this).

I hope you find some way forward!

Regards
Harald M.

Re: Midi messages

Reply #4
Just a few lines to say thank you to all who have replied. I think that the information I need could be gleaned from the Midi-ox application and I understand the difficulties posed by assigning the fingering. However, on that 'score'  :)  I may be able to bypass the problem. I have no difficulty reading the pitches of the notes and I tend to have a fairly loose approach to which fingers hit which keys so I think what I am after is the beat (not sure if this is the correct term) which I should be able to get from the vibration patterns in the gloves.
As with all my projects these days, real life tends to disrupt them, so I haven't even built the hardware yet. I will eventually get around to it but "I may be some time"  . Thanks again for the help: I will report back.