Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

DSP

Tråden skapades och har fått 29 svar. Det senaste inlägget skrevs .
1

Vad betyder dsp?
Jag trodde det var en särskilld typ av chip. men det verkar som att det är en särskild form av beräkningar eller programmering.

Är det någon som vet och vill förklara lite vad DSP är?

  • Medlem
  • Uppsala
  • 2003-03-07 12:15

Digital Signal Processing. Kretsar ofta runt kretsar. Som t ex Motorola 56000. Den sitter nog i de flesta VA-syntar t ex. Ofta när man ska "bygga en synt" så får man simulera hela signalflödet. Man får bygga hela synten i datorn, på skärmen. Alla beståndsdelar ska vara med. Att "öppna" en virtuell synt är nästan som att skruva upp en riktig synt, den bakomliggade tekniken är... delvis extremt matematisk... men även schematisk. Mina 5 cent...

Jag tror det är det chippet som sitter i min virus.

Jag har hört att det chippet är designat för 5.1 surroundljud i hemmabiosystem...

Det är därför alla VA-synthar har samma antal in och utgångar. tre stereo ut och en stereo in

  • Medlem
  • Uppsala
  • 2003-03-07 12:23

Kan mycket väl vara sant. Vad beträffar själva drejskivan och tillvägagångssättet så är det inte enkla saker att hantera. Det vanligaste verktyget heter antagligen C++ - ett programmeringsspråk helt enkelt. Volantiz kan med all säkerhet berätta mer!

mnja.. c++ är nog inte vanligast när man kodar mot DSP´s.. men annars så var väl det mesta rätt

Även SHARC-propparna som creamware kör på används till stärkare å sånt.

I grunden så är en DSP (digital signal processor står det för faktiskt ) en processor som är gjord för just beräkningar av ljud. Iom att dagens vanliga pc/mac-proppar är så snabba och funktionsdugliga så kan man "dsp-koda" mot dessa också.. så begreppet DSP har väl ändrat mening litegrann på senare tid känns det som (kanske därför PF skrev "digital signal processing"?

).

Å nä.. ja e ingen guru på dsp-programmering (än ).. men vill ni veta mer så fråga på så kan jag nog annars hänvisa till läsvärda böcker eller texter på nätet.

En viss begreppsförvirring. Själva akronymen DSP står ju som sagt bara för Digital Signal Processing. Ett DSP-chip är helt enkelt en processor med ett instruktionsset som lämpar sej bra för just DSP. Att sen ordet DSP "förts över" på den är nog bara vanlig språklig lättja...

Ang. programmeringsspåk är nog C ännu vanligare. Ingen större vits med objektorientering i så specialiserade kretsat skulle jag tro. Möjligtvis undantaget Nord Modular...

nja.. nu tycker jag att det lät som att en DSP är en vanlig "general purpose"-processor som bara råkade bli bra till just sånt syfte för att dess instruktioner såg schyssta ut att användas till sånt.. så är det inte. En DSP har i grund en lite annorlunda arkitektur till skillnad från vanliga processorer. Numera håller det på att bli mindre och mindre skillnad iom alla extra-grejor som petas in i dagens datorers processorer.. men det som händer att man bygger ut dom med DSP-funktionalitet. (kort och enkelt förklarat.. ska man va petig så är det inte _exakt_ så det ser ut)

Sen det där med just begreppet.. inget viktigt eller så egentligen.. men jag slog upp det nu lite snabbt: "The term DSP can be used for the techniques used to process digital signals or the digital signal processor that is used to perform the number crunching operations involved in digital signal processing".

Angående språk.. objektorientering eller inte.. spelar inte så stor roll faktiskt.. det är bara en teknik som programmerare använder sig av. De som gillar OOP kör på det.. andra hoppar över det.. vare sig dom kör med en C eller C++-kompilator. I dagens bättre DSP-syntar så är jag ganska övertygad om att den mesta koden som verkligen processas är kodad i assembler. (dvs. de flesta tidskrävande saker). När man kodar mot nya grafikkort till spel så är det nästan bara ren assembler. Men tekniken ändras hela tiden.. nu har det ganska nyligen kommit ett språk som heter Cg som är just till för sån programmering.. ett litet språk med C-syntax. Liknande C-språk kommer nog mer och mer..

OOP har ju en tendens att kräva rätt mycket mer minne än vanlig procedurell programmering, vilker lär vara en faktor i såna här sammanhang.

Fy s*tan vilket jobb att göra DSP-matte i assembler förresten...

Ang. aritektur så menade jag inte nödvändigtvis processor som i en Pentium, utan helt enkelt en processor i ordets vidaste bemärkelse. (mikrocontroller kanske?)

DSP-matte i assembler.. mycke jobb.. men snyggt och stilrent

