This page will contain all of the information about the Coresound synth
link to forum topic: http://www.midibox.org/forum/index.php?topic=8150.0
====== Introduction ======
Coresound is a digital synthesiser module based on the midibox platform.\\
todo: add more info
====== Features ======
* Digital synthesiser for microchip pic microcontrollers
* 24 bit phase accumulator for frequency control
* wavetable signal generation
* waveshaper with 3 modes: hardclip, softclip and foldover
* 16 bit digital filter
* uses a modified [[midibox_sid]] engine for control/modulation
====== Software ======
===== v0.1 =====
This version uses a lfo, cc and env code from mb_sid v1.7\\
the dco is a wavetable oscillator based on the Wiard Wavecity ROM
===== v0.2 =====
From v0.2 the modulation/control/cs will be seperated from the actual sound generation\\
The data exchangement method is not decided yet, MBNET seems the best choice right now\\
see this forum topic for more information: http://www.midibox.org/forum/index.php?topic=8328.0\\
The sound unit registers will be refreshed each time the control routine is executed (f = 1kHz)
==== Control unit ====
The control unit will be based on the midibox sid engine\\
but will be adapted to control the sound unit parameters.
==== Sound unit ====
The first tests will be done with the wavetable dco from v0.1,\\
after this works alternate dco implementations will be tried
Register specification:\\
* Satus register:
* Status: 1 byte
* DCO registers:
* Pitch: 3 bytes
* Waveform: 1 byte
* Interpolation: 1 byte
* Phase: 1 byte
* Free: 2nd oscillator: 6 bytes
* Waveshaper registers:
* Mode: 1 byte
* Type: 1 byte
* DCF registers:
* Cutoff: 1 byte
* Resonance: 1 byte
* Filter type: 1 byte
* DCA registers:
* Level: 1 byte
==== MBNET ====
My experiences with setting up a MBNET client:
* Copied MBNET.inc and SID_MBNET.inc from the sid folder to the project directory
* Renamed the SID_MBNET.inc to CRSND_MBNET.inc, changed all lables inside the file from SID_* to CRSND_*
* Changed the lables inside MBNET.inc to the new lables
* Copied the ping info from main.inc to my main .asm file, changed:
;; MBNET specific definitions (ping reply information - don't touch this!)
#define MBNET_CONST_PROTOCOL_V 1
#define MBNET_CONST_TYPE_C0 'S'
#define MBNET_CONST_TYPE_C1 'I'
#define MBNET_CONST_TYPE_C2 'D'
#define MBNET_CONST_TYPE_C3 ' '
#define MBNET_CONST_TYPE_VERSION 1
#define MBNET_CONST_TYPE_SUBVERSION 4685
into:
#define MBNET_CONST_PROTOCOL_V 1
#define MBNET_CONST_TYPE_C0 'C'
#define MBNET_CONST_TYPE_C1 'R'
#define MBNET_CONST_TYPE_C2 'S'
#define MBNET_CONST_TYPE_C3 'D'
#define MBNET_CONST_TYPE_VERSION 0
#define MBNET_CONST_TYPE_SUBVERSION 2
* Added the variables for MBNET in my app_defines.h:
MBNET_BASE EQU 0x600 ; used for SET_BSR
MBNET_STATE EQU 0x600
MBNET_RX_BUFFER_PTR_L EQU 0x601
MBNET_RX_BUFFER_PTR_H EQU 0x602
MBNET_MY_ID EQU 0x603
MBNET_MASTER_ID EQU 0x604
MBNET_SLAVE_ID EQU 0x605
MBNET_TOS EQU 0x606
MBNET_EID_L EQU 0x607
MBNET_EID_H EQU 0x608
MBNET_NODE_AVAIL EQU 0x609
MBNET_NODE_INCOMPATIBLE EQU 0x60a
MBNET_TIMEOUT_CTR_L EQU 0x60b
MBNET_TIMEOUT_CTR_H EQU 0x60c
MBNET_LOOP_CTR EQU 0x60d
MBNET_RETRY_WAIT_CTR EQU 0x60e
MBNET_RETRY_NODE EQU 0x60f
MBNET_RETRY_NODE_CTR_BEGIN EQU 0x610 ; ..0x617
MBNET_NODE_INFO_BEGIN EQU 0x620 ; ..0x65f ; (8*8 bytes)
* To be continued :-)
====== Hardware ======
===== v0.1 =====
The hardware of the first version consists of a standard core board
and a DAC module with a anti-aliasing filter
==== Schematic ====
{{coresound:coresound.jpg?300x*}} click to enlarge \\
==== Connection diagram ====
connection to core:
^coresound pin ^core pin ^pic pin nr ^
|1 |ground |-|
|2 |J15:D7 |40|
|3 |J15:D6 |39|
|4 |J15:D5 |38|
|5 |J15:D4 |37|
|6 |J15:D3 |36|
|7 |J15:D2 |35|
|8 |J15:D1 |34|
|9 |J15:D0 |33|
|10 |J14 |-|
|11 |+5v |-|
===== v0.x =====
The final version will use two pics, more info will follow
==== Schematic ====
Not available yet
====== Todo ======
====== Suggestions ======
Everybody can add suggestions here...\\
\\
\\
back to [[user_projects]]
other projects by [[mess]]