• No results found

• Gratis och open source

N/A
N/A
Protected

Academic year: 2021

Share "• Gratis och open source "

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

D S P, S U P E R C O L L I D E R , A R D U I N O …

T N M K 0 5 4 - L J U D T E K N I K 1

(2)

S U P E R C O L L I D E R

R E A LT I D S S Y N T E S M M …

(3)

S U P E R C O L L I D E R

• Gratis och open source

• http://supercollider.github.io/

• Miljö för realtidsljudsyntes och ljudprocessing

• Verktyg för viss visualisering

• En bastard av blandade språk och smalltalk, många

kockar…

(4)

I N T E R A K T I V T L J U D

S U P E R C O L L I D E R

(5)

Mest magenta

anpassar musiken bb

bb bb

bb

bb

bb

bb bb 8va

Röd

Magenta Cyan Gul

Ackordtoner

bb

Vitt

Karta och ljudfil Svart

Meloditoner

Bastoner Högt ackord

Tolkning av färger

Vit

Blå

Grön

8va

bb

U T F O R S K A E L L E R S K A PA ?

I N T E R A K T I V T L J U D

VA D G E R P R O C E S S E N ? V I L K E T M E D I A S T Y R ? L I N J Ä R T E L L E R O L I N J Ä R T ?

(6)

D S P

• Digital signal processor

• Tar en digital signal
 - röst


- ljud
 - video


- temperatur
 - tryck


- position

• och bearbetar den

matematiskt

(7)

D S P

• En (riktig) DSP är gjord för att processa matematiska beräkningar extra snabbt
 - addition


- subtraktion
 - multiplikation
 - division

• Men, behövs den idag?

• Kedjan består av AD, DSP,

minne, DA

(8)

A D / D A - O M VA N D L A R E

Förfilter (LPF)

Förstärkare Sampling Kvantisering Kodning

(4-bitpar)

Lagring Avkodning Postfilter

(LPF)

10111010 10011000 01110110 01010100 00110010

10111010 10011000 01110110 01010100 00110010

(9)

A D / D A

• Nyquistteoremet

• Samplingsfrekvens

• Aliasing

(vikningsdistorsion)

• Kvantisering

• Kvantiseringsbrus

• …

(10)

D S P

DSPn består av

Programminne med programmet för

signalbehandlingen

Dataminne där signalen som ska bearbetas lagras

Processorn där de matematiska uträkningarna sker

En I/O-enhet

Beräknings-

processor I/O-enhet

Serieportar Timers Hostportar Externa portar

LINKportar

I/O ansluter till världen

uftanför DSPn Program-

minne Data-

minne

(11)

§

S I G N A L B E - H A N D L I N G

• Linjära och icke linjära beräkningar.

• Ickelinjär signalbehandling kan implementeras i tids-, frekvens- och spatio-

temporala domäner.

• Från tidsdomän via FFT till

frekvensdomän.

(12)

S TÄ L L N I N G S - TA G A N D E N

• Bearbeta varje sample

• Bearbeta fönster med flera samples

• Vad bestämmer hur vi gör?

• Mängd minne

• Databeräkningskraft

• Acceptabel fördröjning

(13)

A R D U I N O

• ATmega328P

• 16 MHz

• Flashminne på 32KB (bootloader 0.5KB)

• SRAM 2KB

• Flash 1KB

• arduino.cc

(14)

A R D U I N O

• Programmeras via Arduinos IDE


- Windows
 - Linux


- OSX

• Online IDE

• Programmeras över USB mellan Arduino och dator

• USB ger oxå strömförsörjning

(15)

A R D U I N O

• Programmeringsspråket är Cish

• Om ni är bekväma med OOP så kör C/C++

• Inom kursens ramar kör vi

Arduino IDE… :)

(16)

A R D U I N O I D E

• Programmeras via Arduinos IDE


- Windows
 - Linux


- OSX

• Online IDE

• Programmeras över USB mellan Arduino och dator

• USB ger oxå strömförsörjning

(17)

I / O P I N S

• 6st analoga in/digitala ut

• 13st digitala in/ut

• 6st PWM ut

• VIN 6-20V (7-12V rekommenderat)

• Ger +5V och +3.3V ut

(18)

S T R U K T U R I

A R D U I N O K O D

• Globala variabler

• void setup

• void loop

• andra funktioner

(19)

VA R I A B L E R

• Är hårt typade
 - boolean


- char
 - byte
 - int
 - long
 - float
 - string
 - array

• Casta om typ:


int x = 5;


float z = (float)x/2.0;

(20)

VA R I A B L E R

Namnge variablerna smart!

Undvik därför x , y , och

temp …

Undvik Arduino-keywords Är case sensitive.

Kan innehålla siffror och

alla tecken…

(21)

VA R I A B L E R

Globala variabler

deklareras “utanför”

funktionen.

Lokala variabler

deklareras i funktionen.

(22)

F U N K T I O N E R

En funktion deklareras

utifrån vad den förväntas returnera.

Följt av funktionsnamn

förväntade variabler att ta emot inom ( )

och måsvingar { }


void testFunction {
 gör något;


}

(23)

S K R I VA U T…

