Matrix DW 1000

quisquater

Ebos
Lid sinds
22 december 2008
Berichten
230
Locatie
Belgische kust
Dag allen,

heb een Matrix 1000 op de kop kunnen tikken vandaag waar ik mee aan de slag wil. Eén van de eerste dingen die zou ik zou willen doen is de mogelijkheid bieden om extra golfvormen te voeden aan de CEM3396.

Het zouden single period golfvormen zijn, een beetje te vergelijken met de Korg DW 8000 (vandaar de DW in mijn onderwerp :)) of een Ensoniq ESQ1.

Heeft iemand ervaring met een DW8000 of ESQ1? Breiden de extra golfvormen het klankpalet aanzienlijk uit?

Edwin
 
Uitstekend idee! En hoe wou je dit concreet doen?
 
De MAAD uitbreidings chip voor de Cheetah (zelfde chip toch) heeft 3 extra golfvormen ofzoiets maar of het echt mogelijk is om DW/ESQ -achrige single period waves erin te zetten enzo.... heb je dan geen extra geheugen chips dinges nodig? De DW8000 heeft zijn waves op 256k ROM chips zitten

Ben wel benieuwd hoe je dit wilt doen!
 
Ben ook zeer benieuwd! Zou er zo voor tekenen!
 
Volgens de datasheet van de CEM3396 is het mogelijk om een extern signaal aan te sluiten. Er zijn verschillende mogelijkheden om de bestaande kloksignalen geleverd door de 8254 te gaan gebruiken om extra golfvormen toe te voegen, hieronder alvast twee, maar er zijn veel meer mogelijkheden:

Ofwel met een PLL de frequentie van deze kloksignalen vermenigvuldigen met bv 64. Hiermee een teller klokken die een Eprom uitleest waarin de extra golfvormen (in dit geval 64 samples per periode) zijn opgeslagen, de Eprom hangt aan een DA omzetter die dan met de CEM3396 verbonden is, er kan eventueel RAM gebruikt worden ipv een Eprom zodat de golfvormen makkelijk kunnen veranderd worden met behulp van bv een PC.

Ofwel een externe interrupt van een PIC controller of Arduino of andere controller verbinden met deze vermenigvuldigde kloksignalen en bij een interrupt telkens een volgende sample, opgeslagen in deze controllers naar een DA convertor sturen, of compacter nog, een controller met interne DA omzetter gebruiken. Al weet ik niet als dergelijke controllers snel genoeg zijn, ik zou even de datasheets moeten bekijken.

Voor mijn collega forumbezoekers met meer ervaring terzake dan ik: zie ik dingen over het hoofd? zouden jullie het anders doen?

Gelukkig zitten de CEM's op een voetje, zodat het makkelijk is om ze te vervangen door een pcb met de CEM3396 en de extra componenten.
 
Ik heb een Arduino Due bordje besteld bij Conrad. Daar draait een krachtige 32 bit controller op geklokt op 84MHz en ze heeft bovendien twee 12bit DAC's aan boord. Hier kan dus beslist iets mee gedaan worden dat veel verder gaat dan single cycle waveforms genereren. Komt normaal gezien eerstdaags mijn brievenbus binnen vallen, dan ga ik ermee aan de slag. Ik hou jullie op de hoogte.
 
Volgens de datasheet van de CEM3396 is het mogelijk om een extern signaal aan te sluiten. Er zijn verschillende mogelijkheden om de bestaande kloksignalen geleverd door de 8254 te gaan gebruiken om extra golfvormen toe te voegen, hieronder alvast twee, maar er zijn veel meer mogelijkheden:

Ofwel met een PLL de frequentie van deze kloksignalen vermenigvuldigen met bv 64. Hiermee een teller klokken die een Eprom uitleest waarin de extra golfvormen (in dit geval 64 samples per periode) zijn opgeslagen, de Eprom hangt aan een DA omzetter die dan met de CEM3396 verbonden is, er kan eventueel RAM gebruikt worden ipv een Eprom zodat de golfvormen makkelijk kunnen veranderd worden met behulp van bv een PC.

Ofwel een externe interrupt van een PIC controller of Arduino of andere controller verbinden met deze vermenigvuldigde kloksignalen en bij een interrupt telkens een volgende sample, opgeslagen in deze controllers naar een DA convertor sturen, of compacter nog, een controller met interne DA omzetter gebruiken. Al weet ik niet als dergelijke controllers snel genoeg zijn, ik zou even de datasheets moeten bekijken.

Voor mijn collega forumbezoekers met meer ervaring terzake dan ik: zie ik dingen over het hoofd? zouden jullie het anders doen?

Gelukkig zitten de CEM's op een voetje, zodat het makkelijk is om ze te vervangen door een pcb met de CEM3396 en de extra componenten.

jzs mooiverhaal
esq achtig is top , niet gwoon samler > input op 3397 doen, ...roepookmaarwat']
:engel:
 
