Jak správně implementovat Program Change
Re: Jak správně implementovat Program Change
Vsetko hovoris pekne, logicky a spravne. Lenze potom su tu este ti ... Japonci a ich odlisna logika.
Napr... ked po BS hned dalsia sprava nie je PC, tak ju moze odignorovat ako chybu, lebo daky japonsky system dizajner sa rozhodol, ze "dobre vychovana" masina ich vzdy posiela spolu. (mame v robote japonske masiny ineho typu - viem, o com hovorim )
OK, ale to je teoria a Pavlii ma pravdu - ked norma neni jasna, tak to musi byt blbuvzdorne.
Bohuzial uz balim a odchadzam na dovo, takze to dalsi tyzden na Kurze-wajle neotestujem. Sorry PMC.
Napr... ked po BS hned dalsia sprava nie je PC, tak ju moze odignorovat ako chybu, lebo daky japonsky system dizajner sa rozhodol, ze "dobre vychovana" masina ich vzdy posiela spolu. (mame v robote japonske masiny ineho typu - viem, o com hovorim )
OK, ale to je teoria a Pavlii ma pravdu - ked norma neni jasna, tak to musi byt blbuvzdorne.
Bohuzial uz balim a odchadzam na dovo, takze to dalsi tyzden na Kurze-wajle neotestujem. Sorry PMC.
Re: Jak správně implementovat Program Change
Já jsem v jedné odborné diskusi četl, že BS se má pamatovat do příchodu prvního PC a pak se má zresetovat. To má svou logiku právě pro midi soubory, aby změna nástroje na jednom místě souboru nevyvolala nečekané změny nástrojů jinde v souboru. Ale diskuse není závazná a zdroj této ínformace nebyl uveden. Nevydává asociace třeba nějaká errata nebo doporučení k nejasným částem midi specifikace?Pytkin píše:pavli : Mne preslo rukami veeelmi vela navodov , ale taketo informacie sa tam nikdy nepisali .. Ak nejaky nastroj ignoruje poslanu banku (aj ked davno) , tak to podla mna neni v poriadku .. a zaujimalo by ma , aky cas pred PC musi byt ta banka poslana , aby ju este akceptoval ..
Re: Jak správně implementovat Program Change
A třeba tady http://www.personal.kent.edu/~sbirch/Mu ... ssages.htm se zas píše "The messages Bank Select MSB, Bank Select LSB, Program Change must be sent as a sequence, with minimal delay between them".
Re: Jak správně implementovat Program Change
PMC : No to uz ako sa k tomu postavia jednotlivy vyrobci , to uz nikto neovlivni ..
Re: Jak správně implementovat Program Change
PMC : A co vlastne riesis ? Preco sa tymto tak detailne zaoberas ? Robis daku aplikaciu alebo dake midi fajly ? alebo o co ide ?
Ja sa zaoberam s MIDI asi 30 rokov ale to co ty tu riesis , s tym som nikdy nemal problemy ..
Ja sa zaoberam s MIDI asi 30 rokov ale to co ty tu riesis , s tym som nikdy nemal problemy ..
Re: Jak správně implementovat Program Change
Dělám software, který upravuje popř. streamuje midi soubory, a který mj. může dávkově vyměnit nástroj(e). A nevím jak to správně implementovat, abych ty midi nerozbil, tj nepřestaly na některých nástrojích fungovat. Jako první mě napadlo, všem samotným PC předřadit defaultní BS, ale pokud by nějaký midi spoléhal na to, že BS stačí uvést jen jednou, tak ho rozbiju. Navíc pokud nemusí BS předcházet těsně, tak ho musím hledat ve všech eventech. Ale třeba korg ve svém editoru změní nástroj jen na jednom místě, těch dalších si nevšímá, takže toto řešení, byť se mi jeví jako nejspolehlivěji, správné asi není. Pokud BS naopak musí předcházet těsně, jinak se ignoruje, pak ten midi rozbiji, když ho přenesu k dalším PC. Tak je to takové nejisté. Také jsem se dočetl, že u kontrolerů je možno měnit jen MSB nebo LSB. Nevím jak to je v případě BS, ale vím, že u některých nástrojů jsou banky organizovány tak, že jedno z toho je vždy nula a dotyčný byte se ignoruje a neposílá.
Re: Jak správně implementovat Program Change
podla mna proste treba nabachat do toho MIDI (ak so to dobre pochopil robis nieco co generuje MIDI subor) pred kazdy PC to BS .. a hotovo .. tak nemusis riesit ako to interpretuje nastroj ktory to bude prehravat, a ci riesi BS 200 ms alebo 3 sekundy pred PC .. proste ty to tam ulozis tak ze BS a hned za tym PC VZDY a hotovo.. mas to na 100% nepriestrelne a bude to fungovat vzdy a vsade ..
> Jako první mě napadlo, všem samotným PC předřadit defaultní BS
nie.. praveze proste natvrdo s kazdym PC este posles naposledy poslane BS (znovu) .. trochu viac dat sice, ale to je zanedbatelne a mas na 100% zarucene ze kazda PC sa bude tykat tej spravnej banky (bude to davat zmysel z pohladu logiky uzivatela, ktory zrejme predpoklada ze banku ktoru naposledy nastavil tak ta plati)
ps.: viem ze v prvom poste na 1 strane som pisal nieco ine ale viac som sa nad tym zamyslel programatorsky, a takto to dava vacsi zmysel ...
> Jako první mě napadlo, všem samotným PC předřadit defaultní BS
nie.. praveze proste natvrdo s kazdym PC este posles naposledy poslane BS (znovu) .. trochu viac dat sice, ale to je zanedbatelne a mas na 100% zarucene ze kazda PC sa bude tykat tej spravnej banky (bude to davat zmysel z pohladu logiky uzivatela, ktory zrejme predpoklada ze banku ktoru naposledy nastavil tak ta plati)
ps.: viem ze v prvom poste na 1 strane som pisal nieco ine ale viac som sa nad tym zamyslel programatorsky, a takto to dava vacsi zmysel ...
bo to riesis ako uzivatel, pracujes s nastrojmi ktore tu zi maju viac-menej proste vyriesene, on to riesi ako programator, cize ako to spravne urobit aby to uzivatelia ako ty mohli riesit 30 rokov bez problemovPytkin píše:Ja sa zaoberam s MIDI asi 30 rokov ale to co ty tu riesis , s tym som nikdy nemal problemy ..
Re: Jak správně implementovat Program Change
Nerozumím - proč by se to tímto krokem mělo "rozbít"?PMC píše:...Pokud BS naopak musí předcházet těsně, jinak se ignoruje, pak ten midi rozbiji, když ho přenesu k dalším PC....
P.
Re: Jak správně implementovat Program Change
No, takhle to ale rozbiju, protoze den dalsi PC mohl hrat puvodne nastroj z jine banky, takze kdyz uz, tak bych mel takhle rozkopirovat ten puvodni BS, ktery predpokladam bude defaultni, tj. v puvodnim midu budou jen PC. Ale mas pravdu, ze ne vzdy to tak musi byt. Takova implementace bude ale spravna jen za predpokladu, ze se BS ma pamatovat, coz neni jednoznacne. Ale pochopil jsem diky diskusi, ze jednoznacne to asi zodpovedet nelze. Pochybnosti o spravnosti ve me paj vzbuzuje to, ze editor v keyboardu se takto nechova. A vic noveho k tomu uz tato diskuse asi neprinese. Dekuji vsem zucastnenym.dendy píše:nie.. praveze proste natvrdo s kazdym PC este posles naposledy poslane BS (znovu) .. trochu viac dat sice, ale to je zanedbatelne a mas na 100% zarucene ze kazda PC sa bude tykat tej spravnej banky (bude to davat zmysel z pohladu logiky uzivatela, ktory zrejme predpoklada ze banku ktoru naposledy nastavil tak ta plati)
Re: Jak správně implementovat Program Change
ono dolezite je ze su 2 uhly pohladu
- pohlad nastroja ktory hra midi - aku banku pouzit ked dostane PC - tam je proste idealne s kazdym PC mu poslat aj tu banku nech to neostane v nejakej neurcitej polohe zavisiacej od konkretnej implementacie daneho nastroja
- pohlad pouzivatela -a ten ocakvava ze kazde PC sa vztahuje na banku ktoru naposledy nastasvil - aj ked to bolo trebars pred 3 hodinami
posielanie BS vzdy s PC riesi jednoznacne oba problemy, nastroj vie co ma hrat a a ty budes vzdy posielat posledny BS ktory uzivatel spravil aby to bolo konzistentne s jeho logikou - ze proste hrat ma to co si nastavil az pokym nenastavi daco ine ..
- pohlad nastroja ktory hra midi - aku banku pouzit ked dostane PC - tam je proste idealne s kazdym PC mu poslat aj tu banku nech to neostane v nejakej neurcitej polohe zavisiacej od konkretnej implementacie daneho nastroja
- pohlad pouzivatela -a ten ocakvava ze kazde PC sa vztahuje na banku ktoru naposledy nastasvil - aj ked to bolo trebars pred 3 hodinami
posielanie BS vzdy s PC riesi jednoznacne oba problemy, nastroj vie co ma hrat a a ty budes vzdy posielat posledny BS ktory uzivatel spravil aby to bolo konzistentne s jeho logikou - ze proste hrat ma to co si nastavil az pokym nenastavi daco ine ..
Re: Jak správně implementovat Program Change
Dendy : Ano .. ale ked sa ma zahrat iny zvuk , lebo nebola poslana banka , a mala by sa pouzit defaultna , tak potom ked tam popridava BS , tak to rozbije .. Neviem .. Ja som si vzdy myslel ze zvuky sa vyberaju z posledne poslanej banky .. Ale nikdy som detailne neskumal ako sa rozne nastroje chovaju .. Mozno to je definovane v dakej GM(2) norme .. V kazdom pripade si myslim ze jeden nastroj to moze mat tak , a druhy inak .. takze tie midi fajly budu hrat inak ..
Re: Jak správně implementovat Program Change
> ale ked sa ma zahrat iny zvuk , lebo nebola poslana banka , a mala by sa pouzit defaultna , tak potom ked tam popridava BS , tak to rozbije
ajo to mas pravdu.. zapeklita situacia este ze nemusim nic take programovat
ajo to mas pravdu.. zapeklita situacia este ze nemusim nic take programovat
Re: Jak správně implementovat Program Change
Tak jste mě donutili si to přečíst. Stačí fakt jen dávat pozor
- kombinace BS+PC musí následovat ve vzájemném sledu, jinak může dojít k nesprávné interpretaci (tj. chápu výklad normy tak, že nelze vyslat jen BS MSB/LSB aniž by následovala zpráva PC; bz PC nebude další chování korektní).
- pokud byla změněna banka na jinou než defaultní, jakékoli další PC zprávy pracují pouze s touto bankou (tj. platí to, co tu píše od začátku Pytkin - poslední korektně zvolená banka zvuků zůstává platná až do další změny).
Kdo nevěří ať tam běží - strana 13 MIDI detailní specifikace.
P.
- kombinace BS+PC musí následovat ve vzájemném sledu, jinak může dojít k nesprávné interpretaci (tj. chápu výklad normy tak, že nelze vyslat jen BS MSB/LSB aniž by následovala zpráva PC; bz PC nebude další chování korektní).
- pokud byla změněna banka na jinou než defaultní, jakékoli další PC zprávy pracují pouze s touto bankou (tj. platí to, co tu píše od začátku Pytkin - poslední korektně zvolená banka zvuků zůstává platná až do další změny).
Kdo nevěří ať tam běží - strana 13 MIDI detailní specifikace.
P.
Re: Jak správně implementovat Program Change
pavlii : hej to je midi norma .. ale on ked chce byt co najviac kompatibilny , tak musi prihliadat na specificke nastroje ..
PMC : mna inak napada .. Ked robis software , tak by som to spravil takto .. Defaultne by som posielal Banky a PC ako su .. a do preferencii by som dal moznost zakliknut mod , aby pri kazdom PC , posielal aj posledne poslanu banku .. cize ak na zaciatku bude nejaka banka , tak on ju prida do kazdeho PC ktore pojde behom songu .. resp. samozrejme nejaku inu banku , ak sa v priebehu songu zmenila ..
PMC : mna inak napada .. Ked robis software , tak by som to spravil takto .. Defaultne by som posielal Banky a PC ako su .. a do preferencii by som dal moznost zakliknut mod , aby pri kazdom PC , posielal aj posledne poslanu banku .. cize ak na zaciatku bude nejaka banka , tak on ju prida do kazdeho PC ktore pojde behom songu .. resp. samozrejme nejaku inu banku , ak sa v priebehu songu zmenila ..