Design från början. Sampler

Planering och tankar kring eventuella framtida projekt.
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Design från början. Sampler

Inlägg av cosmox »

Hej Forumister!

Jag sitter här med pennan i hand och är på väg att dra igång ett nytt projekt.
Det hela ska bli en modulär sampler/vågformsgenerator när det är klart.
Tanken är att den ska sitta i en framtida/avlägsen modulär synth.

Jag har funderat på projektet ett tag nu och eftersom jag har semester i några veckor tänkte jag ta mig an det.
Problemet är att jag inte är riktigt säker på vart jag ska börja.
Projektet innehåller både analog,digital och uC-teknik (även en del metall arbete, men det löser sig nog..).

Frågorna är ganska många men till att börja med tänkte jag kolla vad ni brukar "checka av" innan ni börjar.

Tack på förhand!
/Hampus
Användarvisningsbild
JimmyAndersson
Inlägg: 26577
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Spännande projekt, minst sagt! :)

Ska den även kunna användas som Wavetable-synth med möjlighet att göra egna wavetable-"ljud"?



Nedanstående text är kanske jättelogisk, men jag kör på ändå. :)

När jag planerar ett projekt så börjar jag alltid bakvägen, dvs med slutet:

Vad ska projektet användas till. Exakt vilka funktioner vill jag ha med (allt: vad ska den kunna, antal kanaler, ska modulerna gå att ta isär och hur? osv). Hur ska den styras. Hur ska gränssnittet se ut; (knappar, potar, encoders, display, kopplas til datorn, osv). Var ska den placeras; i ett rack, i knät, på ett bord. Allt detta skriver jag upp. Ofta gör jag även en 3D-skiss på chassit och mäter hur stor den behöver vara. Det gör att apparaten blir lättare att se framför sig och man får även en liten bild av uppbyggnaden på insidan. Dvs ett eller flera kretskort, SMD/hålmonterat och främst byggstenarna som behövs för att realisera projektet. Vilket leder till nästa steg:

Vad innebär varje byggsten. I det här fallet: Vad ska samplern, VCO'n, mixern, osv bestå av i grova drag. Val av mikrokontroller, hur många bitars minne, ska något vara helt analogt, osv. Sedan letar jag scheman för att få inspiration till de byggstenar jag aldrig byggt tidigare och sätter mig in i detaljerna. I det här fallet skulle jag då börja med att göra ett miniprojekt för att lära mig skriva och läsa till den typen av minne som behövs.

Sedan tar jag en byggsten i taget och låter dem bli egna projekt. Mest för att undvika känslan av att det är ett jätteprojekt som kommer ta evighetslång tid att bygga.

Jag gillar trial&error och är inte så förtjust i att räkna ut varenda pytteliten detalj i förväg, så varje byggsten växer fram genom att först bygga en mini-version utan några krav på (i det här fallet) samplingstid eller lågt kvantiseringsbrus. Då lär jag mig vad som krävs för att få de specifikationer jag vill ha i slutet.


edit: Eller för att ta checklistan som min elektroniklärare i högstadiet lärde mig:
1) Vad är sökt. En apparat som... osv
2) Vad är givet. Vad vet jag redan nu?
3) Hur ser lösningen ut? (dvs kort sagt, vad behövs?)
4) Svar. (I det här fallet: De färdiga schemana.)

edit 2: Bytte "gymnasiet" mot "högstadiet". Inte lätt att komma ihåg.. :)
Användarvisningsbild
dar303
Inlägg: 5979
Blev medlem: 17 december 2003, 19:54:56
Ort: Sthlm

Inlägg av dar303 »

Trevligt!
Jag har faktiskt byggt nåt likanande, en wavetable som använder en pic för att generera tre AD-omvandlare . 2st 4 bit till ljudbank/ljud och en 8-bitars som man kopplar till sågtanden på en vco som läser ut själva datat ur ett eprom.
Jag hade även en påhängskrets (som aldrig fanns mer än på labbplatta) där man man bytte ut epromet mot ett litet statiskt ram som klockades av en 4046-vco för att sampla/spela upp.

Det funkar ganska bra för att vara byggt på "måfå" med en kombination av veroboard och point to point med virtråd fast det ser för djävligt ut!
Jag har kvar wavetablen i mitt modular och låter mycket bra och knastrigt 8-bit, en del beroende på mitt taskiga ingångssteg och lite beroende på ett förmodat programmeringsfel i AD:n! :) punk...

Ett tips som jag kan ge är att bygga wavetablen med "zero-crossing"-detector så att den inte kan byta ljud eller bank förrän sågtanden på ingången är på lägsta nivå, det gör att det inte klickar och knastrar och möjliggör svep och modulation mellan vågformer.

Kolla Grant Richter's hemsida och det fantastiska lilla programmet Wave256 som du kan använda för att tillverka wavetables med, både konvertera samplingar och rita/matematisktm generera egan.

För att underlätta sampling så kan du göra nån form av komparator på ljudingången som triggar record-mode, det underlättar.
Gör det även möjligt att slå av zero-crossing på wavetablen (för digitalt kaos) och gör eventuellt så att man kan slå av eller växla individuella bitar på både in och utgången! Testa i alla fall på labbplatta!

Eventuellt så lägg in en PLL som driver wavetablen, då slipper du ha så hög klockfrekvens för drivningen.

Om du ska göra samplern enligt konstens alla regler så ska den ju ha antialiasing-filter som trackar samplingsfrekvensen, det görs nog enklast med ett switched capacitor filter. kolla in Ken Stones "bi-n-tic"-filter en enkel variant.
Om du ska använda anti-aliasingfilter, testa att göra dom avstängningsbara, vikningsdist är fint!

