DOWNLOAD WEBPAGE IN PDF (490kb)

News

Overview About SouthPole

SouthPole v 1.0

Source Code

About Chameleon Platform

Contact Me

 


News


Barcelona E-Sound / Electronische Klang

***(10/12/2005): A photographic review of my last concert has been uploaded at this link.

I played Chameleon's Australis, Korg Ex-800, Roland JV-80, Roland SH-2000, Deltaflex FX, Keyboard MK-149, and the Fender Rhodes at the end of my concert with Supertramp's "Logical Song" and "Breakfast in America" with my sister Marta at the voice, Albert Casas and Nacho Sánchez.

***(11/3/2005): SouthPole passed successfully through my 5/3/2005 concert. Mixing lines on the Preset #62 (Landscapes), made strings and solo sounds to envolve dramatically the music.
Instruments Set:
Evolution MK-149 Controller Keyboard
Korg Ex-800 Module Synthesizer
Soundart Chameleon -SouthPole- Effects Processor
Roland JP-8000 Synthesizer
Roland JV-80 Synthesizer
Roland Sustain and EV-5 Expression Pedals
Mackie Mixer Desk
More information at my musical page. MP3 and video excerpts soon...

***(14/2/2005): New processed sound MP3 examples have been added at SouthPole 1.0 section.

***(18/1/2005): SouthPole is going to be played live in my next Berlin School oriented Electronic Music concert.

