Henkilökohtaisten tietokoneiden käyttö tosiaikaisina soitinsovelluksina on mahdollistunut lisääntyneen laskentakapasiteetin myötä. Tässä diplomityössä kuvataan em. kaltaisen ohjelmistopohjaisen äänisyntetisaattorin suunnittelu- ja toteutusprosessi, jonka päätavoitteena oli useista eri perussynteesitekniikoista koostuvan synteesiarkkitehtuurin kehittäminen.
Työssä läpikäydään lukuisia äänisynteesi-, muokkaus- ja modulaatiotekniikoita, minkä jälkeen tarkastellaan joitakin jo olemassaolevia laitteisto- ja ohjelmistopohjaisia järjestelmiä. Toteutettavan sovelluksen vaatimusmäärittelyyn ja tätä seuraavaan järjestelmäarkkitehtuurin suunnitteluvaiheeseen sovellettiin yleiskäyttöistä oliopohjaista suunnittelumetodiikkaa. Varsinainen toteutusvaihe pilkottiin sovelluskehyksen ja sen varaan rakennetun laajennusosion kesken. Työn tulosten arviointiin käytetään ääni- ja lähdekoodianalyysia.
Työssä kehitetty kokoava synteesiarkkitehtuurirakenne osoittautui intuitiiviseksi ja toteutuskelpoiseksi ratkaisuksi. Käytetty suunnittelumetodiikka soveltui hyvin äänisynteesijärjestelmien suunnitteluun, mutta sitä pidettiin liian työläänä menetelmänä lähinnä ylläpitovaatimusten vuoksi. Toteutusvaiheessa hyvin tehdystä suunnittelusta oli luonnollisesti hyötyä, vaikkakin käyttöliittymäkoodin suhteellisen suuri määrä aiheutti analyysivaiheessa yllätyksen. Syntetisaattorin tuottaman äänimateriaalin monipuolisuus oli positiivinen havainto, minkä lisäksi äänen laatu osoittautui vertailukelpoiseksi, ellei jopa parempitasoiseksi kuin vastaavissa kaupallisissa sovelluksissa.
Increased processing power of personal computers has enabled their use as real-time virtual musical instruments. In this thesis, such a software sound synthesizer is designed and implemented, with the main objective being in the development of a composite synthesis architecture comprising several elementary synthesis techniques.
First, a survey of sound synthesis, effects processing and modulation techniques was conducted, followed by an investigation to some existing implementations in hardware and software platforms. Next, a formal object-oriented design methodology was applied to capture the requirements of the implementation, and an architectural design phase was carried out to ensure that the requirements were fulfilled. Thereafter, the actual implementation work was divided between the reusable application framework library and the extended implementation packages. Finally, evaluation of the results was made in form of sound and source code analysis.
As a conclusion, the composite synthesis architecture was found to be relatively intuitive and realizable. The generic object-oriented design methodology applied appeared to be well suited to the design of sound synthesis systems in general, but was considered to be too laborious to follow in every detail. The implementation work benefitted from the properly done design phase, however. The relative amount of man machine interface code compared to other subsystems was still surprisingly large. The timbral dimension of the realizable sound palette appeared to be quite wide, and the quality of the audio output was comparable, or even better than that of the existing implementations.