Skripty ve zvukových projektech
Moje zvuky jsou po 10 letech tvorby hojně rozšířené, občas narazím na různá videa, kde uživatel předvádí funkce mačkáním všech tlačítek a vlastně tím ukáže některé faktické nesmysly, které by neměly být možné.
Jedním z takových nesmyslů je spuštění zvuku kompresoru klávesou F15 bez nastartovaného motoru F8.
Úpravy popsané v následujících článcích se týkají projektů pro MS i MX dekodéry. Zatím se snažím vše vyvíjet dvojmo, i když projekty pro MX dekodéry jsou mnohdy ošizené kvůli malé paměti.
Zvuky tvořím pro sebe, během let služby u ČD mám mnohé věci takříkajíc v krvi. Nenapadlo by mě mačkat funkce v nesprávných situacích. Ale jestliže se moje tvorba šíří veřejně, nelze předpokládat, že by běžní modeláři byli železnicí ovlivněni natolik, aby znali princip samočinné brzdy nebo kdejaký detail, co kdy jak a proč může nebo nemůže fungovat.
Ve zvukových projektech je nějakou dobu možnost tvořit vlastní skripty, autor tak může některé procesy naprogramovat v podstatě dle libosti. Jen je to už vysoká škola, o časové náročnosti nemluvě. Autoři Zimo ve svých projektech skripty hodně využívají, tak zkusím srovnat krok. Skripty jsem se naučil nedávno na projektu laminátky.
Možností je nespočet a také každý autor má jinou představu. I v tom se projekty různých autorů začínají dost lišit. Někdo si libuje ve staničních hlášeních, jinému se líbí zvuky vysílačky nebo brzda na tlačítko a podobné hračičky. Mě zajímá realita, co nejvěrnější chování zvuků i jízdních vlastností. Zaměřil jsem se nejdřív na ty technické nesmysly. Vyvinul jsem si několik skriptů, které budu v různých obměnách dávat do všech projektů motorové trakce.
Tento článek jsem neměl v plánu, ve výsledku jde o malé vychytávky ryze technických detailů, které ocení pár fajnšmekrů a 99% modelářů se zeptá, proč nefunguje F15.
Ale chci to prezentovat dřív než to někdo obšlehne. Počítám sice s tím, že se nějací autoři nechají volně inspirovat a vymyslí svoje vlastní řešení téhož, ale chci předejít tomu, že někdo rovnou zkopíruje celý skript a bude to vydávat za svůj nápad a ještě se bude ohánět autorským zákonem. Bohužel s takovými absurditami mám dlouholeté zlé zkušenosti.
Projekty ke stažení budou proto uvolněny až po představením těchto zásadních novinek. Tady je první z nich
Zvuk kompresoru na tlačítku F15
Pár slov k fungování kompresoru u motorové trakce.
Kompresor se ve skutečnosti u většiny starších řad lokomotiv nespouští a nevypíná, běží totiž nepřetržitě. Je poháněn přímo motorem. Při provozním tlaku vzduchu v hlavním vzduchojemu je propojeno sací a výfukové potrubí kompresoru. Při poklesu tlaku hlavního vzduchojemu pod nastavenou mez se přestaví šoupátko a kompresor začne plnit hlavní vzduchojem, což je provázeno tím zvukem pumpování. Po doplnění dojde k odlehčení, to je to odfouknutí na konci zvuku a kompresor dále fouká naprázdno.
U některých řad se kompresor naprázdno netočí, má pohon přes HVK, např. u čmeláků, nebo elektrický, např. kyklop. Tam je slyšet rozběh a zastavení. Rozdíl je i ve videích 742 níže. Znalejší mě opraví nebo doplní v komentářích.
Funkce F15 v projektech
Ruční spuštění zvuku je víceméně zbytečné, když se stejný zvuk spouští i náhodně a už v základu to obsahuje speciální logiku. Po delší jízdě a zastavení se spustí dlouhý zvuk, při stání se náhodně přehrává krátký. Tím je simulován velký úbytek tlaku po odbrzdění a malý úbytek při stání. Navíc je náhodný zvuk kompresoru vázán na spuštěný hlavní zvuk, tedy nastartovaný motor. Stopnutím dieslu se stopne i kompresor.
Tlačítko F15, ale nemá žádnou závislost. Skript upravuje chování takto:
Zvuk F15 je aktivní pouze pokud se po zapnutí zvuků F8 přehraje celý start. Než lokomotiva nastartuje, není možné pustit zvuk kompresoru. Po startu už je F15 aktivní stále bez zpoždění. Pokud se motor stopne, dohraje i kompresor. Skript ale kontroluje i obrácený stav, při pořadí F15 a F8 se opět nejprve přehraje start a teprve až po nastartování se spustí zvuk kompresoru.
Toto obrácené pořadí mimochodem krásně simuluje start lokomotivy po delším odstavení. Více už ukázky.
Zde kompresor 742.147, začne pumpovat hned při startu
A tomu odpovídající zvuk ve zvukovém projektu
Tady stejný záběr na 742.084 s odlišným chováním
A tady videa projektů 742.084 a 752.014 s podrobným popisem stavu a chování funkcí. Zvuková stopa videa je nahraná přímo z výstupu dekodéru, aby to bylo jasně slyšet
Nedostatky
– Kompresor je přímo spojený s motorem, tudíž také stejně mění otáčky. V reálu se dá pumpování urychlit přidáním otáček motoru. Ve skriptu jsem toto nedělal, už by to bylo příliš náročné a výsledek sotva postřehnutelný.
– U MX dekodérů zvuk kompresoru při vypnutí motoru neskončí hned. I bez skriptu, chyba firmware.
Skript je dostatečně „blbuvzdorný“. Kontroluje hned několik možných stavů a podle nich povoluje nebo blokuje spuštění zvuku a ještě se zpožděním nebo bez. Zjistil jsem např., že při řízení přes PC je problém, když počítač zapne zvuk F8 za jízdy, při výjezdu z tunelu. Pro tento případ je F15 aktivní ihned po zapnutí F8.
Po vývoji tohoto drobného doplňku je mi jasné jak náročný musí být vývoj celého firmware. Programátor musí nejen vymyslet funkci, ale taky přemýšlet nad různými stavy a možnými i nemožnými kombinacemi, které uživatel může vytvořit.
Petr Smutek
1 října, 2022 v 15:22
Dobrý den Petře,
se zájmem sleduji, jak pokaždé, když se Vám dostane do ruky nějaký model v “nesprávné velikosti”, využijete příležitosti k update příslušné verze zvukového projektu s doplněním různých vychytávek pro nové verze firmware.
S potěšením jsem tak zaznamenal vystavení nové verze zvuku pro HO Laminátku Piko – v provedení pro verzi CDC, abych ho použil pro svoji novou Laminátku 340 (ačkoliv jsem tuhle lokomotivu naživo nikdy neviděl, myslím si, že na českých tratích to musí znít v zásadě stejně, jako verze 240).
S tou novou vychytávkou “jízda výběhem” mám ale trochu problém: logicky (jako v reálu) je sice správně, že po stisku F6 nejprve kontrolér zkrokuje na 0 a poté se se zpožděním (jasně, je potřeba dochladit) vypne ventilátor. Na menším (domácím) kolejišti to celé ale má jednu zásadní vadu na kráse: Při jízdě po kolejišti kravál ventilároru spolehlivě přehluší zvuk zkrokování odboček, takže slyšitelná změna zvuku nastane až zásadním poklesu otáček ventilátoru. Což při přímém řízení jízdy vlaku (např. Multimausem) znamená, že po stisku F6 mašinka ujede ještě několik metrů, než je slyšet nějaká reakce. V zápětí pak vlak zastaví v nádraží, a když chci vlak zase rozjet, zapomenu, že je aktivní F6, a divím se, proč se mašinka nechce rozjet.
Myslím si, že pro přímé řízení jízdy by bylo smysluplnější, kdyby otáčky ventilátoru začaly slyšitelně klesat bezprostředně po stisku F6 (alespoň v případě vypnuté závislosti na jízdě). Ale chápu, že toto je čistě věc názoru a že ostatní si to myslet nemusejí.
Snažil jsem se tak v současné verzi projektu alespoň vypnout závislost na jízdě (nastavit CV837=4), jak tuhle možnost popisujete v návodu k verzi 240 HO Piko ČD Cargo z 17.8.2022. Bohužel ale tohle vypnutí závislosti vůbec nefunguje – zkoušel jsem přitom i několik jiných hodnot, ale jak se zdá, proti samotné změně hodnoty v CV837 je ten nový zvukový projekt zcela imunní. Mašinka se chová stále stejně – pro stisku F6 je vždy možné jen brzdit a opětovný rozjezd je možný až po vypnutí F6. Netušíte, kde by mohl být problém – není např. potřeba upravit hodnotu ještě v nějakém dalším CV ?
Díky předem za radu,
Honza A.
1 října, 2022 v 16:43
Dobrý den, Honzo,
Zásadním problémem jsou rozdílné pohledy a rozdílná očekávání. Např. strojvedoucí nebo člověk „dráhou postižený“ vyžaduje reálné chování modelu i zvuku. Tak jak to zná. A je to i moje cesta. Naopak běžný uživatel chce většinou líbivé provedení, tak jak to někde viděl na jiném modelu, nebo jak by se mu to víc líbilo, přestože to nemusí být reálné.
Úroveň hlasitostí jednotlivých zvuků je pak nekonečný příběh, co člověk, to jiný (a protichůdný) názor
Jenže je třeba se řídit tou skutečností, nelze porovnat zvuk podle jiného modelu, ale podle skutečné mašiny. Zde třeba rozjezd ř. 240, jakmile se mašina trochu rozjede, už tam ty odbočky neslyšíte. Nejen, že je překřičí ventilátor a okolní ruchy, ale ta hlasitost skutečně klesá se snižujícím se proudem na těch odbočkách
https://www.youtube.com/watch?v=YL6kGG-tfos&list=PLQOKjGP9fGt8z0-wbUzFtXDcn6zaskbCl&index=57
Zkrokování taky logicky nemůže být po vypnutí ventilátoru. Vypne přece tím zkrokováním – zadáním nulového výkonu
Nerozumím jen tomu ujetému metru, či dokonce několika. Má to reagovat samozřejmě hned po stisku klávesy. To spíš vypadá, že dekodér ten povel nedostal nebo něco způsobilo zpoždění. Starý firmware dekodéru/centrály nebo chyba v něm. Neporadím.
Problémem je často taky samotná obsluha modelářem. Projekty jsou laděné na nějakou rozjezdovou a brzdící křivku, tedy vytočím kolečko a užívám si rozjezd, v jízdě stáhnu kolečko na nulu a užívám si zastavení. Ale pokud uživatel vypne křivky a nebo točí tím kolečkem po milimetrech, nemůže to fungovat správně.
Pak mi píše plno lidí, že mašina se rozjíždí bez ventilátoru, důvodem je, že nenechali zvuk ventilátoru doběhnout a rovnou se zase rozjeli. A to je přesně důvod, proč se snažím podobné situace znemožnit skriptem.
Tedy správně se divíte, že není možný rozjezd při F6. No máte tam nulový výkon. Stejný skript bude i v projektech motorových vozů, kde je při F6 možný rozjezd při zvuku volnoběhu, což je úplný nesmysl.
Pro zrušení je CV837=2, v návodu byla nesprávná hodnota. Čtyřka zruší vrznutí zdrží při rozjezdu.
2 října, 2022 v 11:10
Děkuju moc za správné nasměrování při řešení problému.
Použitý dekodér MX645 byl z distribuce ROCO a měl v sobě již z výroby nahraný firmware 40.6 (a pravděpodobně ještě nějaká další nastavení od ROCO na míru původní mašinky). Evidentně ale firmware verze 40.6 nebyl úplně bez chyb, protože Zimo na svém webu tuhle verzi ke stažení vůbec nenabízí.
Nahrál jsem tedy do dekodéru zkusmo verzi 40.18 (aktuálně nejnovější ze Zimo distribuce) a problém zcela zmizel.
S verzí firmware 40.18 vše funguje, jak má – a to jak s CV837=2, tak i s CV837=0.
Takže ještě jednou díky moc za radu,
Honza A.
P.S.: Já také rozhodně preferuji rozjezdy a brždění na automatiku – přesně jak říkáte: při rozjezdu vytočím kolečko doprava – tak na 2/3 max. rychlosti – a užívám si rozjezdu. A před příjezdem do nádraží lehce uberu – a pak nechám mašinku samotnou zastavit pomocí ABC – kousek před odjezdovým semaforem. Automatika to zcela určitě zvládá lépe, než ruční řízení (tedy než já a ruční řízení).
Se správným nastavením sice trošku práce je, ale výsledek určitě stojí za to.