eigen tb 303 kloon

Natural_Demon

Stamgast
Lid sinds
29 Maart 2005
Berichten
237
Locatie
South
is er iemand de een source code heeft voor een tb 303 clone met een pic processor?
of iemand die dat kan schrijven?
ik wil namelijk een identieke kloon maken van het origineel tb 303 schema maar zonder sequencer.
ik heb een pic programmer en ik ook kan wel programmaatjes schrijven om met ledjes te spelen, maar ik kan niet met midi bytes omgaan.
geen idee hoe die uitzien en ik heb nog wel MidiOX.
ik weet wel ongeveer hoe, omdat ik de source code van de 9090 van Trevor Page uren lang heb door gesnuffeld.
ik heb ook oudere projecten van Trevor Page gevonden, maar geen bron code erbij gevonden.
Tony Algood verkoopt geen TDAC meer en de broncode wil hij me niet verkopen.
: (
de mensen van waldorf vragen zo'n 12.000€ voor een firmware.
wie kan helpen?

groetjes
 
ik gebruik een pic mcu.

bovendien zijn de files van de x0b0x in c.

ik heb geen c compiler voor mijn pic projecten.
 
Ga voor een C compiler, voor de pic zijn gratis c compilers te krijgen(waarschijnlijk ook via sourceforge.net), als je een wat groter programma wil schrijven is het grootste deel van de software niet tijdkritisch en kun je met c makkelijk uit de voeten, functies die wel kritisch zijn schrijf je in assembler. In c is het makkelijker om gestructureerd te werken overzicht te houden in je software en te debuggen.
Als je iets met midi en een microcontroller wil doen kun je het best eerst een programma schrijven dat midi data kan verwerken, overweg kan met runningstatus, corrupte data en gemiste bytes. Dit kun je het best schrijven in c in een compiler die draait op een PC dan kun je makkelijk debuggen en met in en uitvoer via scherm en toetsenbord kun je kijken of het werkt zoals het zou moeten. Als het dan werkt plak je de code in de pic compiler en verander je de input in de midi invoer en de output in de output poorten.
Op het net zijn een aantal stukken over midi te vinden, lees deze eerst es door om een idee te krijgen hoe de midi standaard in elkaar zit. Niet complex maar wel wat uitzonderingen die ervoor zorgen dat het best een stukje programmeren is.
Al met al is het best een flink project, een 303 sequencer emuleren met een midi input is toch iets wat je niet ff uit je mouw schut. Vooral als je nog een beetje wil verdiepen in timing van de sequencer.
 
nee, zonder sequencer.

gewoon als rack.

dus alleen uitgangen hoog een laag zetten zonder tempo en dergelijk gedoe.

eigenlijk alleen het sound gedeelte achter de 4174 ic.


ik wil wel kijken of ik de pots niet kan vervangen door ad5220 en rotary encoders " data gedeelte van de code heb ik al doordacht" en voor de glide funtie wil ik de laagste noot op een midi keyboard gebruiken.

m.v.g,

marco
 
Is dat nou niet juist de kracht van een orginele 303...de sequencer?

mischien wel.

maar mij gaat het om het geluid.
digitaal is mooi, maar niet vet.

ik gebruik logic als sequencer.

ik wil ook een tb style sequencer maken, maar dat staat pas later op de planning.

moet daarvoor eerst nog gereedschappen voor kopen.


Ga voor een C compiler, voor de pic zijn gratis c compilers te krijgen(waarschijnlijk ook via sourceforge.net), als je een wat groter programma wil schrijven is het grootste deel van de software niet tijdkritisch en kun je met c makkelijk uit de voeten, functies die wel kritisch zijn schrijf je in assembler. In c is het makkelijker om gestructureerd te werken overzicht te houden in je software en te debuggen.

ik denk dat je gelijk hebt.
met een beetje "if else'n" als allerlei instructies en loop constructies die je met assambler hebt.

ff de source van de x0b0x eens dorpluizen.
 
Is het maken van de digitale interface niet het 'makkelijke' onderdeel van een goede 303-kloon maken?

Volgens mij zijn de meeste cloners het langst bezig met de juiste analoge componenten kiezen (en vinden) om het er een beetje op te laten lijken. Ik weet niet of je precies het geluid van een 303 wil kunnen nabootsen of gewoon een fijne analoge mono(bass)synth wil klussen?
 
Origineel geplaatst door Natural_Demon
dus alleen uitgangen hoog een laag zetten zonder tempo en dergelijk gedoe.
Dus de timing van het hoog en laag maken van de poorten is niet van belang voor de "sound"? Lijkt me wel.

ik wil wel kijken of ik de pots niet kan vervangen door ad5220 en rotary encoders " data gedeelte van de code heb ik al doordacht" en voor de glide funtie wil ik de laagste noot op een midi keyboard gebruiken.
Ook gedacht aan de logaritmische potmeters? Betaalbare rotary encoders hebben ergens tussen de 15 en de 30 pulzen per omwenteling, vier of meer rondjes draaien voor de 128 stapjes van de ad5220 is niet praktisch. Met software kun je bij snel draaien nog wel wat oplossen.
Wat betreft de componenten zijn eigenlijk alleen de ba662 en de SK30(O) lastig te krijgen de rest valt wel mee.
 
Origineel geplaatst door Twiki
Dus de timing van het hoog en laag maken van de poorten is niet van belang voor de "sound"? Lijkt me wel.
]


