One Touch Composer:在 Microsoft Windows* 8 平板电脑上使用触摸、触控笔和键盘控件创建数字乐谱应用程序





0/5 (0投票)
当国际公司 Maestro Music Software 的首席执行官 Dmitriy Golonanov 得知许多音乐家宁愿使用轻便的平板电脑而不是携带笔记本电脑参加演出或去教室时,他决定组建一支由 Sergey Samokhin 组成的小型开发团队,来创建音乐记谱
Intel® Developer Zone 提供跨平台应用程序开发工具和操作指南、平台和技术信息、代码示例以及同行专长,以帮助开发人员进行创新并取得成功。加入我们的社区,了解物联网、Android、Intel® RealSense™ 技术和Windows,下载工具、访问开发套件、与志同道合的开发人员交流想法,并参加黑客马拉松、竞赛、路演和本地活动。
相关文章
面向第四代英特尔®酷睿™处理器的英特尔®处理器显卡开发人员指南
触摸和传感器
如何创建可用的触摸UI
如何调整触摸控件
引言
当国际公司 Maestro Music Software 的首席执行官 Dmitriy Golonanov 得知许多音乐家宁愿使用轻便的平板电脑而不是携带笔记本电脑参加演出或去教室时,他决定组建一支由 Sergey Samokhin 组成的小型开发团队,来创建可以在 Microsoft Windows* 8 平板电脑或运行 Windows 8.1 的 Ultrabook™ 2 合 1 设备上运行的音乐记谱软件。这一灵感产生的成果是 Microsoft Word* 的 One Touch Composer,它使各级作曲家、音乐教育家和音乐家能够创建和共享外观精美的乐谱(图 1)。One Touch Composer 最初以 One Touch Notation 的名称提交,并在 Intel App Innovation Contest 2013 (AIC 2013) 的平板电脑类别中获奖。在比赛期间,Dmitriy 使用了 Intel® Developer Zone 的资源。
为了实现他们的目标,Golonanov 的团队面临着一系列挑战,包括必须设计一种既直观又实用的用户体验,以满足专业和业余音乐家、音乐教师和学生的需求。毕竟,音乐记谱由复杂的 2D 符号组成,即使是相对简单的歌曲也可能跨越许多页面。在小小的平板电脑屏幕上显示和交互这种复杂性,在多个层面上都对团队提出了挑战,从编程 UI 以处理来自触摸、触控笔和两种虚拟键盘的输入,到高效利用计算资源。
方法
为了满足 AIC 2013 规则规定的六周开发周期,Golonanov 和他的团队知道他们的应用程序无法满足所有用户的需求。因此,他们没有创建一个结合了音乐记谱和通过 MIDI* 和音效库进行大量音频播放功能的程序(这是桌面 PC 音乐记谱程序中常见的方法),而是将音频播放限制为内置声音,并专注于让用户能够轻松创建和共享数字乐谱。
这样做,Golonanov 和他的团队遇到了最大的挑战——将他们的设计理念从为桌面应用程序打包尽可能多的强大工具,转变为提供面向移动设备的简化、直观的触摸驱动体验。
Golonanov 和 Samokhin 与乌克兰国家管乐团的指挥、音乐记谱专家 Alexey Bagenov 合作,他字面意义上在一次Microsoft BizSpark* UX Tour 工作坊中在一张方格纸上绘制了 UI(图 2)。
Bagenov 的解决方案允许从单个屏幕访问应用程序的所有功能,而无需传统的菜单。相反,上下文子菜单提供了访问功能(如选择谱号或输入文本)的入口。
UI 将最常用的功能放置在屏幕的左侧、右侧以及顶部(图 3)。音符可以从位于底部的虚拟触摸屏音乐键盘输入;如果设备有物理键盘,则可以用它来命名文件和输入文本(图 4)。如果没有键盘(图 5),用户可以选择虚拟触摸屏键盘。如果通过 USB 连接了 MIDI 键盘到设备,程序会使用定时功能来确定是否存在键盘并自动连接。
Windows 8 触摸 API 提供了实现多种输入技术的必要功能。在早期可用性测试中,团队了解到 Microsoft 推荐的最小触摸区域 23x23 像素对于他们想要使用的按钮来说太小了。因此,他们将按钮的默认大小设置为 40x40,并允许用户更改默认值和自定义界面。团队了解到,触控笔输入在处理五线谱、音符和表情符号等小型 UI 元素时非常有用。基于手指的触摸交互最适合简单的命令,如缩放、放大和滚动。为了避免因触摸目标之间的间隙导致的无响应行为,他们避免了大于 5 像素的间隙。团队还小心地确保放置在触摸屏边缘的 UI 元素足够大,以便用指尖轻松点击。
迁移遗留代码
One Touch Composer 的某些部分是用Delphi* 编写的。其他部分,如性能关键组件,则使用汇编语言编写——这是一种内联汇编语言,用于在 Delphi 程序中直接编写 x86 机器代码。汇编语言支持 Intel® MMX™ 技术和 Intel® Streaming SIMD 扩展。Golonanov 的团队大量借鉴了现有资源,这在六周内完成应用程序开发中起到了重要作用。例如,One Touch Composer 利用了 Maestro Music Software 广泛的专有矢量图形音乐记谱库,该应用程序使用Delphi GDI+ API 访问此库。这个高级、易于使用的 API 以 .NET system.Drawing 命名空间为模型,并提供了显示和打印 2D 图形和格式化文本的功能。
为了在屏幕上绘制音乐符号,Golonanov 和 Samokhin 使用了 DrawString 方法,如下所示
procedure TMSWindow.WMGesture(var Msg: TMessage); var gi: TGestureInfo; bResult,bHandled: BOOL; dwError: DWORD; L: Integer; ptZoomCenterX, ptZoomCenterY, K, angle: Single; aptSecond: TPoint; r: TRect; begin bHandled := False; if bTouchGestureAPIPresent then begin ... test coord of symbols
当用户触摸 UI 按钮(在此示例中为低音谱号按钮)时,将使用以下代码
procedure TFProgramModule.OnButtonClick(Sender: TObject); begin if FMode = mdSetting then begin if Sender is TControl then SetActiveButton(TECItem(TControl(Sender).VCLComObject)); end else if TECItem(TControl(Sender).VCLComObject) is TECButton then with TECButton(TControl(Sender).VCLComObject) do case Action of CLEF_ACTION: AClefExecute(Self); ...
该应用程序还借鉴了 Maestro Music Software 的两个现有产品 Maestro Book* 和 Maestro Book Online*,以提供发布、打印和共享 One Touch Composer 中创建的音乐的电子书版本的功能。
效率和多线程
GDI+ 绝不是在屏幕上显示 2D 图形的最快方法,但它有助于确保 One Touch Composer 可以在 Golonanov 所说的“经典计算机”(较旧的 x86 系统)上运行。
开发人员还小心地确保 One Touch Composer 可以在最少 1 GB RAM 的设备上运行。AIC 开发系统,一台配备 Intel® Atom™ 处理器的联想 ThinkPad* Tablet 2,拥有 2 GB RAM,这足以让用户处理超过 20 页的乐谱。
One Touch Composer 的代码被并行化,并使用了多线程技术,例如,允许在用户阅读 RSS 新闻源等的同时,同时播放和打印数字乐谱。
学到的教训
迄今为止,为 Word 在 Windows 8 平板电脑上创建 One Touch Composer 的最大挑战是简化一个非常复杂的应用程序。Golonanov 强调了在确定移动应用程序的核心功能时,考虑目标受众(在他看来是音乐家、作曲家和教育家)需求的重要性。
Golonanov 还建议开发人员拥抱所有可用的输入技术——在本例中是触摸、触控笔和键盘——并根据其最适合的功能加以利用。他还建议开发人员避免将用户锁定在可能不适合他们手指大小或不是他们首选的设备或软件交互方式的默认设置中。
Golonanov 的团队不断分析音乐家的需求,收集和倾听他们的反馈以改进他们的应用程序。Golonanov 还继续参与 Habrahabra 开发人员社区,以获取其他专业人士的想法并跟上平台发展的步伐。
社区帮助
根据 Golonanov 的说法,作为 AIC 2013 参与的四个国际开发人员社区之一的 Habrahabra 开发人员社区,通过提供关于为音乐家开发软件的书面文章,帮助他的团队完善了 One Touch Composer。Intel Developer Zone 论坛是另一个宝贵的资源,提供了专家见解。
关于开发者
Dmitriy Golonanov 对音乐的兴趣促使他开发音乐记谱软件。他于 2003 年开始在 MagicScore Music 工作,并于 2013 年成为 Maestro Music Software 的首席执行官。
有用的资源
Intel Developer Zone 提供跨平台应用程序开发工具和操作指南、平台和技术信息、代码示例以及同行专长,以帮助开发人员进行创新并取得成功。加入我们的社区,了解物联网、Android*、Intel® RealSense™ 技术和Windows*,下载工具;访问开发套件;与志同道合的开发人员分享想法;并参加黑客马拉松、竞赛、路演和本地活动。
相关文章
Intel、Intel 徽标、Intel Atom、Intel Core、Intel RealSense 和 MMX 是 Intel Corporation 在美国和/或其他国家/地区的商标。
版权所有 © 2014 英特尔公司。保留所有权利。
*其他名称和品牌可能被声明为他人的财产。