coresound
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | coresound [2007/11/17 15:24] (current) – created - external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | This page will contain all of the information about the Coresound synth | ||
| + | link to forum topic: http:// | ||
| + | |||
| + | ====== 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/ | ||
| + | |||
| + | ====== 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/ | ||
| + | The data exchangement method is not decided yet, MBNET seems the best choice right now\\ | ||
| + | see this forum topic for more information: | ||
| + | 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: | ||
| + | * 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 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 ' | ||
| + | #define MBNET_CONST_TYPE_C1 ' | ||
| + | #define MBNET_CONST_TYPE_C2 ' | ||
| + | #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 ' | ||
| + | #define MBNET_CONST_TYPE_C1 ' | ||
| + | #define MBNET_CONST_TYPE_C2 ' | ||
| + | #define MBNET_CONST_TYPE_C3 ' | ||
| + | #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 ; | ||
| + | |||
| + | 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 ; | ||
| + | </ | ||
| + | * 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: | ||
| + | |||
| + | ==== Connection diagram ==== | ||
| + | connection to core: | ||
| + | ^coresound pin ^core pin ^pic pin nr ^ | ||
| + | |1 |ground |-| | ||
| + | |2 |J15: | ||
| + | |3 |J15: | ||
| + | |4 |J15: | ||
| + | |5 |J15: | ||
| + | |6 |J15: | ||
| + | |7 |J15: | ||
| + | |8 |J15: | ||
| + | |9 |J15: | ||
| + | |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]] | ||
coresound.txt · Last modified: 2007/11/17 15:24 by 127.0.0.1
