Je prehravanie midi not v polysyntakoch kvantizovane?

Vše co se týka MIDI (mimo keyboardů)
charonme
Příspěvky: 1144
Registrován: 01 říj 2008 09:26

Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od charonme » 11 dub 2017 12:43

Midi noty prichadzaju do syntaku seriovo bez casovania (samotne noty neobsahuju informaciu o casovani). Zaujima ma ako polyfonicke syntaky prehravaju noty ktore v midi signale nasleduju bezprostredne zasebou: je tam nejaky buffer vdaka ktoremu sa urcity pocet takto prichodzich not zahra naraz (toto by pridalo latenciu) alebo sa noty zahraju tak ako prisli zasebou (cize nie naraz)? Ak na toto nie je ziaden standard tak tipujem ze kazdy syntak to asi bude implementovat vlastnym sposobom...

A na toto nadvezuje dalsia otazka: kolko maximalne not zvlada bezne MIDI v predstierani polyfonie bez toho aby si clovek vsimol ze nehraju naraz?
MIDI baud rate je 31250bps, standardna midi nota potrebuje 3 bajty (ak sa nepouzije "running status" a ak medzi notami nie su ine midi data), takze pocitajme (EDIT: uprava vypoctu na 10bitove bajty miesto 8bitovych) 31250 / (10*3) = 1041.666 not/s, cize 0.96ms na 1 notu

Neviem aka latencia sa standardne uvadza ako uz nepocutelna, tak skusme vypocet pre rozne hodnoty:

latencia 4ms => 4 noty
10ms => 10 not
20ms => 20 not
30ms => 31 not
40ms => 41 not
Naposledy upravil(a) charonme dne 13 dub 2017 10:18, celkem upraveno 1 x.

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21270
Registrován: 23 kvě 2002 16:23

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od Pytkin » 11 dub 2017 17:52

Zabudol si na startbit a stop bit .. cize jeden BYTE sa prenasa ako 10 biteov .. a neviem ci je to standard ale niektore nastroje posielali NOTE ON event a potom za sebou cislo noty + dynamika v paroch ..

Uživatelský avatar
dendy
Příspěvky: 12699
Registrován: 12 črc 2002 11:16
Vybavení

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od dendy » 12 dub 2017 00:16

nejaky buffer tam urcite bude, z programatorskeho hladiska by bolo asi dost zlozite spravit to uplne realtime, ale predpokladam ze to bude buffer na baze radovo niekolkych desiatok bajtov cize 0.x alebo dokonca 0.0x ms .. z praktickeho hladiska teda v podsate ako nota pride tak zahra ..

kazdopadne nieje vela syntakov co zvlada polyfonie nad 16 hlasov, vlastne realne tie polyfonie vacsinou byvaju este nizsie .. vinimky (Waldorf Streichfett - 128 hlasov) su zrejme riesene nejak inak specialne (aj ked si neviem prestavit ako) - aj ked zase povedzme si pravdu v akej hudbe okrem nejakych sialenych experimentalov potrebujes hrat polyfonne 16+ not viac ?? To uz musi byt defakto poriadny bordel :)))

Uživatelský avatar
TOM-Thak
Příspěvky: 3854
Registrován: 19 čer 2004 22:38

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od TOM-Thak » 12 dub 2017 07:28

Tak vem si, ze polyfonie se pocita i do unisono. Takze kdyz das 4unison oscilatory, polyfonie je razem 4hlasy a to mas tak akorat na nejaky trance lead. Pokud chces hrat multitimbral jako to umi virus TI - 5 nezavislych outputu, tak muzes vyuzit treba 5nastroju x treba 2 unisono a 2noty zaroven, tak ses na 20ti poly i vys... nebo u rom playeru vyuzijes daleko vic treba 64 pro hrani na organ ci piano. U analogu jento jine, tam vetsinou hrajes mono lead nebo mono bassline. U DSI prophetu se hodi unison na pekne stereo leady.

Uživatelský avatar
Jirka Štolfa
Příspěvky: 479
Registrován: 11 kvě 2013 09:16

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od Jirka Štolfa » 12 dub 2017 09:35

charonme: Myslím, že tvoje předpoklady jsou vcelku správné. Kdysi jsme to řešili z kamarádem, který to studoval na VUT a pamatuju si, že jsme došli k tomu, že i vícehlasý akord nezní naráz, ale noty mají mírné spoždění. Mám pocit, že jsme došli k mírně vyšším číslům, něco jako 3ms na notu, ale je to už hodně dávno, takže nevím s naprostou přesností.

No a slyšitelné je v polyfonním akordu spoždění jakékoli, i třeba jen nepatrné, protože dochází k fázovým posunům.

