PSAM WPF Control Library is a WPF version of PSAM Control Library containing the
IncipitViewer control for drawing musical notes which can be read from MusicXml file or added programmatically. PSAM WPF Control Library requires PSAM Control Library to run because it uses some of PSAM Control Library's classes. PSAM WPF Control Library is written in C# and XAML under Microsoft Visual Studio Express.
Using the Code
IncipitViewerWPF control requires special font to draw notes and other musical symbols. You can create your own font or use the included font Polihymnia which is based on Ben Laenen's Euterpe font and distributed under Sil Open Font Licence. Of course, you have to install the font in your fonts directory to display notes properly.
You can load a MusicXml file or add notes programmatically the same way as it is done in PSAM Control Library. Read the article about PSAM Control Library for details.
The control looks like that:
Because it's a WPF control, you can apply fancy effects like these:
Printing is even simpler than in PSAM Control Library. You just have to write the following code:
PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
viewer is a
IncipitViewerWPF control. Sample printout:
Points of Interest
Porting PSAM Control Library to WPF was quite simple. I made some changes to PSAM Control Library, namely I added a new interface
IIncipitViewer which represents
IncipitViewer's methods and properties and then I implemented this interface in
IncipitViewerWPF class. I also moved
ParseXml method from
IncipitViewer to a new class called
XmlParser so I didn't have to rewrite this method in
IncipitViewerWPF class. To draw notes and musical symbols, I use an overridden
OnRender method and a
I graduated from Adam Mickiewicz University in Poznań where I completed a MA degree in computer science (MA thesis: Analysis of Sound of Viola da Gamba and Human Voice and an Attempt of Comparison of Their Timbres Using Various Techniques of Digital Signal Analysis) and a bachelor degree in musicology (BA thesis: Continuity and Transitions in European Music Theory Illustrated by the Example of 3rd part of Zarlino's Institutioni Harmoniche and Bernhard's Tractatus Compositionis Augmentatus). I also graduated from a solo singing class in Fryderyk Chopin Musical School in Poznań. I'm a self-taught composer and a member of informal international group Vox Saeculorum, gathering composers, which common goal is to revive the old (mainly baroque) styles and composing traditions in contemporary written music. I'm the annual participant of International Summer School of Early Music in Lidzbark Warmiński.