Själv tycker jag att det känns som det enda rätta språket i stora delar av DSP-programmering.

  • Medlem
  • Järfälla
  • 2003-03-07 16:14

I DSP samanhang så finns det operationer som är mycket vanliga för ljud och bild behandling. Så man lägger mer krut på att få dessa snabb, och låter vanliga instruktioner betala. Vanliga CPU:er brukar vara med optimerade för
IO och mutitasking. Grundiden är den samma och brukar kallas von Neuman architekture. En vanlig operator som brukar finnas i hårdvara på en DSP men på en vanlig är
tex en butterfly operation. På en vanlig CPU blir det fyra instruktioner medans på många DSP:er bara en. Butterfly
är härstammar från FFT (fast fourier transform) som är en variant på DFT (discret fourier transform) Dvs en fouriertransform i digitalvärlden. Fouriertransform kan man säga är en metod att omvandla mellan tidsdomäner till frekvensdomäner och tvärt om.

mm.. där är väl typ 2 av de absolut viktigaste skillnaderna iaf.
Fler finns (annorlunda minnesarkitektur, annorlunda adressbussar (har väl ganska mycket med FFT att göra oftast?) och en extra liten special-accumulator som är mycket viktig.. bland annat).. men ska vi diskutera det här eller försöka hålla samtalet på en lite snällare nivå så att meckarn och andra som vill veta lite grunder hänger med?

Som sagt.. jag har inte stenkoll på allt sånt här.. men om nån vill veta lite mer så kan jag nog rota fram lite info åt er

Finns en hel del om DSP-programmering på nätet, bland annat en liten introduktion till FFT av mannen bakom Prosoniq/Sonicworx. DSP Dimension

En gratis bok: [URL="http://www.dspguide.com/pdfbook.htm[/URL"]

  • Medlem
  • Uppsala
  • 2003-03-07 18:00

Så vitt jag har förstått så underlättar det om man har kunskaper om hur vanliga kretskort byggs, alltså i fallet syntar, att man kan bygga hårdvarusyntar. Då har man tydligen "mycket gratis" / på köpet när man ska bygga sin mjukvarusynt. Rätta mig gärna om jag har fel... vore kul att få nå´n slags genomgång av Pelle eller den där killen på Access som sägs vara helt grym på någon specifik Motorola-krets. 56002, kan den hetat så? Att Virus-syntarna får så mycket uppdateringar beror troligtvis på att de har en äkta eldsjäl bakom hela företaget, som verkligen älskar att experimentera med sin synt-kod.

Edit: Ojdå, dum liknelse. Nästan alla hårdvarusyntar är ju mjukvarusyntar idag. Ni hajar vad jag menar ändå...

  • Medlem
  • Uppsala
  • 2003-03-07 18:14

DAUNTING. Ett så bra ord.

Eftersom jag inte är så analytisk, utan ganska visuell, informell, konkret... and some say snäll... så ska jag här illustrera min tankegång nu, angående allt detta.

1. The Source.

(Typex - koden är gibberish)

Låt säga att vi har 645.000 rader som liknar dessa:

