SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Xsynth - a real-time software synthesizer

Copyright (C) 1999 S. J. Brookes

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License in the file COPYING for more details.

Xsynth

Introduction

Xsynth is a real-time software synthesizer for any computer running Linux, the Open Sound System, and X windows. The program also requires that the computer be equipped with a sound-card, and a MIDI keyboard is required to play the synthesizer.

The synthesizer is monophonic (highest note priority) and presently operates in MIDI mode 2 (Omni-On Mono), ie. it receives on ALL MIDI channels. It would be simple to change the code such that the synth would operate in MIDI mode 4 (Omni-Off Mono). As well as receiving note on/off information, the synth also receives pitch-bend and modulation input from the external MIDI device. The external modulation is routed to the filter cut-off frequency.

The synth architecture should be familiar to anyone that has previously used an analogue synthesizer, and includes the following features:

2 oscillators (with independent pitch, balance control, and oscillator sync) 1 low frequency oscillator (used as a modulation source) 2 envelope generators
1 low pass filter
portamento (slides pitch from a PREVIOUSLY HELD note)

The control panel of the synthesizer appears in a window. ALL the controls may be operated in real-time using the mouse.

Error Messages

Some run-time errors are fatal, and if these are received then program will shut down (or should be shut down!). These include:

init_dsp: unable to open /dev/dsp
init_midi: unable to open /dev/midi
main: shmget error
main: shmat error
main: fork error for first child
main: fork error for second child
user_interface: cannot connect to X server user_interface: cannot open ________ font midi: cannot catch SIGUSR1
synth: cannot catch SIGUSR1

Other messages indicate problems that may affect the running of the program, but are not fatal. These include:

main: memory lock has failed
main: problem setting process scheduling user_interface: unable to get background colour user_interface: unable to get foreground colour

Further messages are used to indicate errors with the external MIDI device:

error: midi receive problem
error: current status byte is not set

The last error may generally be recovered from by moving a different controller, eg. if pressing keys on the MIDI keyboard yields

error: current status byte is not set

then moving the pitch bend or modulation control should allow the program to recover.


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.