Op Elektronicaforum.nl is de kans om een antwoord op je vraag te krijgen heel groot. In overzichtelijke subcategorieën kun je vragen en antwoorden over elektronica zoeken, plaatsen en beantwoorden.
Elektronica Forum is onderdeel van Schakelingen Online
 


 
Midi Recorder

 
Plaats nieuw bericht   Plaats Reactie    Schakelingen Online Forum Index -> Audio
Auteur Bericht
Stefy



Geregistreerd op: 19-10-2003
Berichten: 32

BerichtGeplaatst: Zo 26 Okt 2003, 20:48    Onderwerp: Midi Recorder Reageer met quote

Hallo,

Ik ben op zoek naar een bouw schema van een Midi Recorder , of als iemand weet hoe ik het zelf kan ontwerpen.

Alvast bedankt,

Stefy Lory.
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Mat Janssen
Moderator
Moderator


Geregistreerd op: 10-12-2003
Berichten: 11178
Woonplaats: nederweert

BerichtGeplaatst: Wo 31 Dec 2003, 17:19    Onderwerp: Reageer met quote

Midi recorder,
Wil jij de zaak op een harddisk of gewoon in ram laden en weer terug lezen?
ik denk dat via google heel veel is te vinden.
Lukt het jou niet willen wij wel zoeken maar dan wel iets laten weten.
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Jo
Moderator
Moderator


Geregistreerd op: 10-12-2003
Berichten: 24
Woonplaats: Zoetermeer

BerichtGeplaatst: Zo 4 Jan 2004, 18:34    Onderwerp: Reageer met quote

Kan gedaan worden met een PIC processor en een hoeveelheid RAM geheugen. Iedere binnenkomende statusbyte opslaan met daaraan vooraf een tijdcode afhankelijk van de verstreken tijd t.o.v. de vorige statusbyte. Overige bytes gewoon opslaan na de statusbyte.
Kost wat programmeerwerk en het ontwerp van een goede interface naar de RAM, bv I2C.
Jo
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Mat Janssen
Moderator
Moderator


Geregistreerd op: 10-12-2003
Berichten: 11178
Woonplaats: nederweert

BerichtGeplaatst: Zo 4 Jan 2004, 22:50    Onderwerp: Reageer met quote

Het PIC idee is leuk.
Ook is het mogelijk eeprom aan een PIC ship te koppelen zodat de zaak na uitschakelen nog bewaard kan blijven.
Alleen RAM zal altijd erbij moeten omdat het tijd kost eeprom te beschrijven.
Ik zie het al helemaal voor me hoe zoiets eruit komt zien qua hardware en ook qua software een beetje.
Het enige wat ik nog moet bestuderen is hoe ziet er een komplete MIDI string eruit samen met de tijdcode en de rest van de eventuele erbij geplaatste instrumenten.

Jo, misschien komen we er samen wel uit!
Mat
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Jo
Moderator
Moderator


Geregistreerd op: 10-12-2003
Berichten: 24
Woonplaats: Zoetermeer

BerichtGeplaatst: Vr 9 Jan 2004, 11:30    Onderwerp: Reageer met quote

Hierbij een protocol dat ik gebruikt heb. Ik heb SPI memory gebruikt, ik vond de interfacing wat makkelijker dan I2C, maar het blijkt dat de chips weer moeilijker verkrijgbaar zijn.
Groet, Jo

==
PIC16F873 of mischien ook F628 bruikbaar.
Klokfrequentie op 20 MHz
Tmr0 gebruiken als klok, precounter op 16
tmr0 genereert interrupt en houdt daarin 2 counters bij, cnt1 en cnt2
cnt 2 incrementeert als cnt1 overflowt.

Geheugen chips bv I2C of SPI type interfacen naar PIC. (eeprom).
Een buffer creeren op bank 1 direct na de hardware adressen, van 64 bytes.
Binnenkomende data samen met timing in die buffer schrijven en als de buffer vol is
deze in blokvorm naar het externe geheugen overbrengen.

Procedures:
het programma leest binnenkomende byte van serial input.
ignore f8 f9 fa, fb fc ff en f6, dit soort statusbytes
komt in gewone midi eigenlijk niet voor, en zou de zaak maar verstoren.
Als een byte binnenkomt wordt deze opgeslagen in de buffer maar eerst wordt
de tijdcode opgeslagen:
dat gaat dan als volgt: Als cnt1 en cnt2 beide 0 zijn, wordt geen tijdcode tussengevoegd,
als cnt2 0 is wordt eerst code f8 verstuurd en daarna de inhoud van cnt1. Als
cnt2 geen 0 is dan wordt f9 verstuurd met daarna de inhoud van cnt2 en cnt1.
Op die manier is met het kleinst mogelijke aantal bytes steeds de volledige tijd
tussen 2 midibytes meegegeven.
Tussen de bytes van één message is altijd cnt1=0, de bytes komen vlak na elkaar, dus
een message wordt nooit onderbroken door tijdcodes.
Na iedere byte die zo in de buffer geplaatst is, moet cnt1 en cnt2 gecleard worden.
De tijden zijn zo altijd relatief t.o.v. het vorige message.

Voor een compleet message (3 bytes) zijn zo 5 of 6 bytes nodig. Meestal 5.
Deze procedure blijft ook goed werken met z.g. running status!

Aan het eind van de opname nog een speciale code, bv ff toevoegen aan de opgeslagen data.

Bij afspelen de omgekeerde volgorde.

Via poll routines de input checken, dus alle bedieningstoetsen en de seriele input.
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Plaats nieuw bericht   Plaats Reactie    Schakelingen Online Forum Index -> Audio Tijden zijn in GMT + 2 uur
Pagina 1 van 1                     

 
Ga naar:  
Je mag geen nieuwe onderwerpen plaatsen
Je mag geen reacties plaatsen
Je mag je berichten niet bewerken
Je mag je berichten niet verwijderen
Ja mag niet stemmen in polls
Je mag geen attachments plaatsen in dit forum
Je mag bestanden downloaden in dit forum


Powered by phpBB © 2001, 2002 phpBB Group and phpBB SEO