if (data == 0) return false;
if (rowLength DISP_STR_MAXLEN-3) return false;
for (long i = 0; i numRows; i++) {
sprintf(printString, "%3.0d", -i+numRows/2);
long lastQdata = 0;
for (long j = 0; j rowLength; j++) {
long qData = (long)((float)(numRows-1)*(.5+.5*data[j])+.5);
if (qData == i) {
if (qData-lastQdata 0)
sprintf(printString, "%s`", printString);
else if (qData-lastQdata 0)
sprintf(printString, "%s,", printString);
else sprintf(printString, "%s-", printString);

2. The result.

Kompilera, designa...

3. The conclusion.

Det är bara att köpa syntarna. Som stöd för de eldsjälar som orkar hålla på. Oerhört imponerande må jag säga.

Programmera? PF skulle få hjärtinfarkt för mindre.

false messiah: ser ut som riktigt trevlig kvällslektyr det där . Alltid kul att läsa om sånt här från olika synvinklar.
Posta gärna mer sånt

PF: kan du inte försöka tjata hit nån av dom?

Ett par länkar till då:

DSP stuff
Synthesis Toolkit in C++
DSP mailing list

Om man kollar på länkarna från de här sidorna så finns det bra mycket mer också. Det jag själv skulle vilja veta är hur man kan mangla ljud med neurala nätverk. Sonicworx (ett av mina favoritprogram) har en del rätt fiffiga effekter, och Neuron verkar ju intressant. Kunde vara lite funkigt att lära ett nätverk att härma ett Moogfilter tex.

Jag satt faktiskt å funderade på hur man skulle kunna använda neurala nätverk och andra typer av AI i syntar så sent som igår.. helt klart möjligt.. man kan nog göra riktigt häftiga grejer med det dessutom
Ett neuralt nätverk som tar hand om alla parametrar i ljudet när man lirar t.ex.. man säger åt den att köra en mjuk men fortfarande digital pad med en massa sköna texturer i bakgrunden.. ber den snällt om att försiktigt förvränga ljudet till en kör och sedan till en bassline.. rätt skoj

Hehe... För några år sedan (90-91) programmerade jag en enkel synth i zeka-assembler på Amiga... Kul, men tyvärr blev den inte riktigt klar
Den hade bara 2x osc, 2x env, 1x lfo, 1x amp... Jag fastnade på filtret (har för mig att det var resonansen som kivade...)

  • Medlem
  • Järfälla
  • 2003-03-09 13:32

Finns många vägar man kan gå. Jag tycker nog att physical modelling och fraktaler är mest intressant just nu. Neuroner har jag svårt att tro att de är praktiskt genomförbart ännu. I alla fall i realtid.

pme: det används redan.. i realtid

Det är inge problem alls att använda sånt i realtid även på flera år gamla processorer.

  • Medlem
  • Järfälla
  • 2003-03-09 15:18

Jasså. Kan du peka på någon?

  • Medlem
  • Järfälla
  • 2003-03-09 16:17

Intressant. Jag har dock inte hittat något som skulle visa på att de gör något annat än styr parametrar i realtid. Det är dessutom en hårdvarulösning. Neuronerna är i kisel,inte i kod.

är du säker på att det inte är kod?
neurala nätverk har använts rätt duktigt i moderna spel.. vad är det som säger att det inte skulle gå? Du har väl märkt att processorer är väldigt snabba numera

  • Medlem
  • Järfälla
  • 2003-03-09 16:48

Problemet med neuroner är att man behöver många.
Så även om processorerna är snabba så äts de snabbt upp av behovet av neuroner. Men visst kan man använda neuroner, men det blir hybrider där man låter handskriven vanlig kod hantera indata och sedan låter man neuronerna styra högnivå funktioner. Tex en mixer, eller en riktning som
en neuron-spelare ska gå. Ska man ta steget fullt ut så ska neuronnätet styra DA-omvandlarna direkt!
Om jag inte har paritetsfel i minnet så behöver man ca 1 miljon neuroner för att emulera en myra.

japp.. men lixom många andra tekniker och teorier så förenklar man tills det hela fungerar tillräckligt bra. Helt enkelt neuroner används i applikationer. Det var väl det vi ville komma fram till?

  • Medlem
  • Järfälla
  • 2003-03-09 17:40

Fast någonstans går gränsen för att det blir meningslöst, där konventionel teknik fungerar bättre. Teknik bara för teknikens skull är kanske kul för tekniker, och kanske för reklammakare.
Men man måste nog se det hela med en smula sund
skeptisism. Titta på burken som en svart låda,
och fundera på om den verkligen låter bra.

En myra har typ 4-5 neuroner om jag minns rätt. Fast det är lite mer komplicerade neuroner, så det går inte att jämföra rakt av... (MIT var det väl som körde en simulerad myrhjärna i realtid för två-tre år sen?) men i vilket fall som helst går det att göra rätt mycket med rätt få neuroner (50-100), lite beroende på hur man organiserar dom.

Men eftersom Hartman lyckats göra något i hårdvara är det uppenbarligen inte omöjligt, och jag misstänker att en ordinär PC om två-tre år kommer vara tillräckligt snabb. Vad jag vet om Neuron (synten) så kör den ordinär kod, de har inte 1 miljon+ kiselneuroner. Kolla in Sonicworx för lite neurala ljudalgoritmer, och det funkar bra på min halvgamla mac.

Men det är ingen som har länkar till neuronnätsljudbehandling? (långt ord!) Jag funderade lite på hur man skulle göra, och kom fram till att man behövde rätt många neuroner om man ska göra något kul - man behöver väl göra någon slags neuron-fft för att behandla ljudet, och då blir det genast 500+ neuroner bara för input...

  • Medlem
  • Järfälla
  • 2003-03-09 21:54

På MIT så finns det forskare som bygger robotar som styrs av analoga kretsar. Det är inte neuroner eller neuronemulatorer. För visso av intresse för synthnissar. Neuroner fungerar nästan identiskt
på alla djur, från ryggradslösa blötdjur till Einstein.

Fast som jag fattar det så är neuronerna större (och mer komplexa i sig) på vissa djur, typ myror och därför är de rätt tacksamma att experimentera på - det är helt enkelt lättare att stoppa in en mätmojäng i dom. Det vad var jag hörde på min neurologikurs iallafall (har jag för mig).

Sen så var det nån på Analog Heaven som hävdade att myrneuroner är analoga: de går att lyssna på med rätt utrustning, och drivs av ström och rundgång. Man skulle alltså kunna styra en synt med en CV-modifierad myra..

1
Bevaka tråden