Det är svårt att skriva ut…

men, Print()

Initiera serieporten i void setup:


Serial.begin(9600);

Senare i funktionerna:


Serial.print("Text");


Serial.print(variabel); 


(24)

S T R Ä N G A R

Strängar med “”

Tecken med ‘ ‘

char Str4[ ] = "arduino";

char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};

char* myStrings[]={"String 1",

"String 2", "String 3","String

4", "String 5","String 6”};

(25)

O P E R AT Ö R E R

Aritmetiska operatörer:


= + - * / % Jämförande:


== != < > <= >=

Boolean:


&& || ! Bitwise:


& | ^ ~ << >>

Sammansatta:


++ — += -= osv…

(26)

I F - S AT S E R

if (variabelNamn > 50)
 {


// gör något smart;


}

och

if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120){ digitalWrite(LEDpin, HIGH);}

(27)

I F - S AT S E R

if (variabelNamn < 500)
 {


// gör något A;


}


else if (variabelNamn >= 1000)
 {


// gör något B;


}


else
 {


// gör något C;


}

(28)

L O O PA R

for (initialization; condition; increment) {
 //statement(s);


}

while(expression){


// statement(s);


} do
 {


// statement block;


} while (test condition);

(29)

B L I N K

A R D U I N O

D I G I TA LW R I T E

(30)

T R Y C K B L I N K

A R D U I N O

D I G I TA LW R I T E O C H P U L L D O W N - / P U L L U P - M O T S TÅ N D

(31)

P W M FA D E

A R D U I N O

A N A L O G W R I T E , P W M

(32)

P W M P O T FA D E

A R D U I N O

A N A L O G W R I T E , A N A L O G R E A D O C H M A P P I N G

(33)

M A S T E R C L O C K

A R D U I N O

M I D I , S Y N C 2 4 , K L O C K P U L S E R I / O

(34)

B U R S T G E N E R AT O R

A R D U I N O

G E N E R E R I N G AV K A S K A D E R AV P U L S E R

(35)

S O N I C E N V I R O N M E N T

A R D U I N O

L Ä S N I N G AV S E N S O R E R - > S E R I E L L I N F O R M AT I O N

Motion sensor

Ambient light sensor Temperature sensor Ambient microphone

Raspberry PI SuperCollider

Speaker output

(36)

L A B O R AT I O N

A R D U I N O

A R D U I N O S O M D S P

Beräknings- processor ATmega328P

60MHz

I/O-enhet 6 analoga in (digitala ut)

13 digitala in/ut (6 PWM ut)

VIN 6-20V

+5V & +3.3V ut

Ljud in

Potentionmeter in

Program-

minne Data-

minne

32KB

Ljud ut

(37)

L A B O R AT I O N

A R D U I N O

D C - O F F S E T, F I LT E R

(38)

L A B O R AT I O N

A R D U I N O

I N T E R R U P T P R O C E S S

Interruptprocess

31.25 kHz

1 0

15.625 kHz Påbörja nästa Timer 2, interrupt

62.5 kHz

Avsluta interrupt

Läs ADC 0 och sätt ADC Mux till kanal 1

Sampleflagga = 1

Läs ADC 1 och sätt ADC Mux till kanal 0

/2 /2

(39)

L A B O R AT I O N

A R D U I N O

V O I D L O O P, B E A R B E TA E N S A M P L E I TA G E T

Huvudloop void loop()

{

}

Sampleflagga

Läs nya sampelvärden

65 uSekunder

Skriv den nya sampeln, det nya värdet, till PWM som ljud ut, dvs digital ut 11.

Utför signalbehandling här.

Använd SRAM buffer för delay etc, max minne 512 bytes.

Läs värden från ADC1 för att förändra parametrar.

Skriv till SRAM buffer.

1

0 Sampleflagga = 0

(40)

L A B O R AT I O N

A R D U I N O

S R A M B U F F E R

läs frå

n minne skriv till minne

SRAM-buffert

0 511

510 509

...

1 2

...

References

Related documents

Other campaign organizers and teams, consisted of people who had previously both worked in technological companies. The team members from Kano, had previously worked in companies with

Detta är en faktor varför utvärderingsmodellen kan sägas vara ett relevant verktyg för att erhålla en rekommendation på en pedagogisk Open Source- programvara. En annan faktor

För att Open Source skall nå biblioteken på allvar krävs det att kommunerna börjar använda Open Source i större utsträckning, detta verkar dock vara på gång runt om i landet

F¨or att titta på deltagande inom open source ¨ar det exempelvis också m¨ojligt att anv¨anda sig av intervjuer och observationer, vilket skulle kunna svara på frågor som

Vi vet att det finns Open Source-alternativ till flertalet av dessa programvaror, men anser att en utvärdering av dessa skulle kunna vara tillräckligt underlag för en

The project will focus on developing a non-portable prototype of a security token, with the software needed to extend the login authentication functionality in Linux via PAM.. It

community, for example, the community reacts strongly to an entrepre- neurial venture’s attempt to block venues of code development through appropriation). The characterization of

OSS companies that adopt a product-oriented business strategy can all be associated with the returns from scale factor and the need for continuous revenue streams (cf. At the