Avatar billede anjensen1 Novice
24. maj 2004 - 12:40 Der er 6 kommentarer og
2 løsninger

konvertere bitmønster til ascii

hejsa
jeg prøver på at arbejde med midi formatet
fra whosisit kender jeg formatet men hvis jeg forsøger at læse en midifil (anvil fil) så er det umuligt at se nogen mening med indholdet
?? krypteret ????
jeg har lavet en lille app. der kan udlæse filen som bytes
så nu vil jeg gerne kunne læse den bytestrøm som ascii chars

(meningen er at lave et program der kan harmonisere midimusik)

kan jeg konvertere en bitstrøm til ascii ?

eks på bytestrøm fra simple midifil:
77 84 104 100 0 0 0 6 0 1 0 5 1 128 77 84 114 107 0 0 8 28 0 255 1 70 71 101 110 101 114 97 116 101 100 32 98 121 32
..osv :)
pfh tak.
Avatar billede driis Nybegynder
24. maj 2004 - 16:57 #1
http://www.csw2.co.uk/tech/midi2.htm#BM1_
"Some numbers in MIDI Files are represented in a form called VARIABLE-LENGTH QUANTITY. These numbers are represented 7 bits per byte, most significant bits first. All bytes except the last have bit 7 set, and the last byte has bit 7 clear. If the number is between 0 and 127, it is thus represented exactly as one byte. "

Kan det være det, du ikke tager hensyn til ?
Avatar billede anjensen1 Novice
25. maj 2004 - 09:48 #2
driis, rigtig godt link ! tak
jeg har dog stadig problemer
Andre der har kendskab til formatet eller kan forklare konvertering fra bytes til hex og eller decimal må meget gerne hjælpe til :)

driis læg et svar så kommer der nogle points når jeg er klar til at lukke spørgsmålet
Avatar billede arne_v Ekspert
26. maj 2004 - 19:07 #3
byte er binære - hex og decimal er text - hvis du forklarer mere om hvad
du vil så kan vi sikkert hjælpe
Avatar billede anjensen1 Novice
27. maj 2004 - 09:51 #4
Q: hvis du forklarer mere om hvad
du vil så kan vi sikkert hjælpe

-i første omgang vil jeg blot kunne læse indholdet i en midi fil så det stemmer overens med formatet beskrevet i eks linket ovenfor-
Dert lyder self mærkeligt men tager jeg en anvil oprettet midifil og læser den i notepad så er den fuldkommen anderledes end det beskrevne format
Lavede derfor en lille byte-reader ting som leverede ovenstående bytestrøm (som iøvrigt er det samme nonsens som kan ses i notepad)
Jeg tror helt enkelt at der er tale om en 'krytering' / scrapling af normalformatet (men -hvorfor dog i alverden det..?)
det sære er self at midifiler fra anvil kan afspilles af winplayer mm

slutformålet er at kunne indlæse en midifil med eet track / een stemme (piano) og levere en harmoniseret (fler-track -måske senere :) udput fil
-men hvis ikke formatet kan læses normalt så er det self komplet umuligt at rode med

Her er 'indholdet' af en anvil midifil:
(hvis E overhovedet kan vise det c...p :)

MThd    ÀMTrk  9 ÿ
2003.11.12 ÿ    ÿY  ÿTrack 0 ÿQ q° ÿ/ MTrk  ¦ ÿ    A À ÿGeneral MIDI ÿTrack 1 ÿ  ŒJ0†Aƒ@    €A‚.€@A† @€A6€0€@„;2…WA‚Y@€A k€@8A…%€A7@U€2€@„50…]A‚r@
€A‚€@"A…I@1€A€@€0„6€2  2†CƒB    €C‚.€BC† B€C6€2€B„;4…WC‚YB€C`€B8C…%€C7BU€4€B„52…]C‚rB
&#8364;C&#8218;&#8364;B"C&#8230;IB1&#8364;C&#8364;B&#8364;2&#8222;64&#8230;3L=&&#8364;L=&#402;J=&#8218;I&#8364;J=I=&#8222;)&#8364;I=8J=tI=A&#8364;J=K&#8364;I=&#8218;G=<&#8364;G=E=&#8230;^&#8364;E=[G=&#8224;m&#8364;G=aE=&#8211;&#8364;E= ÿ/ MTrk  õ ÿ    @H ÿGeneral MIDI ÿ4#ÿ     C B A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 Á ÿ ÿ/

mvh og tak for interessen.
Avatar billede arne_v Ekspert
27. maj 2004 - 09:57 #5
Umiddelbart kan jeg ikke se at der skulle være nogen modstrid.

Linket beskriver et binært format.

Og ovenstående fra notepad ligner også et binært format.
Avatar billede anjensen1 Novice
27. maj 2004 - 10:42 #6
jo til binært format , men hvad er det med alle de tegn der ikke vises?
Det stemmer da ikke med det beskrevne format?
Avatar billede driis Nybegynder
27. maj 2004 - 15:09 #7
Som arne_v også siger, er der tale om et binært format. Godt nok er der visse ascii sekvenser, der går igen (f.eks. "MTrk" som angiver begyndelsen af et "track"). Men resten af dataene er binære tal.

For at læse det skal du:
1) Finde ud af hvor mange bytes én værdi udgør
2) Læse så mange bytes
3) Konvertere til det rigtige tal, idet du tager højde for at der er anvendt førnævnte VARIABLE-LENGTH QUANTITY.
Avatar billede anjensen1 Novice
31. maj 2004 - 10:15 #8
Der synes at være problemer med at læse filer bytewise og få -1 / 'eof' og det fører til at indlæsning krasher. Der er derfor for nuværende ikke nogen mening i at fortsætte med midiprojektet. Tak for hjælpen driis og arne!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester