Jump to content

Recommended Posts

Hi all,

updates of my Concerto synth engine will be posted in this thread. The file upload can be found below and will be updated as soon as there are significant additions to the feature set.


The source code can be found on GitHub: https://github.com/biermanncarl/cx16-concerto

Version 0.1.0 has the following features:

  • 32 synth patches
  • 16 monophonic channels, each playing a dynamically assigned synth patch
  • up to 6 oscillators per voice
  • up to 3 envelopes and 1 LFO per voice
  • pitch, volume and pulse width modulation
  • volume control per voice ("velocity")
  • save and load presets (currently 1 slot)
  • Like 1

Share this post

Link to post
Share on other sites

I've just made a release for Version 0.1.1.

There are no changes to the actual features of the synth engine. However, the code has been reorganized so that it is MUCH easier to include the synth engine with or without UI into your own ca65 project.

  • Separated synth engine and UI so that they can be separately included
  • Provided a simple API for both
  • Added documentation and examples on how to use them
  • Added precompiled binaries of all examples

The example below shows what it takes to utilize Concerto in your own ca65 program


.segment "CODE"
; BASIC stub to start program
; "10 SYS2061"
.org $0801
.byte $0B, $08, $0A, $00, $9E, $32, $30, $36, $31, $00, $00, $00
.org $080D

jmp start

.include "concerto_synth/concerto_synth.asm"

jsr concerto_synth::initialize
jsr concerto_synth::activate_synth

; play a note
lda #60
sta concerto_synth::note_pitch
lda #63
sta concerto_synth::note_volume
lda #0
sta concerto_synth::note_channel
lda #0
sta concerto_synth::note_timbre
jsr concerto_synth::play_note

; and wait until key is pressed
jsr $FFE4 ; GETIN
beq mainloop

jsr concerto_synth::deactivate_synth


Edited by kliepatsch
  • Like 4

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Please review our Terms of Use