Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Hilderbert 07. 12. 2017, 21:37:29

Název: Jak na GUI pro hudební aplikaci
Přispěvatel: Hilderbert 07. 12. 2017, 21:37:29
Chtěl bych v pythonu udělat hudební aplikaci, která by realime zobrazovala hru nebo na klavír. GUI bych chtěl mít ideálně přes websocket v html/js nebo v gtk. Vizualizace by měla vypadat nějak takto http://littlebluerodent.tripod.com/MIDI/Piano_roll_single.png (jde mi hlavně o to grafické znázornění výšek a délek tónů.) Ale nevím jak na to. Neexistuje na to nějaká knihovna? Python, HTML/JS i GTK ovládám.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: Fantomas 07. 12. 2017, 22:30:41
Editor SPE s wxPython by mohl pomoct.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: dustin 07. 12. 2017, 22:32:29
Mám výborné zkušenosti s https://github.com/dddomodossola/remi . Autor je velice ochotný https://gitter.im/dddomodossola/remi?source=all-rooms-list
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: Petr 08. 12. 2017, 13:58:23
Pokud to může být bloatware, pak zkus https://github.com/mjhasbach/pixi-piano-roll. Je to postaveno na pixi.js (https://github.com/mjhasbach/pixi.js), což je hodně rychlá html 5 knihovna pro 2D graiku postavená na WbGL.

Pokud chceš vlastní řešení, pak by řešením mohlo být SVG a manipulace s ním, buď přímo přes JS/DOM a nebo o něco pomaleji, ale mnohem pohodlněji přes SVG.js (http://svgjs.com/manipulating/).
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: gll 08. 12. 2017, 14:05:04
na tohle určitě není potřeba SVG ani webGL. Použil bych obyčejnou HTML tabulku.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: gll 08. 12. 2017, 14:16:37
Určitě bych použil nějaký JS framework. Pythonu IMHO v oblasti GUI ujel vlak.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: Karel 08. 12. 2017, 14:55:34
na tohle určitě není potřeba SVG ani webGL. Použil bych obyčejnou HTML tabulku.

Viděl jste ten screenshot? Jak chcete přes HTML tabulku kreslit ty zelené značky? Přes tu maximálně tak ten rastr a i to jen s krajním sebezapřením.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: gll 08. 12. 2017, 15:17:03
na tohle určitě není potřeba SVG ani webGL. Použil bych obyčejnou HTML tabulku.

Viděl jste ten screenshot? Jak chcete přes HTML tabulku kreslit ty zelené značky? Přes tu maximálně tak ten rastr a i to jen s krajním sebezapřením.

overflow?
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: Hilderbert 08. 12. 2017, 19:09:47
na tohle určitě není potřeba SVG ani webGL. Použil bych obyčejnou HTML tabulku.

Piano Roll je teoreticky nekonečný, a přidávat další a další sloupce do tabulky není dobrý nápad. Tabulky jsou pomalé a čím jsou větší, tím jsou pomalejší. U dvaatřicetinových not by bylo potřeba 32 sloupců na takt (dvakrát tolik při podpoře triol) a delší skladby mají desítky až stovky taktů. A já náhodou potřebuji ještě větší rozlišení, protože chci zobrazit skladbu z not a přes to midi nahrávku reálného hráče a ukázat mu, kde se dopouští větších nepřesností.

To pixy se mi líbí, je to neuvěřitelně rychlé a plynulé, děkuji za rady.
Název: Re:Jak na GUI pro hudební aplikaci
Přispěvatel: Hilderbert 11. 12. 2017, 13:41:23
Tak jsem nakonec použil SVG, Pixi je hezké, ale dost žere baterky.
Funkční prototyp vypadá takto:  http://imgworld.cz/oqr6Vm7xPr.png# (http://imgworld.cz/oqr6Vm7xPr.png#)