Creating compostion via MIDI

• Dec 16, 2012 - 20:13

To all,
Hi there. I'm a first use rookie. I need some assistance. I have a young composer in the household who is beginning to compose piano music. Using my Yamaha piano's MIDI to USB interface, is there a way to capture the song and notate it using Musescore? What is the procedure? Thanks in advance.


Comments

MuseScore is not capable of capturing a live performance. Moreover a live performance is at the same time more and less than a sheet music. It has some feeling that a sheet music doesn't have. And a sheet music has some standardized way to represent tempo, dynamics that is not obvious from a performance.

That being said, you can record your young improvisor with a MIDI recorder such as this free MIDI recorder, save the result as a MIDI file, and open the MIDI file in MuseScore. Then you should be able to edit it further so it looks like an actuall sheet music.

In reply to by [DELETED] 5

Food for thought:

This comes up pretty often, and it does seem pretty logical on the surface to expect to be able to do something like this directly within MuseScoire. After all, if you can do it in two steps (first record MIDI file, then import it), why not in one? Well, the reason I guess is that implementing a real time recording mode is more trouble than it's worth.

So, what about making sure the plugin framework has enough meat to allow one to write a plugin to integrate a MIDI recorder / sequencer in this way?

Seems with appropriate framework support, a plugin would be pretty simple:

1) invoke MIDI sequence, hopefully finding an open source one that has a mode that will automatically save the current sequence to a filename specified on the command line

2) open that MIDI file as a new score

3) copy contents of resulting score to current insertion point in current score

Of course, there probably isn't a MIDI program out there that really would lend itself to this type of invocation, but it seems a simple enough modification to make to any open source sequencer.

In reply to by Marc Sabatella

Thanks for the feedback. I'll try to record the live piano performance, then convert it to a simplistic score. The feeling and texture can be added manually. What I was really looking to do was get the notes down on paper or into a file, then edit from there. I agree that a capture program can't annotate the subtleties of the performance.

In reply to by dwfleig

As you note, live music, unlike notation has numerous small variations in time, rhythm, expression etc. Many years ago I tried to do the same thing. Among many other things, I discovered that:

"Hands" needed to be recorded separately, as trying to separate them after the fact can be very hard,
The music had to be played in using a metronome and had to be very accurate in terms of timing and articulation (for example, not holding a note too long)
Tempo generally had to be slower (which can throw off performance)
and
One needed to quantize that input so as to get a usable result which still required a lot of massaging.

I'm sure there have been many advances since I did this (the '90s), and I don't mean to discourage you, but I think you will find it quite a major undertaking unless the music played is very simple.

Good luck and best regards,

In reply to by dwfleig

Realistically, your best chance of success is probably to capture the performance, import the MIDI file, then start over with a brand new score. Taking existing notes that are almost certainly not well-presented rhythmically and altering them into recognizable rhythms is almost always much more work than entering the notes from scratch, with just about any notation program.

In reply to by Marc Sabatella

Are folks recommending scoring the piece manually, by hand using pencil and paper, then entering the manuscript into Musescore for printing and cleanup? It's a very simple piece by comparison to something that might be played by a professional symphony. My daughter's music teacher is reluctant to take this task on, even after offering to pay for a few extra lessons. The teacher seems to think it can be done electronically. So, I'm confused. I guess I can record this note for note, chord for chord by hand. I was just hoping for an easier way.

In reply to by dwfleig

I would record the piece with a Midi Squencer.

There are a number of these around, both freeware and commercial.

Once you have it captured in MIDI format then you need to quantise it so that it fits in properly with conventinal notation timings.

AT this point you can import it into MuseScore.

You then need to work with two scores - the imported MIDI file and a new score formatted in the way you want the final score to look.

You then use copy and paste to transfer sections from one to the other.

I'm afrtaid the task will be non-trivial. It will be slightly less work-intensive than capturing the performanc note by note with pencil and paper however.

HTH
Michael

In reply to by dwfleig

I never said anything about pencil, but the process of recreating the score in MuseScore won't be any *easier* than doing it with oencil and paper. It will just look nicer, and you'll have the advanage of listening to playback as you go. The real advantage, though, will be in recording the performance to MIDI and printing out the crude notation MuseScore can create from that to use as refeence.

In reply to by [DELETED] 5