Uživatelský avatar
dendy
Příspěvky: 12699
Registrován: 12 črc 2002 11:16
Vybavení

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od dendy » 12 dub 2017 10:35

TOM-Thak píše:Tak vem si, ze polyfonie se pocita i do unisono. Takze kdyz das 4unison oscilatory, polyfonie je razem 4hlasy a to mas tak akorat na nejaky trance lead. Pokud chces hrat multitimbral jako to umi virus TI - 5 nezavislych outputu, tak muzes vyuzit treba 5nastroju x treba 2 unisono a 2noty zaroven, tak ses na 20ti poly i vys... nebo u rom playeru vyuzijes daleko vic treba 64 pro hrani na organ ci piano. U analogu jento jine, tam vetsinou hrajes mono lead nebo mono bassline. U DSI prophetu se hodi unison na pekne stereo leady.
unison je daco ine .. to uz je vec synth enginu.. on riesil midi .. pri unison rezime to do MIDI IN pride 1 nota, a len synth engine je nastaveny tak ze zahra ten ton 4x s rozladenim .. to uz nema nic s prichodzimi midi notami a latenciou samotneho midi ...

charonme
Příspěvky: 1144
Registrován: 01 říj 2008 09:26

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od charonme » 12 dub 2017 14:35

Pytkin píše:Zabudol si na startbit a stop bit .. cize jeden BYTE sa prenasa ako 10 biteov
presne tymto som si nebol isty, takze preto to moje alibisticke "(toto neviem ci mam uplne dobre)" To by ma zaujimalo ako to je exaktne, kolko bitov z toho baudrate sa realne spotrebuje na prenos bajtu dat
Pytkin píše:niektore nastroje posielali NOTE ON event a potom za sebou cislo noty + dynamika v paroch ..
ano toto je ten "running status" - ak zasebou nasleduje viacero midi eventov rovnakeho typu tak by malo stacit na zaciatku poslat status bajt (napr. NOTE ON channel#1) a potom staci posielat uz len data bajty (napr. pre note on su to pary bajtov note# a velocity) (ak vsetky zariadenia podporuju running status)

EDIT: tuto spekuluju ze prave na tento ucel (zahrat noty naraz) sluzi ten running status, akurat ze ked sa posielaju noty ktore sa maju naraz zahrat na viacerych roznych midi kanaloch, tak running status to nezabezpeci, lebo NOTE ON na roznych kanaloch su rozne status bajty
Naposledy upravil(a) charonme dne 12 dub 2017 14:49, celkem upraveno 1 x.

charonme
Příspěvky: 1144
Registrován: 01 říj 2008 09:26

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od charonme » 12 dub 2017 14:39

dendy píše:nejaky buffer tam urcite bude, z programatorskeho hladiska by bolo asi dost zlozite spravit to uplne realtime, ale predpokladam ze to bude buffer na baze radovo niekolkych desiatok bajtov cize 0.x alebo dokonca 0.0x ms .. z praktickeho hladiska teda v podsate ako nota pride tak zahra
jasne, skor som myslel taky kvantizacny buffer ktory by najprv naakumuloval ake noty sa maju zahrat a potom by ich zahral vsetky naraz (teda tie o ktorych by na zaklade niecoho usudil ze sa maju zahrat naraz) <- toto by ma prave zaujimalo ci existuju nejake syntaky ktore to takto robia

Uživatelský avatar
Pytkin
Moderátor
Příspěvky: 21270
Registrován: 23 kvě 2002 16:23

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od Pytkin » 12 dub 2017 23:49

charonme píše:
Pytkin píše:Zabudol si na startbit a stop bit .. cize jeden BYTE sa prenasa ako 10 biteov
presne tymto som si nebol isty, takze preto to moje alibisticke "(toto neviem ci mam uplne dobre)" To by ma zaujimalo ako to je exaktne, kolko bitov z toho baudrate sa realne spotrebuje na prenos bajtu dat
no ved ti hovorim .. 10 bitov = prenos jedneho BYTE .. Najvyssi bite urcuje ci ide o STATUS BYTE alebo DATA BYTE (ktore su teda logicky 0-127 len) ..


Uživatelský avatar
MDudas
Příspěvky: 2653
Registrován: 12 črc 2011 22:55

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od MDudas » 13 dub 2017 02:51

charonme píše:jasne, skor som myslel taky kvantizacny buffer ktory by najprv naakumuloval ake noty sa maju zahrat a potom by ich zahral vsetky naraz (teda tie o ktorych by na zaklade niecoho usudil ze sa maju zahrat naraz) <- toto by ma prave zaujimalo ci existuju nejake syntaky ktore to takto robia
A nebolo by to skor kontraproduktivne ? Ved tak presne nehra nikto a nic. Ked sa ti tam scitaju nabehy v rovnakej faze, tak potom mozes rovno zase komprimovat. :? Najlepsia otazka asi je - naco to ma sluzit ? Co tym chces dosiahnut ?


Ten buffer moze byt vyrieseny velmi rozne. Hned mi napadla jedna moznost - na masinach so sekvencerom bude mat zrejme citanie a buffer vacsie casove rozlisenie nez samotny MIDI port, a bude si nejaku casovu info ukladat kvoli zaznamu. Podla nej potom prikazy interpretuje (s nejakym malym oneskorenym).

charonme
Příspěvky: 1144
Registrován: 01 říj 2008 09:26

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od charonme » 13 dub 2017 10:10

super Pytkin dobre pdfko, dikes
MDudas píše:naco to ma sluzit ? Co tym chces dosiahnut ?
ja nechcem nic dosiahnut, len sa pytam ci niekto vie o nejakom syntaku ktory to tak robi. zjavne asi o takom nevies alebo nechces povedat?

sluzit by to malo na to aby pri prilis velkom pocte poslanych dat (ktore boli v sekvenceri mienene ako zahrane v jeden moment) nebolo pocut oneskorenie medzi prvym a poslednym

pre nechapajucich pre istotu este raz musim zdoraznit ze ja nepozadujem aby to takto robili vsetky syntaky ani tym ja osobne nic nechcem dosahovat, len sa pre zaujimavost pytam ci toto niekedy aj niekomu inemu napadlo

scitanie nabehov v rovnakej faze by bol problem len na takych syntakoch ktore kazdu notu zacinaju v rovnakej faze rovnakeho waveformu, ale nie na tam kde by tie rozne noty zodpovedali uplne roznym zvukom v roznych fazach. ale nechal som sa odsidetrackovat, toto vobec nemala byt pointa toho co sa pytam

otestujem cez vikend na realnom priklade a pripadne sem dam ukazky ci to vobec pocut

Uživatelský avatar
MDudas
Příspěvky: 2653
Registrován: 12 črc 2011 22:55

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od MDudas » 13 dub 2017 20:10

Teoretizujme - ako by masina rozhodla, ze nejake noty mali byt zahrane spolu, ked Ti medzi nimi doleti 20x pitch bend, 13x aftertouch, NoteOff z nejakej doznievajucej noty a este napr. nejake real-time sysexy ? Kolko casu by mala povazovat za "technicke opozdenie", ktore chce kompenzovat, a co uz by bolo opozdenie, ktore je sucastou vyrazu pri hre? Viem si to predstavit, ak by islo o za sebou prichadzajuce noty bez prerusenia inou instrukciou - akoze kompenzovat latenciu klasickeho MIDI portu.
(ak dobre ratam, tak nota 1/32 pri beznom tempe 90-150 trva zhruba 83-50ms - podla tvojho vypoctu sa do tohto casu vojde asi 50-80 not... to sa mi zda celkom dost)

Aj preto som sa pytal naco to ma byt dobre, lebo mne to nepride nejako velmi uzitocna ficura. Riesilo by to iba menej podstatny problem. Klasicky MIDI port je viac zdrzovany kontrolermi typu aftertouch, pitch bend, CC pedal, atd. A tie by si musel v bufferi nejako velmi sofistikovane preradovat.
A problemom byvalo aj viacero nastrojov na jednom MIDI chaine. Dnes si kupis 4xMIDI Out a mas vybavene. 8)

P.S. Ale inak sa divim, ze za tie desiatky rokov sa klasicke MIDI nijako nezrychlilo. USB je sice fajn, ale tie zemne slucky teda nie.

charonme
Příspěvky: 1144
Registrován: 01 říj 2008 09:26

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od charonme » 15 dub 2017 15:57

http://charon.sk/files/midi_notes_latency.wav

prve dva zvuky su dva rozne nastroje kazdy zvlast, treti zvuk su tieto dva nastroje zahrane naraz pricom je medzi nimi zahranych dalsich 12 not na inych kanaloch (bez running statusu, cize kazda nota 3 bajty) a stvrty zvuk su len tie dva nastroje zahrane naraz (dve midi noty nasledujuce bezprostredne zasebou)

Uživatelský avatar
MDudas
Příspěvky: 2653
Registrován: 12 črc 2011 22:55

Re: Je prehravanie midi not v polysyntakoch kvantizovane?

Příspěvek od MDudas » 19 dub 2017 21:57

OK, ale toto je umela situacia. Skus tam dat 12 not tak, ze aspon polovica z nich nejako zaznie, a nie ze vsetky mlcia.

Odpovědět