forked from jwdj/EasyABC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
using_EasyABC_in_Linux.txt
159 lines (126 loc) · 6.29 KB
/
using_EasyABC_in_Linux.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
Running EasyABC in Linux
There is no install or binary package for EasyABC on Linux. You
will have to run it from source code and install the external
executables called by EasyABC.
EasyABC is written in Python and wxPython and requires the additional
programs abcm2ps, abc2midi and abc2abc too in order to run.
Please note that if you wish to run Nils Liberg's original
version, EasyABC 1.3.5, you will need to find an old version of
abcm2ps.
Though recent versions of EasyABC also comply with Python 3 and
higher, it is easier to run it with Python 2.7. If you insist
on using Python 3, you will need to find a way of making wxpython
available.
Though abcm2ps, abc2midi, and other related programs may come
with your current linux distribution, they are probably old
versions and you should get more recent versions. Source code
can be found on the web sites.
http://moinejf.free.fr/ and http://ifdo.ca/~seymour/runabc/top.html .
Binaries and Debian installs can be found in the abcplus web page
http://abcplus.sourceforge.net/
which is maintained by Guido Gonzato.
easy_abc.py expects to be started from it's installation directory
in order to find its data files. If you start it from some other working
directory, then you need to set the EASYABCDIR environment variable
to point to the installation directory.
Installing dependancies:
-----------------------------------------------
Dependancies:
abcm2ps >=6.4.1 (preferrably >= 8.12)
abcMIDI 2016.07.20 is recent.
python 2.7
wxPython python module >= 2.8.12.0
optional: pygame or pypm python module (if midi input is to be supported)
Start your package manager and make sure that you have
python-wxgtk2.8 (version 2.8.12.0 or later). If you don't, please use
the information on this page to install it:
http://wiki.wxpython.org/InstallingOnUbuntuOrDebian
You also require python-wxgtk-media3.0. If it does not appear in your
package manager you can run,
sudo apt-get install python-wxgtk-media3.0
You should also get python-pygame.
Also make sure that you have a new version of abcm2ps installed
(version 6.4.1 or later).
If you have obtained the source code to abcm2ps and the abcmidi package
then you will need to uncompress the zip file, cd into that directory
and run:
./configure
make
make install
Depending upon your Linux distribution, you may be able to play
and run the score following option without further configuration.
This feature worked on Linux Mint 17.3.
It is very convenient to run Linux on a virtual machine on the
Windows host using Oracle's VirtualBox. This way you can avoid
disk partitioning and finding all the drivers for your graphics
and audio card. Unfortunately in order to play a MIDI file
we needed an external program like TiMidity and the score
following feature did not run. EasyABC uses xvideo and its
adapters to play MIDI files. The adapters could not be found
when Linux was running from a virtual machine.
(Running xvinfo says 'no adapters present'.)
In such a case, you may be successful running TiMidity. On Linux
Mint, we installed TiMidity, timidity-interfaces-extra, and freepats.
If your package manager does not find TiMidity, you can find it on
http://sourceforge.net.
Recent versions of TiMidity may not run correctly on your system
and it may be necessary to reduce the period
size from the default of 8192 down to 2048, using the runtime
option -B 16,9. (16,10 works on Linux Mint Cinnamon edition but not on Mate.)
If the period size is too large, data overrun may occur (you can
verify this by running TiMidity in verbose mode) and a MIDI file
will play too fast. Some discussion may be found on
https://sourceforge.net/p/timidity/mailman/
To get TiMidity working with EasyAbc, go to Abc Settings/File Settings
and set the midi player to /usr/bin/timidity and the Extra Midi Player
parameters to -B 16,9 -ig. The -ig will run timidity with a user interface,
allowing you to stop the player.
The freepats soundfont is rudimentary and rather incomplete but
sufficient to get you started. We recommend that you install one of
the free soundfonts that you can download from
http://coolsoft.altervista.org/en/virtualmidisynth
You should put the soundfont in /etc/TiMidity/ folder and modify
the timidity.cfg file so that it points to the desired soundfont.
We understand that TiMidity can be run as a virtual MIDI player using
the -iA option. Explanations on how to set this up is given in the
web pages:
http://jazz-soft.net/download/Jazz-Plugin/LinuxSynth.html
http://www.midi-howto.com/midi-howto-10.html
http://www.csounds.com/manual/html/RealTimeLinux.html
http://linux-audio.com/TiMidity-howto.html
If you get this to work on your Linux system as well as score
following, please tell us.
--------------------------------------------------------
Running EasyABC
Once EasyABC is running for the first time, it will search for
abcm2ps, abc2midi, and other executables in the /usr/bin/ and
/usr/local/bin folders. If it does not find these executables,
a message will pop up. If these executables are already on your
system, you can tell EasyABC where to find them by going
to the menu item, Settings/ABC Settings and then selecting File Settings.
-----------------------------------------------------
Other stand alone programs coming with EasyABC:
midi2abc.py can invoked like a standalone program:
python pymidi2abc.py <options>
[-f] <input file>
-o <output file>
-k <key signature> key name, or -6 to 6 sharps
-l <default note length (L: field)>
-m <time signature>
--nbb no beam breaks
--aux=<denominator of L: unit length>
--nt Do not look for triplets or broken rhythm
--s8 insert slurs on groups of 8th notes
--s16 insert slurs on groups of 16th notes
--bpl=<number> of bars printed per line
--title=<string> Adds T: field containing string
--origin=<string> Adds O: field containing string
Here is an example:
python midi2abc.py -f mymidifile.mid -l 1/8 -m 4/4
-----------------------------------------------------
xml2abc_nils.py can also be invoked like a standalone program:
python xml2abc_nils.py mytune.xml
Please note that Nils' xml2abc converter is now largely superceded by the, more powerful, one:
http://wim.vree.org/svgParse/xml2abc.html
Seymour Shlien [email protected]
Jan Wybren de Jong [email protected]