Je prehravanie midi not v polysyntakoch kvantizovane?
Je prehravanie midi not v polysyntakoch kvantizovane?
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
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.
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 ..
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 ))
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 ))
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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.
- Jirka Štolfa
- Příspěvky: 814
- Registrován: 11 kvě 2013 09:16
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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.
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.
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 ...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.
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 datPytkin píše:Zabudol si na startbit a stop bit .. cize jeden BYTE sa prenasa ako 10 biteov
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)Pytkin píše:niektore nastroje posielali NOTE ON event a potom za sebou cislo noty + dynamika v paroch ..
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.
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 robiadendy 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
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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) ..charonme píše: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 datPytkin píše:Zabudol si na startbit a stop bit .. cize jeden BYTE sa prenasa ako 10 biteov
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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 ?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
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).
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
super Pytkin dobre pdfko, dikes
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
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?MDudas píše:naco to ma sluzit ? Co tym chces dosiahnut ?
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
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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.
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.
(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.
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.
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
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)
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)
Re: Je prehravanie midi not v polysyntakoch kvantizovane?
OK, ale toto je umela situacia. Skus tam dat 12 not tak, ze aspon polovica z nich nejako zaznie, a nie ze vsetky mlcia.