cpicanco / stimulus_control Goto Github PK
View Code? Open in Web Editor NEWA teaching machine for free behavioral experiments
License: GNU General Public License v3.0
A teaching machine for free behavioral experiments
License: GNU General Public License v3.0
Multiple, Concurrent, Tandem, and so on.
Change the Bass library for a free (as in freedom) substitute
Se a alteração for feita direto no arquivo TXT, colocando maior.png e menor.png nos lugares certos, funciona.
Code should be coded in english. User interface should have as many as possible languages, but right now it will receive English and Portuguese attention.
Need to investigate this one.
Tenho uma sugestão para quando um novo nome de participante for colocado na aba "geral", automaticamente aparecer uma pasta nomeada com todos os arquivos necessários para iniciar o experimento.
A ferramenta de randomização não está funcionando. As tentativas são apresentadas na ordem que foram programadas na aba "tentativas" ferramenta "MTS".
Quando abrimos o arquivo TXT para conferir, o nome da tentativa foi randomizado, mas os parâmetros não acompanham a mudança. Exemplo abaixo:
[Blc 1 - T2]
Kind=MTS
Name=Acordes_projeto_borges_F#m->menor(a) (nome randomizado)
Cursor=0
SStm=Acordes_projeto_borges_C#.wav 1 255 (acorde modelo da tentativa, que foi programado como tentativa 2 na ferramenta MTS)
SSch=CRF
NumComp=2
C1IET=0 0 1000
C1Res=HIT
C1Stm=maior(a).png 0 255
C1Sch=CRF
C2IET=0 0 1000
C2Res=MISS
C2Stm=menor(a).png 0 255
C2Sch=CRF
SBnd=300 170 300 200
SMsg=Acordes_projeto_borges_C# - 1
C1Bnd=300 810 300 200
C1Msg=menor(a) - 3
C2Bnd=300 490 300 200
C2Msg=maior(a) - 2
[Blc 1 - T3]
Kind=MTS
Name=Acordes_projeto_borges_D#->maior(a)
Cursor=0
SStm=Acordes_projeto_borges_C#m.wav 1 255
SSch=CRF
NumComp=2
C1IET=0 0 1000
C1Res=HIT
C1Stm=menor(a).png 0 255
C1Sch=CRF
C2IET=0 0 1000
C2Res=MISS
C2Stm=maior(a).png 0 255
C2Sch=CRF
SBnd=300 490 300 200
SMsg=Acordes_projeto_borges_C#m - 2
C1Bnd=300 170 300 200
C1Msg=menor(a) - 1
C2Bnd=300 810 300 200
C2Msg=maior(a) - 3
Now the program requires time handling for:
There is no implementation for high resolution range (10, 2, miliseconds and higher). I imagine the nanoseconds would be very good to EEG experiments. EpikTimer would be very good, but I don know if it will fit mac computers.
Is necessary to evaluate all the stuff and decide what is the best for each occasion.
DONE
https://github.com/cpicanco/stimulus_control/tree/master/tests/lacs-matrix
Oi Rafael,
Utilizei o vídeo no formato MP4 e ele não rodou, ficou apenas um quadrado preto. Em avi ele rodou normalmente.
It is about time...
All session parameters are saved inside text files with the INI file structure:
[Section]
Key=Value
In the current implementation (unit/session_config.pas) the program will load some of this values through a custom (overrided) ReadSectionValues method;
TCIniFile = class (TIniFile)
public
procedure ReadSectionValues(const Section: string; Strings: TStrings); override;
end;
The memory used grows very fast in some circumstances, because all trial sections Key=values are stored inside TSringList's.
Specially when the 'NextTrial= x' feature is used to jump over trials, there is no need to load this trials into memory.
So a solution may be to load the current and the following trial at the beginning of each trial.
Setting default language during xml property storage event OnRestore event will reset some components to default values. Right now, a work around is to save old values, then setup the language and then reload old values. This is too much work for the long run. A better alternative is in need.
This bug came back with the dizzy timers type. Something related to the EndTrial method. The Trial object is loosing its reference in the wrong time raising RunTime error 216. Need to fix that.
Apparently this bug occurs only when finishing the session by pressing crtl+q (key down event).
No relatório produzido pelo programa após uma sessão, a coluna Tentativa.Nome não está consistente com a coluna S.Comparações (as duas colunas estão em cor vermelho no arquivo em anexo). Pelo que aparece no relatório a coluna S.Comparações está mostrando uma tentativa a frente da que deveria mostrar, ou seja, se na coluna Tentativa.Nome mostra a tentativa 1, na coluna S.Comparações mostra a tentativa 2 e assim por diante.
ERRO NO RELATÓRIO DE SESSÃO - INCONSISTÊNCIA.xlsx
Percebi que 8 comparações é o limite por tentativa. Queria saber se terá alguma atualização que possa aumentar esse número de comparações?
Necessidade: precisava utilizar 12 comparações em uma mesma tentativa.
Right now, one must manually create new media folders. We will try to automate this routine.
To reduce maintenance.
Avoid to write the participant's name, and other configs over and over.
Now that we have a logger this should be easier.
Update dependency folder and wiki:
VLC Media Player > 2.0 need to be installed.
Create player class through fpc vlc (lclvlc, vlc, libvlc) and controls (TForm);
This requires another Gui (#9).
Investigate if run-time extensibility would be feasible with current code using pascal scripting.
Rewrite
Features
Currently mixing trials types is only supported by manually editing the configuration file.
Need to find why. Maybe a synchronization issue related to TClockThread
.
Create easy to use system on the user_config form (StringGrid1 - TrialGrid).
Use Pen.Mode := pmxor to draw lines on user_config_mirrored_trial form.
Or override the system default color scheme to our own.
This is most than an enhancement. Is is a requirement for the current circumstances.
@cpicanco aparece essa mensagem no momento de configurar as configurações.
Se puder ver isso o mais rápido possível, desde já agradeço.
As much as possible.
Quando a consequência é um arquivo de som (.wav) ela é apresentada. Quando a consequência é arquivo de imagem (.png) não funciona, mesmo se for alterado no arquivo TXT gerado.
Version changes a lot. We need to track it.
I did not test. I should say that it was not intended for time critical experiments. I guess that time critical experiments would require enhanced drawing methods and GPU specific implementation.
Fix synapser implementation.
Or find a better one.
For now, no more info at all.
For example, fill a cell[col_a,row] if the cell[col_b, row] has value x. And so on.
Depois que coloco para rodar a sessão, consigo editar as tentativas? Quando clico em configurar aparece sempre uma nova tentativa zerada para a configurar.
Quando carregada uma imagem (.png), a imagem não é afetada pela ferramenta "escrever" que permite controlar a disposição e tamanho dos estímulos visuais em cada tentativa. A imagem carregada para sinalizar consequência permanece com o tamanho original do arquivo .png carregado.
Now that I know it works (finally).
bvarga/delphizmq#13
Provide dependencies.
Wiki update.
Improve the time accuracy for successive sound stimuli may be possible in the short time; its noticeable with the "naked eye".
Further improvements may require to find a cheaper way to get some more precise feedback of the stimuli presentation lags/inaccuracy. Unfortunately, the Black Box Tool Kit is not affordable at all.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.