För inspiration, googla waveform city, miniwave, ken stone wavetable ovh doepfer sampler.

Ja, jag har funderat en del på detta... :)
Användarvisningsbild
Bigstone
Inlägg: 592
Blev medlem: 22 september 2004, 13:04:12
Ort: Linköping

Inlägg av Bigstone »

:o Den här tråden kommer man att följa med spänning!!! :wink:
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Inlägg av cosmox »

Tack för svaren!

Jimmy: Det var just det jag sökte.
En metodisk genomgång för hur ett projekt byggs upp.
Jag tänkte inte bara på mig själv utan även de nybörjare här på forumet som kanske behöver en hint för att komma på rätt väg.
Bra skrivet.

dar303: Tack för tippsen! Det märks att du snöat en del på d :)
Jag kollade in Wave256 (fick leta lite men fann det till slut).
Läckert och smidigt program. Jag tänkte skissa på något liknande när hårdvaran börjar ta form.

Några frågor:
Jag har inte använt en dessa kretsar än mindre byggt upp de från grunden.
Hur tänkte du att man skulle använda en phase locked loop?
Hur skulle en sån design med ZCD se ut?

Det skulle va kul att se hur ditt bygge ser ut.

Jag har suttit och skissat en del på det jag tror är den centrala delen för att samplern ska bli så mångfaseterad som möjligt.
(innan jag läste dar303´s inlägg.)
Klockan och minnesstrukturen.
Om man kan komma åt olika adresser i minnet på ett enkelt och snabbt sätt borde man ju kunna lagra fler samplingar/vågformer. eller?
En annan tanke jag kom på här om dagen var SD-minnen som man kan dumpa materialet till. (fast det får vänta lite...)

Jag har tänkt så här.
Minneskortet är ett separat kort med egen uC som kontrollerar räknarna för adress. (tex 74HC193 eller liknande)
På såvis kan man skyffla in adresser, räkna upp/ned stanna etc på ett ganska enkelt sätt.

Variant två var att använda shiftregister för adress styrningen (typ 74HC595).
Man låter "minnes uCn" ha en tabell med olika kommandon som skickas från huvud uCn via något lämpligt protokoll.
När ett kommando (tex start) tas emot av minnes uCn skickar den adressdata och styrning för minnena till shiftregistren.

En annan fördel med att ha kontroll på minnena är att man kan behandla datan.
Det kommer säkert att ta ett tag för uC att räkna på men jag kan tänka
mig att lägga in funktioner som fade, reverse, gain m,m.
Narturligtvis kommer det inte funka i realtid. Kanske reverse.

Jag är inte helt säker på att det där "makar så mycket sense" men jag återkommer snart med ett schema på det.
Jag ska ta mig tid att pilla ihop ett blockschema på hur det hela är tänkt att se ut någon gång.

/Hampus
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Inlägg av cosmox »

Här är ett schema på hur jag tänkte att minneskortet med shiftregister skulle se ut.
Det är inte färdigt men principen går fram.

Frågan är om det är praktiskt att göra så här.
Jag är inte helt säker på att det kommer att gå fort nog för att få ut någon vettig bandbredd ur det.
Jag ska räkna på det och se.

Jag har använt 62256 sram minnen för att det var något som jag hade liggandes.
Tanken var att göra ett litet minneskort som är stabilt och sedan börja på ADC/DAC etc.
Sen när grundprincipen (förhoppningsvis) fungerar kan man göra det igen fast på riktigt.

Jag kommer nog behöva ganska mycket hjälp med programeringen till detta
eftersom jag bara kan basic och lite c.
Men jag ska prova asm själv några gånger först.

Förövrigt så kan jag meddela att att spetsen på min lödkolv har försvunnit spårlöst.
Hur kan något som sitter fastskruvat bara försvinna??
Jag har varken tomtar här hemma eller på loftet så det är ju lite knepigt.
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Inlägg av cosmox »

Jag lyckades få tag i nya minnen idag. Jag kommer köra med 128K*8 SRAM.
ELFA hade dessa "73-731-52" 20ns och i DIP paket.
Att göra kort hemma med SMD och 5mil trejsar var lite för pilligt att hålla på med.
Ska hämta dessa minnen imorn och börja labba på brädan.
Återkommer med resultatet.


EDIT: Lödspetsen är nu återfunnen....
Senast redigerad av cosmox 12 februari 2008, 12:48:12, redigerad totalt 1 gång.
Användarvisningsbild
dar303
Inlägg: 5979
Blev medlem: 17 december 2003, 19:54:56
Ort: Sthlm

Inlägg av dar303 »

cosmox skrev:Några frågor:
Jag har inte använt en dessa kretsar än mindre byggt upp de från grunden.
Hur tänkte du att man skulle använda en phase locked loop?
Hur skulle en sån design med ZCD se ut?

Det skulle va kul att se hur ditt bygge ser ut.

/Hampus
Om man ska driva samplern/wavetablen från en analog oscillator (VCO) så kan man behöva en snabb klocka som följer förändringar i den analoga oscillatorns frekvens, då passar en PLL bra.
Vad är ZCD?

Jag har bara några fulbilder, PM:ar...skäms! :)
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Inlägg av cosmox »

Ja, det har du ju helt rätt i! Jag har faktiskt inte tänkt så mycket på att den
ska kopplas till en vco eller triggas av ett keyboard.
Men nu ska jag börja göra det :)

ZCD, zero crossing detector. Det var analog devices som började säga så inte jag :roll:
Jag har sett att det finns kretsar (pgaer och liknande) som använder ZCD för att
bli kvitt "popps" och sånt vid mute osv.

EDIT: Jag tycker forumet behöver dina bilder. Personligen tyckte jag det såg fräckt ut. Men jag gillar den typ av byggen också :)
Skriv svar