ik weet niet precies wat je bedoelt.
bedoel je de program loop?

ik denk dat het gewoon lopen is en dan filtern.
midi tempo bits ga ik ignoren, alleen midi channel, note on en note off instresseerd me.
(als user interface, denk ik zo'n beetje als de novation bass station, maar dan met minder opties.)
midi channel keuze, sound settings geheugen, ect, ect
wat ik wil bereiken is het schem zo behuden als het is, meschien ADSR inbouw van de mc202.
een mix knop voor de wave vormen en de standard keuze switch naturlijk.
pots vervangen door ad5220, zodat ik de digipots insteling kan opslaan in de eeprom.

het is toch maar een mono synthy.
alhoewel ik er wel aan denk om hem polyfoon te maken.
maar, dan moet ik enkele delen van het schema meervoedig inbouwen.



het moeilijkste gedeelte is eigenlijk de midi bytes op zichzelf.
ik zit nu met een pic 16f84a te knutselen.
de 6n139 zit op poort rbo/int.

de vraag is nu ...
het geheugen achter deze poort, slaat deze opgevangen midi bytes op en moet je later gaan filteren op de locatie van het geheugen of moet je op de snelheid van 32.xxx bauds gaan filteren?

Origineel geplaatst door Twiki
Ook gedacht aan de logaritmische potmeters?
ba662 en de SK30(O)
nee, niet echt, ik zal het eens opzoeken.

Origineel geplaatst door Twiki
Betaalbare rotary encoders hebben ergens tussen de 15 en de 30 pulzen per omwenteling, vier of meer rondjes draaien voor de 128 stapjes van de ad5220 is niet praktisch. Met software kun je bij snel draaien nog wel wat oplossen.
ba662 en de SK30(O)[/B]
ja, je zou de gevoeligheid, kunnen oplossen met software en intregreren in de userface.



Origineel geplaatst door Twiki
ba662 en de SK30(O)[/B]

wat niet te krijgen is kijk ik wel af van x0b0x, wat ik gezien heb is dat hun ook niet allemaal dezelfe dingen gebruiken.

mvg,

demon
 
gebruik gewone draaiknoppen, geen van die digitale stap dingen, uw geluid zal nooit mooi vloeien, alles verloopt in stappen..

op de machinedrum hebben ze dit goed opgelost (knoppen met KLIK modus)
 
Wat probeer je nu eigelijk te maken? Een midi naar cv/gate converter of ook een gehele digitale aansturing van het analoge gedeelte van een 303?

Op internet is er genoeg info te vinden om midi naar cv/gate interface te bouwen. Als ik me goed herinner ga je de UART van je pic moeten gebruiken om seriële midi data in te lezen. Zoek eens op midi + pic + ... en bv. pic forums. Atmel heeft ook leuke controllers en daar zijn ook zeer goede forums voor.

Voor de digitale aansturing van het analoge gedeelte heb je denk ik verschillende mogelijkheden. Hier vind je bv. het analoge demultiplexer board schema van een Voyetra 8 http://www.wohmart.com/v8/ .

Begin misschien eerst met de midi/cv toestanden :D
 
Origineel geplaatst door Natural_Demon
ik weet niet precies wat je bedoelt.
Laat maar zitten, je bent niet van plan om een clone te bouwen maar een bass synth.
Origineel geplaatst door Natural_Demon
het moeilijkste gedeelte is eigenlijk de midi bytes op zichzelf.
ik zit nu met een pic 16f84a te knutselen.
de 6n139 zit op poort rbo/int.
de vraag is nu ...
het geheugen achter deze poort, slaat deze opgevangen midi bytes op en moet je later gaan filteren op de locatie van het geheugen of moet je op de snelheid van 32.xxx bauds gaan filteren?
Midi data is serieel en werkt op een snelheid van 31250 bps, het is dus handig om een uart te hebben, dan kun je 95% van de tijd iets anders doen met je controller en als een midibyte binnen is pas bezig gaan houden met het verwerken. Omdat de pic16f84 geen uart heeft moet je een software uart schrijven, code en info is op internet te vinden, maar dan ben je dus 90% van de tijd met het binnenhalen van midibytes bezig. Zoek een controller met een uart, scheelt een hoop gezeik.
Persoonlijk ben ik niet zo'n fan van de controllers van microchip, ik werk meerstal met Atmel controllers, voor dit project zou ik een Atmega 8 nemen.
Verder zou ik de rotary encoders skippen, daar heb je veel processortijd voor nodig om die goed uit te lezen. Potmeters gebruiken en die uitlezen met de AD-converter van de atmega. Beter nog geen digitale interface, heb je ook geen zippernoise en ander geeikel.
Verder zou ik er nog es goed over na denken of je de kennis in huis hebt om dit project tot een goed einde te brengen voordat je begint te denken in termen van polyfonie en andere toevoegingen.
 
Origineel geplaatst door Twiki
Persoonlijk ben ik niet zo'n fan van de controllers van microchip, ik werk meerstal met Atmel controllers, voor dit project zou ik een Atmega 8 nemen.
Verder zou ik de rotary encoders skippen, daar heb je veel processortijd voor nodig om die goed uit te lezen.

Zelf werk ik inderdaad ook veel liever met Atmel controllers icm een AVR C-compiler. Dat van die rotary encoder valt wel mee hoor. Je hangt de encoder aan twee external interrupt pinnen en je laat gewoon de interrupts het werk doen. Als je meerdere encoders hebt, dan sluit je ze zowel gezamelijk op de twee external interrupt pinnen en je geeft verder elke encoder een aparte input pin van een I/O-poort. Als de controller een interrupt van een encoder krijgt, dan kan de software aan de status van die I/O-poort zien aan welke encoder gedraaid is. :)
 
