我是最后一年的学生并且已经开始研究我的项目了。我已经购买了神经支持的心态,并且正在考虑通过为每个波浪(从耳机发送)分配一个仪器来进行创世纪,例如在阿尔法波浪上鼓,使用midi,我想在c#中进行编码而不是专业,所以可以告诉我它是否可行? 以及任何可以提供帮助的链接
答案 0 :(得分:3)
是的,这完全有可能。我已经完成了你的建议。您可以找到more details on my website for MindMaster MIDI。
这有几个部分。首先是从耳机中取样并将它们放入缓冲区。为此,您需要Neurosky SDK。
接下来,您需要处理这些样本。有许多处理脑电波的算法。最简单的方法(也是最富有成效的方法,取决于你的问题),将波形从时域转换到频域,并检查alpha / beta频率范围内几个波段的相对电平。 (这是从8Hz到24Hz左右的任何地方。)
有一些方法可以通过编程方式执行此操作。 FFT是一种常见的方式,您会发现许多算法可用。我认为FFT对于我的目的来说太慢了,最后使用了Goertzel algorithm。这样效率更高,因为我只关注几个乐队。
完成后,您需要编写应用程序以将数据转换为MIDI。如何执行此操作取决于您以及您希望实现的功能。
接下来,您需要发送MIDI数据。我不确定你对MIDI有多熟悉,但在基本层面上,有音符开/关信息。您可能对控制变化消息更感兴趣,控制变化消息控制各种参数,如截止频率和共振。要使用C#发送MIDI,您还有很多选择。 Leslie Sanford's example on Code Project足以让您入门。
最后,如果您对此有任何疑问,最好分开询问个别问题。 Stack Overflow真的不是“我想做这个大项目的地方,告诉我如何一次完成这一切”。
答案 1 :(得分:1)
好的,我有资格回答你的问题。我现在正在开发一个C#xna视频游戏。
public void _thinkGearWrapper_ThinkGearChanged(object sender, ThinkGearChangedEventArgs e)
{
// update the textbox and sleep for a tiny bit
BeginInvoke(new MethodInvoker(delegate
{
lblAttention.Text = "Attention: " + e.ThinkGearState.Attention;
lblMeditation.Text = "Meditation: " + e.ThinkGearState.Meditation;
attentionvar = e.ThinkGearState.Attention;
meditationvar = e.ThinkGearState.Meditation;
attentionstring = attentionvar.ToString();
meditationstring = meditationvar.ToString();
txtState.Text = e.ThinkGearState.ToString();
}));
Thread.Sleep(10);
senddata();
}
public void senddata()
{
FileStream fs = new FileStream("\\programming\\meditationvariables.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
fs.Close();
StreamWriter sw = new StreamWriter("\\programming\\meditationvariables.txt", true, Encoding.ASCII);
string nextline = meditationstring;
sw.Write(nextline);
sw.Close();
}
这是可行的。您需要下载此项目并查看它,即使它是xna3.5 http://channel9.msdn.com/coding4fun/articles/MindBlaster
你需要去这个网站 developer.neurosky.com
查看我的Dropbox我的项目它还有帮助但是还没有更新,虽然新的更新版本将会有更多帮助随附阅读我和所有内容
https://www.dropbox.com/s/4tkemk6py7ffvch/JESUSISGOD-MINDBALLalpha.zip
答案 2 :(得分:0)
Android API公开了一种数据结构,可以让您的生活更轻松(无需与FFT库集成或上帝禁止自己编写)。
特别是MSG_EEG_POWER。
从SDK doc: “八个EEG功率是:delta(0.5 - 2.75Hz),theta(3.5 - 6.75Hz),低 - α(7.5 - 9.25Hz),高 - α(10 - 11.75Hz),低 - β(13 - 16.75) Hz),高β(18 - 29.75Hz),低伽玛(31 - 39.75Hz)和中伽马(41 - 49.75Hz)。“
然后,您可以将这些内容提供给Brad正在做的一些事情。您可以与Neurosky人员交谈,看看他们是否可以为您提供C#的API。