When using midi input, there is no way to insert timing in real time. If the other tracks/instrument staves could be in playback, then the input (midi note recording) on the one staff/track could also make reasonable assumptions on note length (note off-note on) and the rest length in-between. Is there software out there that does this already? (yes, I'm a newbie at Midi recording). Thanks.

In reply to by nmeet

You don't; MuseScore has no recording capabilities. You set the click track in whatever program you use to record the MIDI file in the first place - so you hear the metronome while you are playing and can hopefully keep time to it.

It's still going to be hit or miss; real-time MIDI import is generally a very inefficient and inexact / inaccurate way of creating a score. But FWIW, MuseScore 2.0 Beta 1 will do a much better job than the current version (1.3) does.

Lasconic above gave a link to https://code.google.com/p/virtualpiano/ for a free application called MidiPiano. Half way down that page some youtube videos are introduced by the heading, "Here some videos from powerful gays:" I'm sure everyone stands with me in applauding MidiPiano's support for diversity.

I've never used that feature in other notation software, but I recall a friend telling me that notation can be done in other famous commercial software directly from the piano keys using a particular key as measure marker. E.g. let the lowest A key be the measure marker. You hit that A, then play the measure and hit that A again. This way the recording software can adjust small tempo mistakes because it knows where a measure starts and ends, so it can fill any gaps or cut longer notes based on likelyhood. It's not like playing a song, but for score writing it is almost certainly more handy than the PC keyboard and mice.
Of course you still have to add a bunch of things to the generated score, but it's easier than playing a whole song without the smallest tempo mistake.

There are many midi programs you can have for Linux and some for windows that run in Linux. I like MidiPiano for windows. (Google it with quotes or you will get other stuff). This will record midi and you can save the results. It is free also. Works in wine and Windows. NOTE: The Google links above are broken.

I have been using MuseScore for some time now, and wanted the same "live performance" input. As noted, MuseScore does not support this. Use a full version of Rosegarden for a fairly good note score. Rosegarden is pretty good, but hard to understand. I use an ancient program I like better because it makes better notation.

A very old program by MidiSoft "Studio 4" for Windows 3.1, Win 95, Win 98, and Win XP can do this. The trick is getting it to work so as there are notes to copy. This program (found on web as Studio 4.0) is a 16 bit program. Win XP (32 bit) has a program in it that can run 16 bit code. However, we live in the 64 bit age, so what to do? In Linux Ubuntu 14.04, one can run "wine". (MuseScore too of course). You can also run all these in WIN 10.

To make everything work, you need to have some other programs running:
wine, PulseAudio Jack, ALSA MIDI, patchage, and timidity. Fortunately these are free, and available for Windows and Linux. I am not sure about Mac.

If you are a Windows fan, stop here and go to "OK... Finally!" below, because what is next is for Linux.

The best way to get almost everything set up from the start is to install the KXStudio version of Ubuntu on a separate disk partition. Add "wine", etc:
You must use "sudo", which is fake super user, in a terminal. Put in your logon password when asked:
sudo apt-get wine
same goes for timidity.
install studio4 in wine by downloading it and then opening it (right click) with wine. It will install like a windows program. When you click on Studio4's Linux icon, it will open in wine.

When this is done, you will need to test timidity.
timidity "your midi test file name.mid" (no quotes needed, just to let you know you supply the file name)
if you hear music, all is well. Timidity is set up correctly.
If not the shell script below will fix this, and also set up all other connections in S/W you will need:
I suggest a name for this script such as: WineSetupStudio4.sh
================
#! /bin/bash
# you can also run this in a terminal: sudo WineSetupStudio4.sh
# Must "sudo" this to give the script root power to kill processes and control timidity
# First get the process ID of timidity if it is running
TESTTIM=`ps -C timidity -o pid=`
#echo $TESTTIM
# Now see if we got a pid where a pid of 0000 should not exist
if [ "$TESTTIM" -gt 0000 ]
# If we are here, there is a pid for timidity, so we will kill it, and restart it below
then echo $TESTTIM
gksudo kill -9 $TESTTIM
else
#"not greater than 0000" means timidity not running, so we will start it below
echo "not greater than 0000"
fi
# OK: Now start/restart timidity
gksudo /etc/init.d/timidity restart
# Tell timidty where the instruments are
timidity -iAD -B2,8 -Os1l -s 44100 -x 'source /etc/timidity/freepats.cfg' #freepats config exists
#
aconnect 24:0 14:0 #Connects the MIDI port to the input of wine
#
aconnect 14:0 24:0 #Connects the Alsa out port to MIDI out port (piano)
======================

Do not include the "===" from above, that is just for this note as a separator.
When you make this little file, you need to make the file have super power. The way to do this is to right click an open space on your desktop, "create new" > "linK to application" and put in the FULL path to your new file and put "gksudo " in front of the link you just made. Next select the permissions tab and "advanced permissions". For user and group, put a check mark under x (execute). when you close advanced, make sure "can execute" is checked also. You will now get an icon on your desktop. When you click on the icon, it will now ask for your password, and the little shell script will be able to do everything you need.

OK... Finally!

Open it up making sure your midi keyboard is up and connected. Press "record button" in Studio4 and watch what you play transcribe directly to a score as you play. When done, you can play it back to see if you need to edit it. You can save it as a midi file. You can copy it (by hand) into MuseScore, and make a really good score, e.g., add repeats, etc.

You may run into two unexpected things:
1. Tell Studio4 to "split on Input" so you get a treble and base clef score line.
2. After you record you may (not sure of cause) need to adjust the score 4 half (1/2) tones lower for accurate transcription to MuseScore. I also have an older version of Studio that does not do this, but the one on the web does (??) this on my PC.

Do you still have an unanswered question? Please log in first to post your question.