It will take place in 5th March at the Salamandra Sala (L'Hospitalet del Llobregat - Barcelona), preceding the Dom f. Scab's «Crosswords» presentation.

More info:
EM Events 2005 (QuantumProductions)
Dom f. Scab's Concerts
GtrSynth.com Next Concerts
My Musical Page
My Main Page

***(13/9/2004): main.asm little troubles:

-'include' files had to be put after the end of the main loop (therefore, we've not to worry about it, but it isn't elegant due to it executes randomly, but before the DMA preparation)

-getvar.asm task could have been omitted, and then the Y memory single variable declarations too. Thus, we only have to go to ctrltab.asm and define each parameter as an offset of the host buffer (HostDataInput).

***(21/7/2004): Absolut Jazz Vocal french group is about to try SouthPole:
"We work on studio & on stage with Pro Tools TDM, AKG Microphones & Focusrite préamps. Concerning the plug-ins the most favorites are: Recti-Fi , Lo-Fi, Antares autotunes, TC megaverb, Digidesign Reverb One, TC master X, Digidesign Digirack's Delay EQ, Comp, We usually don't use sound transforming effect (we create it directly with our voices) but for the next album, we want to try some like Chameleon Soundskin, cycloop redsound, Bomb Factory etc... All the sound in the album are made by our voices (no sample, no synthé, no bass, no drums...) and as the people who have seen them says: It's better on stage!"

***(6/7/2004): It has been found a little bug at SouthPole's 'fill_tables' family functions (INC group). It means that the highest Delay value is 10,3 seconds and the highest LFO frequency is near 38 Hz (see tables at SouthPole v1.0 section). In order to avoid all the changes it suposes, it has been decided to apply this modification in future versions of SouthPole.

***(24/6/2004): Demo MP3 soundclips have been uploaded at SouthPole v1.0 section.

***(23/6/2004): SP-Delay and LFOs Frequency true value tables have been added at SouthPole v1.0 section.

***(21/6/2004): A selection of SouthPole soundclips and an interview with me are publsihed at Soundart's webpage.

***(20/6/2004): Robert A. Moog took a look at SouthPole Project when he was in Barcelona. Thank you Mr. Moog for being patient and Sergio Koval for the photos.


Overview About SouthPole

South Pole v1.0 is my first open-source skin for the Chameleon, conceived by LlunaSol, that gives you:
4 powerful parallel audio processing lines with SP-Delay and Hot-Saturation units.

 

Technical Skills

The sound processing has been coded in ASSEMBLER working with totally optimized code using parallel moves allowed in Motorola DSP 56k family. It is programmed in a module-way intuitive vision, including external header files as a virtual cables and virtual black boxes. DMA method of AD/DA 24 bit @ 96 kHz communications between Audio In and Audio Out has been used to optimize computing time.

The user interface has been programmed entirely in plane C. Using RTEMS pseudo operative system, more than one program line executes concurrently in the Motorola's ColdFire, allowing the musician not to worry about navigating and editing menus. INT communication method between the user interface CPU and audio processing DSP has been selected. As in the audio processing case, the source code has been divided in several files in order to make it easier to the future developers.

More links here.


SouthPole v 1.0 - DOWNLOAD (.MID) -111kb-

The Filter Bank

3 types of 24 dB filter (Low-Pass, Band-Pass and High-Pass) in parallel mode with each line. A total of 12 stereo auto-oscillating Moog-way conceived filters.

The Low Frequency Oscillator Bank

3 LFO's with their 3 offset adders in each line connected directly to the Filter Controls (cut off, ressonance and panning). A total of 12 0-to-40 Hz logarithmic LFO's working in parallel mode. All parameters are easily and directly controllables thru the knobs by the user (amplitude, frequency and offset).

The SP-Delay Unit

A 4-channel mixer followed by a logarithmic stereo Delay (0,1 miliseconds up to 11 seconds) gives the complete control of the 4 send levels, including a Random control of the echo times.

The Hot-Saturation Unit

A stereo Hot-Saturation Unit will burn slowly the sound, making it strongly hot all the time the sound cries. It works directly on the Filter Bank (after them, in lines 1 & 2, and before in 3 & 4). The perfect emulation of the first sounds of electronic organs, and really specific for the most agressive drums and percussion.

The Global Mixer

A 3-channel stereo mixer allows you to sepparate the original sound, the line-processed sound, and the delayed sound to adjust the perfect amount of each one at the final mix.

The Factory and User Presets Bank

A total of 256 flash memory containers with 256 Factory and User Presets. The 128 Factory Presets and the 128 User totally editable Presets Bank gives you the fastest acces to your own SouthPole configurations and patches.

 

MP3 Soundclips

Original mono-sound String (180 Kb)
Preset 8: Marble Garden (320 Kb)
Preset 25: Killing Oxide (470 Kb)
Preset 37: Sirens Singing (830 Kb)
Preset 62: Landscapes (2111 Kb)
Preset 115: Oxygene (360 Kb)

OTHER DEMO SOUNDS AT SOUNDART'S SITE

 

Block Diagram

 

Menu Hirerarchy

EDIT: Load/Save and their confirmations.
PART: Change Line.
GROUP: Enable/Disable Line.
VALUE: Yes/No and Fine edit values.

PAGE

PARAM

Controls

Pot 1

Pot 2

Pot 3

Filter

---

Potentiometers

Cutoff

Ressonance

Panning

LFO Speed

---

Potentiometers

Cutoff

Ressonance

Panning

Send Delay

---

Encoder/Value

---

---

---

Saturation

---

Encoder/Value

---

---

---

LFO Amplitudes

---

Potentiometers

Cutoff

Ressonance

Panning

Select Filter

---

Potentiometers

Low-Pass

Band-Pass

High-Pass

Line Volume

---

Encoder/Value

---

---

---

Delay Params

Time

Encoder/Value

---

---

---

---

Feedback

Encoder/Value

---

---

---

---

Random

Encoder/Value

---

---

---

Global Mixing

---

Potentiometers

Audio IN

Lines

Delayed Lines

 

Factory Presets

N

Preset Name

N

Preset Name

N

Preset Name

N

Preset Name

0

SING. LOWPASS

32

DISTANT PLANET

64

CASTLE OF MURK

96

SP_NOISE-HIRTZ

1

SING. BANDPASS

33

HITECH GTRONIC

65

SHADOWS HOUSE

97

SP_NOISE-ZHEHN

2

SING. HIGHPASS

34

GOLDEN PYRAMID

66

AERO GENERATOR

98

SP_NOISE-LOHEA

3

SING. LOW+LFO

35

DISTANT CLOUDS

67

COLDER STORM

99

SP_NOISE-IHONE

4

SING.BAND+LFO

36

FIGHT PENGUIN

68

WITHIN A DREAM

100

EARTH MOVEMENT

5

SING.HIGH+LFO

37

SIRENS SINGING

69

MILITARY ZONE

101

FALLING ROCK

6

SINGLE+DELAY2

38

PETROL GLACIER

70

TALKING LOUDER

102

OVER OCEAN

7

2LINES+DELAY3

39

ELECTRIFIED !

71

CRYSTAL LANDS

103

SOUTH POLE

8

MARBLE GARDEN

40

RADIOCOM

72

SYNHARMONICS

104

WE, ROBOTS

9

PLASTIC CUBE

41

ANTARCTICA

73

ORGANIC SAND

105

FIREBALL

10

MAGNETIC FIELD

42

BLUE SNOW CAVE

74

MIDNIGHT CRIES

106

EYE IN THE SKY

11

HOT-SATURATOR

43

IRON TUBE CAVE

75

BAD NEWS

107

NERVE CENTRE

12

SYNCHROTRON

44

TWILIGHT CITY

76

LOVELY ANGEL

108

TECHNO ECHOES

13

METAL ON METAL

45

CITY LIGHTS

77

CROSS-PHASER

109

GREAT CANYON

14

KILL THE BEE

46

GREAT SEAVOICE

78

BRIGHTNESS

110

DISTORTION

15

PULSTAR

47

COLD WIND

79

GREEN DESERT

111

LASER BEAM

16

SUN RAYS

48

WHISPER WATERS

80

EVOLUTION

112

HELIUM BALLOON

17

NUCLEAR ENGINE

49

ELECTRIC STORM

81

SEVENTIES

113

MOON SURFACE

18

DODECAHEDRON

50

DRY OVERDRIVE

82

POLLUTION

114

RED PLANET

19

INTERFERENCES

51

OIL LIQUIDE

83

EXECUTION

115

OXYGENE

20

ALL LINES ON !

52

WALKING CHIPS

84

DETERIORATION

116

RADIOACTIVITY

21

BARNIE'S DREAM

53

INSECT SCAPE

85

AIR SURFING

117

ELECTROPLASMA

22

BIRDS IN HELL

54

PINKY PIGGY

86

THIN TUNNEL

118

RENDEZ-VOUS

23

CATS IN HELL

55

OLD TURBINE

87

FRACTAL PATH

119

DARKNESS LOCH

24

HEAVY HARDRAIN

56

FORCE MAJEURE

88

ALTERNATION

120

PROGRESSIVE

25

KILLING OXIDE

57

POLE POLUTION

89

MAGIC JOURNEY

121

ELASTIC SQUARE

26

EXOTIC FOREST

58

POLAR BREEZE

90

REPETITION

122

SPACE SHIP

27

INSIDE BOTTLE

59

STEEL INDUSTRY

91

ORANGE SKY

123

WAVEOLUTION

28

ANTHENNA ALARM

60

ICEBERG FALL

92

SP_NOISE-AHZER

124

LUNAR APPROACH

29

FRIENDLY GIRL

61

EROTIC NIGHT

93

SP_NOISE-KHELM

125

WOOD VILLE

30

LOVELY PINK

62

LANDSCAPES

94

SP_NOISE-NEOHA

126

LOVE

31

WORST CHOICE

63

FLOWER FIELDS

95

SP_NOISE-DHORM

127

C H A O S !

 

SP-Delay Time Table

V

Time (ms)

V

Time (ms)

V

Time (ms)

V

Time (ms)

0

0,11

32

11,06

64

138,37

96

1308,68

1

0,11

33

12,08

65

148,85

97

1400,66

2

0,12

34

13,17

66

160,09

98

1498,94

3

0,12

35

14,35

67

172,14

99

1603,95

4

0,13

36

15,63

68

185,05

100

1716,15

5

0,13

37

17,01

69

198,89

101

1836,00

6

0,15

38

18,49

70

213,72

102

1964,04

7

0,16

39

20,09

71

229,62

103

2100,81

8

0,19

40

21,81

72

246,63

104

2246,88

9

0,21

41

23,68

73

264,86

105

2402,90

10

0,24

42

25,68

74

284,39

106

2569,51

11

0,27

43

27,84

75

305,31

107

2747,43

12

0,33

44

30,17

76

327,70

108

2937,42

13

0,38

45

32,67

77

351,69

109

3140,28

14

0,46

46

35,37

78

377,36

110

3356,85

15

0,56

47

38,27

79

404,83

111

3588,07

16

0,67

48

41,40

80

434,24

112

3834,92

17

0,82

49

44,75

81

465,71

113

4098,41

18

0,99

50

48,35

82

499,38

114

4379,67

19

1,22

51

52,24

83

535,42

115

4679,87

20

1,50

52

56,42

84

573,98

116

5000,27

21

1,84

53

60,89

85

615,21

117

5342,20

22

2,26

54

65,71

86

659,32

118

5707,10

23

2,77

55

70,89

87

706,50

119

6096,50

24

3,41

56

76,45

88

756,96

120

6512,00

25

4,18

57

82,41

89

810,91

121

6955,32

26

5,13

58

88,81

90

868,60

122

7428,34

27

6,30

59

95,69

91

930,29

123

7932,98

28

7,72

60

103,08

92

996,23

124

8471,35

29

8,47

61

111,00

93

1066,73

125

9045,66

30

9,26

62

119,48

94

1142,07

126

9658,30

31

10,13

63

128,60

95

1222,62

127

10311,77

 

LFOs Frequency Table

V

Period (seconds)

V

Period (seconds)

V

Frequency (Hz)

V

Frequency (Hz)

0

No oscillation

32

24,93

64

0,51

96

4,79

1

No oscillation

33

22,81

65

0,54

97

5,13

2

25000,00

34

20,90

66

0,59

98

5,49

3

25000,00

35

19,17

67

0,63

99

5,87

4

12500,00

36

17,59

68

0,68

100

6,28

5

12500,00

37

16,16

69

0,73

101

6,72

6

6250,00

38

14,85

70

0,78

102

7,19

7

5000,00

39

13,67

71

0,84

103

7,69

8

3571,43

40

12,58

72

0,90

104

8,23

9

2777,78

41

11,58

73

0,97

105

8,80

10

2083,33

42

10,68

74

1,04

106

9,41

11

1666,67

43

9,85

75

1,12

107

10,06

12

1250,00

44

9,08

76

1,20

108

10,76

13

1000,00

45

8,39

77

1,29

109

11,50

14

781,25

46

7,74

78

1,38

110

12,29

15

609,76

47

7,16

79

1,48

111

13,14

16

490,20

48

6,61

80

1,59

112

14,04

17

384,62

49

6,12

81

1,71

113

15,01

18

308,64

50

5,66

82

1,83

114

16,04

19

245,10

51

5,24

83

1,96

115

17,14

20

196,85

52

4,85

84

2,10

116

18,31

21

158,23

53

4,49

85

2,25

117

19,56

22

126,90

54

4,16

86

2,41

118

20,90

23

102,46

55

3,86

87

2,59

119

22,33

24

82,78

56

3,58

88

2,77

120

23,85

25

67,02

57

3,32

89

2,97

121

25,47

26

54,35

58

3,08

90

3,18

122

27,20

27

44,09

59

2,86

91

3,41

123

29,05

28

35,87

60

2,65

92

3,65

124

31,02

29

32,68

61

2,46

93

3,91

125

33,13

30

29,83

62

2,29

94

4,18

126

35,37

31

27,26

63

2,13

95

4,48

127

37,76

 


Source Code

Here's the project folder zipped (the entire source code). It includes header files. Open the .PRJ file with your compiler in order to obtain directly the original structure of SouthPole code.

All Project Source Code (ZIP)

See the Project Hirerarchy for more details about the contents.

 

Project Hirerarchy

COLDFIRE SIDE
(User Interface)

DIGITAL SIGNAL PROCESSOR SIDE
(Signal Processing)

Level 0

Level 1

Level 0

Level 1

Spole.h

 

Ctable.asm

 

Main.c

 

Ctrltab.asm

 

(INC)

Dsp.c

Delaying.asm

 

 

Flash.c

Getvar.asm

 

 

Init.c

Line0.asm

 

 

Leds.c

Line1.asm

 

 

Presets.c

Line2.asm

 

 

 

Line3.asm

 

 

 

Main.asm

 

 

 

Mix.asm

 

 

 

Mixing.asm

 

 

 

(DMA)

Cdma.asm

 

 

 

Dma.asm

 

 

(MODULES)

3mixer.asm

 

 

 

4mixer2.asm

 

 

 

4mixerd.asm

 

 

 

Addk_.asm

 

 

 

Addklim.asm

 

 

 

Delayl.asm

 

 

 

Delayr.asm

 

 

 

Filter2.asm

 

 

 

In.asm

 

 

 

Osc_.asm

 

 

 

Out.asm

 

 

 

Sati.asm

 

 

 

Sub.asm

 

 

(WTABLES)

Cosine.asm

 

 

 

Longpul.asm

 

File Description

FILE

TYPE

DESCRIPTION

Spole.h

UI Header

Contains all the constants and function declarations. Furthermore, there are all the structs and character redefinitions.

Main.c

UI Main File

Basicly, it is implemented the endless loop of the main program, controlling the navigation menu. Most of the variables are declared as a global data, in order to make it accessible from multiple routines.

Dsp.c

UI Include

Here is the parameter buffer preparation and sending with "prepare_and_send_DSP()" function, to be sent to DSP.

Flash.c

UI Include

There are all te routines referred to managing memory and code to load/save and prepare the parameter buffer in all cases.

Init.c

UI Include

Contains all the initializing functions: the menu, new characters, variables, panel and DSP, initial LED sequence and parameter tables. There's also low level functions that help the programmer to initialize easily the tables and the frequency tables (preparing integer and fractional parts of the values).

Leds.c

UI Include

There are the 3 concurrent routines using RTEMS programming. They control the LEDs (dancing over the LFOs), updating their flashing frecuency near the real time.

Presets.c

UI Include

This huge file contains all the factory presets initializing. It's only included zipped in All Project Source Code above.

Ctable.asm

DSP Include

This intuitive file helps the developer about linking all the modules and "black boxes", from the Audio IN to Audio OUT.

Ctrltab.asm

DSP Include

Similar to ctable.asm, this file defines all the control parameters and buffers wich will be used in audio modules. Then, the developer has not to worry about changing some variables in the processing code. It only have to be changed here.

Delaying.asm

DSP Processing

It perfoms the lines mixing, and then the stereo delay.

Getvar.asm

DSP Include

This essential file catch the parameters buffer, sent from the ColdFire and put on HostBuffer by the defined RSI, at the beginning of each DMA cycle, and put all of them into the proper DSP defined variables at main.asm.

Line0.asm

DSP Processing

Audio processing for the first line, calling the LFOs, the adders, the filters (and mix them), and the saturator.

Line1.asm

DSP Processing

Audio processing for the second line, calling the LFOs, the adders, the filters (and mix them), and the saturator.

Line2.asm

DSP Processing

Audio processing for the third line, calling the LFOs, the adders, the filters (and mix them), and the saturator.

Line3.asm

DSP Processing

Audio processing for the fourth line, calling the LFOs, the adders, the filters (and mix them), and the saturator.

Main.asm

DSP Main File

Appart of the constant defines, the buffers and variables declarations, module includes and initializations, it makes the Audio IN and Audio OUT task, making the "include" of line0.asm, line1.asm, line2.asm, line3.asm, mixing.asm, delaying.asm, and mix.asm

Mix.asm

DSP Processing

It's the 3 channel global mixer calling.

Mixing.asm

DSP Processing

This is the calling of the Line mixing.

Cdma.asm

DSP Configure

It contains the ConfigureAudioDMA subroutine, that configures DMA channels 0 and 1 for audio transmitter and receiver.

Dma.asm

DSP Configure

It changes the active ADC and DAC buffers waiting if CODEC is still working with it.

3mixer.asm

DSP Module

A 3 stereo channel mixer, used to add the Filters' output signal of each processing line. Programmed by Aleix Riera.

4mixer2.asm

DSP Module

This is a 4 stereo channel mixer with a control of panning by buffers. Programmed by Aleix Riera.

4mixerd.asm

DSP Module

A 4 stereo channel mixer, but without the panning control. It was reprogrammed to optimize computing time, and then no to lose instruction cycles. Programmed by Aleix Riera.

Addk_.asm

DSP Module

This module simply adds a number at a single variable only one time per DMA cycle. It is used only for taking a frequency band in cutoff to prepare de BPF. Programmed by Aleix Riera.

Addklim.asm

DSP Module

The same module as addk_.asm, but taking care about the final result. If it's lower than the given constant, the result will be this constant. This is used to avoid too low values at LPF's frequency cutoff. Programmed by Aleix Riera.

Delayl.asm

DSP Module

This is a mono delay (L) with time and feedback controls. It only puts to the output audio buffer the delayed signal (modified by me) and don't let the IN buffer to pass through. It allows to us the possibility of enabling individual send controls. Programmed by SoundArt.

Delayr.asm

DSP Module

And it is the right one (R).

Filter2.asm

DSP Module

This module implements a mono 24dB resonant lowpass filter (the code is based in the source code of the filter Moog VCF variation2 of the musicdsp.org filters source code page, thanks to Bram de Jong. I've modified the code, obtaining an efficient stereo filter.

In.asm

DSP Module