Jak na GUI pro hudební aplikaci

Hilderbert

Jak na GUI pro hudební aplikaci
« kdy: 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.


Fantomas

Re:Jak na GUI pro hudební aplikaci
« Odpověď #1 kdy: 07. 12. 2017, 22:30:41 »
Editor SPE s wxPython by mohl pomoct.

dustin

Re:Jak na GUI pro hudební aplikaci
« Odpověď #2 kdy: 07. 12. 2017, 22:32:29 »

Petr

Re:Jak na GUI pro hudební aplikaci
« Odpověď #3 kdy: 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/).

gll

Re:Jak na GUI pro hudební aplikaci
« Odpověď #4 kdy: 08. 12. 2017, 14:05:04 »
na tohle určitě není potřeba SVG ani webGL. Použil bych obyčejnou HTML tabulku.


gll

Re:Jak na GUI pro hudební aplikaci
« Odpověď #5 kdy: 08. 12. 2017, 14:16:37 »
Určitě bych použil nějaký JS framework. Pythonu IMHO v oblasti GUI ujel vlak.

Karel

Re:Jak na GUI pro hudební aplikaci
« Odpověď #6 kdy: 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.

gll

Re:Jak na GUI pro hudební aplikaci
« Odpověď #7 kdy: 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?

Hilderbert

Re:Jak na GUI pro hudební aplikaci
« Odpověď #8 kdy: 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.

Hilderbert

Re:Jak na GUI pro hudební aplikaci
« Odpověď #9 kdy: 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#