Sampler input -》cem3396, ok, maar ik wil dat de modulation sources die de dco frequentie als destination hebben ook blijven werken, dus die vlieger gaat niet op. Verder is het geheel wat meer portabel als er geen sampler moet mee gesleurd worden :-). Heb, hoop ik, een methode gevonden om met een simpel algoritme vrij verrassende golfvormen op te wekken. Het zal ofwel, meer dan waarschijnlijk, op niets uit draaien, maar hopelijk iets laten horen wat nieuw is. Ben het eerst in een c# programma op pc wat aan het uit proberen. Als ik op iets stoot dat de wereld moet horen, dan horen jullie dat eerst.
 
En dan verder geen note on/off gebruiken, puur de frequentie voor de oscillatoren?
 
Note on/off is een gate signaal. Daar worden over het algemeen envelopes mee aangestuurd.

Maar je kunt toch pitch envelopes gebruiken voor zaken als sync, ringmod, ENV -> LFO -> VCO enzovoort?
 
Het begint wat vorm te krijgen. Matrix 1000 meets FM meets wave sequencing, of zoiets :-).

Heb het volgende gemaakt op de Arduino: een één operator FM generator die willekeurige golfvormen gebruikt als drager en modulator (en dus niet enkel sinussen) of zelfs wave sequences.

Hiertoe zijn drie potmeters op de Arduino aangesloten, eentje bepaalt de frequentieverhouding tussen drager en modulator, eentje bepaalt de modulatiediepte en een laatste bepaalt de golfvorm uit een setje van 100 golfvormen. In plaats van die pots kan uiteraard ook een cv gebruikt worden zodat frequentieverhouding, modulatiediepte en de golfvorm kunnen gemoduleerd worden door om het even wat.

Die single cycle golfvormen haalde ik van http://www.adventurekid.se/akrt/waveforms/adventure-kid-waveforms/ (helemaal gratis, 4300 single cycle golfvormen - een aanrader voor wie single cycle waveforms zoekt!) en ik resampelde ze naar 256 samples per periode en 12 bit.

Draaiende aan die pots krijg ik alvast een heel breed en experimenteel klankenpallet te horen.

Volgende stap is om de frequentievermenigvuldigers te maken die de klok, waarmee de CEM3396 wordt geklokt, te vermenigvuldigen, daarmee de Arduino te sturen en de uitgang van de Arduino dan te gebruiken als extern signaal voor de CEM3396.

Als de hardware wat af is en aangesloten op de Matrix post ik zo snel mogelijk foto's en geluiden.
 
Vet hoor, ik ben heel benieuwd of je het voor elkaar krijgt, en ben dan ook erg geïnteresseerd om dat bij mijn m1000 in te bouwen. :)

Ga je de kennis delen?
 
Uiteraard wil ik die kennis delen, maar ik wil eerst weten als die wel de moeite waard is om gedeeld te worden :-). Eerst resultaten, dan deel ik alles met iedereen die interesse heeft.
 
In bijlage toch reeds een fotootje. Op de voorgrond de Arduino Due met de drie potmeters, op de scoop een opgewekte golfvorm.
 

Attachments

  • due.jpg
    due.jpg
    51 KB · Bekeken: 81
Verder gewerkt aan, een prototype, wire-wrapped pcb die de omschakeling tussen matrix 1000 en externe waveforms mogelijk maakt. Bijzonder veel fun om te doen, herinnert me aan mij tienerjaren :-)
Later dit weekend wat meer technische uitleg en wat foto's, de matrix is immers ge-opend en ge-modded ondertussen :-).
 
Zoals beloofd wat foto's. Wat je ziet is de binnenkant van een Matrix 1000 waarbij één van de CEM3396's vervangen is door een wire-wrapped proto printje. Dat proto printje zit vast geklikt op de socket waar normaal de 3396 zit.

Op dat proto printje een CEM 3396 waarvan pinnen 4 en 8 door een analoge multiplexer (4053) worden verbonden met ofwel het M1000 moederbord ofwel met de externe signalen die van de Arduino zullen komen. Op die manier kan je kiezen voor de standaard Matrix 1000 golfvormen of voor de nieuwe.

Ik zou het externe signaal eventueel ook op een andere pin van de CEM3396 kunnen inpluggen, met name de CA pin, zodat de golfvormen van de M1000 samen met de nieuwe kunnen gebruikt worden. Probeer ik zeker ook eens, want met wat detunen moet dit een zeer vol geluid kunnen geven (4 DCO's per voice!).

Bedoeling is uiteraard dat dit voor alle zes voices zo wordt, maar om te experimenteren heb ik voorlopig genoeg met één voice.

Volgende stap is om de kloksignalen van de M1000 te gaan vermenigvuldigen (met een PLL 4046) en die vervolgens als klok voor de Arduino golfvormen te gebruiken. Dat wordt een nieuw proto printje met daarop ook het beperkte analoge circuit om de uitgang van de DAC van de Arduino te converteren naar iets dat kan worden aangeboden aan pinnen 4 en 8 van de CEM3396.

Pas dan komen de eerste geluiden!
 

Attachments

  • WP_20150412_001.jpg
    WP_20150412_001.jpg
    73,6 KB · Bekeken: 87
  • WP_20150412_002.jpg
    WP_20150412_002.jpg
    64 KB · Bekeken: 82
Back
Top