2019-02-16 17:27:57

Hi.
I'm pretty sure that ohShit and TGTR use almost same sets of libraries. TGTR is confirmed that it works on macs, too.
I really liked the single-executable, cross-platform installation.Can Stebo, Liam or anyone list the major libraries they use?
Things I was able to detect are:
pygame
pybass (may be a different wrapper, but dunno)
accessible_output2(I thought it couldn't be compiled with 3.7, dunno)
pyInstaller

I don't speak as good as I write, and I don't listen as good as I speak.

2019-02-16 17:57:37

the libraries used are:
pygame
wx
sound_li which is a wrapper on pybass
accessible_output_2
pyinstaller
cython

Paul

2019-02-16 21:51:02

I know python. But i don't know how to use that libraries. What can i do?

2019-02-16 22:03:19 (edited by pauliyobo 2019-02-16 22:03:45)

learn them or find other libraries that will achieve the same functionality. big_smile

Paul

2019-02-16 22:06:33 (edited by IceCream 2019-02-16 22:07:07)

I tried to ment how can i learn. Any documentation or example for blind things?

2019-02-16 22:16:00

Nope. There are not blind things. You will learn how to generally use them and based on what you can learn you can build things which can work for blind things.

Paul

2019-02-16 23:17:58

@IceCream
That depends. There are a few ways a person can learn a given library or API, some of which involve diving in to probe and test its function set, as unfortunately you don't always have the luxury of documentation or examples. For Pygame, there are a number of tutorials, books, and resources around available for it, along with a strong community to talk to for more information. Many of the tutorials though may drift more towards its visual aspects, though you can glean useful functions out of those. Its documentation is available [here], and if you have any questions or need any examples for it, like its audio mixer, just ask.

Now, for wxPython, well... Its useful, but in a very back handed screwy way. What do I mean by that? Well many of its widgets and functions are screen reader accessible, but many of them also aren't, and figuring out which is which can be a trial and error game unless you happen to ask for others experiences on that. Whats more is that while there is documentation available, not all of the features listed in the documentation are actually there, some of the functions don't behave as you might expect, or with caveats. So what you can end up with is a lot of trial and error trying to figure out what works, what doesn't, and finding work arounds. They have a mailing list you can check out for troubleshooting, and the documentations [here], and you can also find a few people here who can help out with any questions you may have for it.

Other libraries like pybass and accessible_output2 are more obscure, and as a result have little or no documentation. Due to this your limited to the community or trial and error on figuring out how the libraries work. Pyinstaller has fairly good documentation [here], and cython has a few books and documentation floating around with a supporting community as well.

Functions like dir() can be useful for figuring out what kinds of functions a library has, so in a way you can dig around on what it can do and what data they store. Sometimes figuring out how tools work and their various quirks can be just as fun as playing a puzzle game.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-02-17 00:28:40

@magurp244 Thanks a lot for your patiently answer..
My problem is I was looking for what blind people uses as libraries, Not the sighted people.. You have enlightened me thanks for that.

I need basic examples of accessible output, Talk, positioning, sound pool, Etc.. If you can.
I tried use them with dir but they need a lot of things what i don't know.
For example how can i tell something to nvda etc.

2019-02-17 01:51:05 (edited by amerikranian 2019-02-17 02:04:04)

See, that's my issue: Only BGT has sound_pool class. Here's a kicker: Other languages don't. Some libraries have something like position_sound_2d(), but most of the time you will write those functions yourself.
You know the best part about BGT, though? As busted and broken as it is, as many faults as it has, it provides a starting point. It provides code, even if limited, for you to use as a guide. So, if you want to have sound pool like bgt, go right ahead. Find a sound library, write a wrapper around it for sound as most of the libraries have things you must do in edition to simply typing open("sound.ogg"), open 2 notepads side by side and begin the conversion. It's not difficult, I promise.
I think that BGT should have the section in it's tutorial that explains how it hands a lot of stuff to you. I was shocked when I looked up menus in python and, shocker, found the input("this message") method. I couldn't understand how python didn't have the quote on quote standard menu, every coding language has that module, right? Wrong!
Then I looked up BGT and that's how I know what I know about menus now. While BGT can be used for coding games and other programs, I believe it's real point was to get people to look at the source and go Oh, that's how that works, like me. Trouble is, people won't do that, simply sitting around and never opening the includes folder. Guys, it's there for a reason! Look at it! Convert it to other languages if you can't think of a way to do the sound positioning or sound_pool, learn from it.
It is true that a lot of BGT objects like timers and keyboard handling are processed internally, but those are not as crippling as not being able to create a menu or play a sound. In fact, most of those questions could be answered in google by simply typing keyboard handling in pygame or timers in pygame into the search box.
As to your question @post 8, if my memory is correct, accessible output 2 should have a bear bones read me. I can't say, simply because I use Tolk to get speech.

2019-02-17 02:46:15

@2
Oh, can pygame and wx be combined? I thought I had to choose one to use. Thanks!

I don't speak as good as I write, and I don't listen as good as I speak.

2019-02-17 09:16:37

The fact is, that BGT was made exactly  for audiogames. It's not a mainstream language. This is what fucks you up when you try to migrate to a mainstream language and eventually give up because there's nothing similar to what you were used to do in BGT.

Paul

2019-02-18 16:47:16

hi,
it is not recommended to combine pygame and wxpython together because 1. they take a huge amount of size,
2. they can achieve same goals.
also, instead of using pygame, i use pysdl2 (which is my choice, Noone is required to do what I did)

2019-02-18 18:39:18

@9
I strongly discourage porting over bgt libraries to an other language, like python, for one simple reason: it creates bad code. Technically it's legal python, sure, but python's feature set is just so different compared to bgt. AN example is using the network. In bgt, you read an event and with a big if/else block or a switch/case statement you handle it. In python, you can create a separate function for each event, compose the right function name from the event string, and execute. Also, in python you can do things like multithreading, so instead of having many functions that execute some kind of main_loop function you can run blocking functions in their own thread. This list is hardly exhaustive, but it's useless to port code over which would have been written differently if made in another language.

Roel
golfing in the kitchen

2019-02-19 21:20:01 (edited by amerikranian 2019-02-19 21:21:05)

@post 13:
I understand, but that wasn't my point. My point was to port the libraries that are not provided with python and that are required for audiogames. I am well aware of the network options provided with python, though I can't say how good those options may be simply because I haven't used them. However, try and find something like sound_pool in python. How bout a menu module that works well with screen readers? When you do, let me know. I'll gladly use those, as I'm currently struggling to write a good sound handling mod myself.