De richting van draaien kun je zien aan welke interrupt eerst binnenkomt neem ik aan. Maar wordt dat niet lastig als je aan twee of meer encoders in verschillende richtingen draait? Hoe knoop je de meerdere encoders aan de twee interrupt pinnen zodat je bij iedere stap een interrupt krijgt?
 
Is het niet gewoonweg goedkoper om dmv. een potmeter de stroom door een condensator te regelen, om vervolgens dan de tijd te meten van bv. ontladen? Dan stuur je oplaadpulsjes en dan meet je hoe lang het duurt voordat het signaal (bv. met een schmitt trigger) onder een bepaalde waarde is?

Schrijf die tijd dan bv. in een vast register of geheugenplaats, doe een deling ofzo (of kijk alleen naar een paar MSB's), en klaar ben je; je code leest dan alleen van die plek.

Met behulp van een mux kan je vervolgens bv. 8 van die knoppen checken mbv. 3 pinnen.
 
twiki
SK30(O)[/B]

de x0b0x gebruikt hem ook, slik

twiki
Laat maar zitten, je bent niet van plan om een clone te bouwen maar een bass synth.
exacto, maar wel analoog, niet als mijn drumstation, die wel leuk klinkt maar niet analoog is.

twiki
Verder zou ik er nog es goed over na denken of je de kennis in huis hebt om dit project tot een goed einde te brengen voordat je begint te denken in termen van polyfonie en andere toevoegingen.
mijn hoofd vak op de lts was eletro, dus ik ben niet helemaal onbekent.
nadeel is wel dat het al 16 jaar geleden en voornamelijk als monteur onderweg ben geweesd.
goed geld verdient altijd, helaas nu niet, kut spanje.
maar das waar een ander verheel

ik heb zeker 2 maanden lang codes van lui en datasheet bestudeerd.
de instructies ken ik nu wel zo beetje uit mijn hoofd.
programeren in andere talen kon ik al.

mijn eerste doel is zoals andere reeds gezegd hebben een midi/cv converter bouwen met een 4174 of 40174.
dan uitbouwen.

twiki
De richting van draaien kun je zien aan welke interrupt eerst binnenkomt neem ik aan. Maar wordt dat niet lastig als je aan twee of meer encoders in verschillende richtingen draait? Hoe knoop je de meerdere encoders aan de twee interrupt pinnen zodat je bij iedere stap een interrupt krijgt?
ik denk dat ik daar al een oplossing vor gevonden heb.
ik ben de naam van de ic kwijt, maar het idee is, om de A en B pinnen van de encoders naar de MCU (of via een omweg, ic'tje) breng en onderweg overbruggen met een t splitsing



---
| m |
Aº----º---------| c |----º---------ºA
encoder a | | u | | encoder b
Bº--------º-----| |--------º-----ºB
| | --- | |
--- --- | --- ---
\|/ \|/ | \|/ \|/
--- --- | --- ---
| | - | |
---º-----|i|------º---
|c|
-
ik denk dat dit de oplossing is(en mischien kun je zelfs deze nog verbeteren) maar het gaat om het idee,
om de detecteren welke encoder draaidt.
al is werkt het maar met 1 encoder per keer.


toon
Wat probeer je nu eigelijk te maken? Een midi naar cv/gate converter of ook een gehele digitale aansturing van het analoge gedeelte van een 303?
de hele tb303, maar zonder het sequencer gedeelte, maar wel met lcd en user geheugen (die de ad5220 waarden bewaard in de onboard eeprom) en nog wat andere settings.
midi kanaal en dergelijke.
en cursor toetsen

tooni
Begin misschien eerst met de midi/cv toestanden
uiteraard, daar ben ik nu mee bezig, ik ben nu aan het winkelen.
vandaag alle onder van de 303 en de x0b0x vergleken en genoteerd, zal nu dadelijk mijn bestelling maken bij een ebay winkel.

ja, ik wil straks een pic18f542(o) gebruiken die heeft wel UART.
maar die heeft mijn lokaal verkoopt punts niet.


chromisX
Is het niet gewoonweg goedkoper om dmv. een potmeter de stroom door een condensator te regelen, om vervolgens dan de tijd te meten van bv. ontladen? Dan stuur je oplaadpulsjes en dan meet je hoe lang het duurt voordat het signaal (bv. met een schmitt trigger) onder een bepaalde waarde is?
zoals ik al zei is het alweer 16 jaar geleden toen ik de school verliet.
ik tijdens het leren van instructies, datasheet en dergelijke ook bezig met het upgraden van mijn breintje.
condensator(apart van hun werking dat wel duidelijk is, zijn het toch moeilijke dingen hoor, moeilijker als dergelijk ic'tje), pull low, pull high.
effe weer bijspijkeren wat door gelekt is van al de house parties, lol : )
but ik shall consider your solution as a posibillity.

twiki
 
---
| m |
Aº----º---------| c |----º---------ºA
encoder a | | u | | encoder b
Bº--------º-----| |--------º-----ºB
| | --- | |
--- --- | --- ---
\|/ \|/ | \|/ \|/
--- --- | --- ---
| | - | |
---º-----|i|----------º---
|c|
-

ziet er slechter uit, als datr wat ik orgineel maakte met notepad.

bedank voor uw tijd (met het lezen van het hele testament) en antwoorden zover.

met vriendelijke groet
 
liever pic als iets anders.
die jongen can ucaps dat pic beter zijn voor midi.

en ik heb een pic brander.

dus dat zouden weer meer kosten zijn
 
Back
Top