{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,3,31]],"date-time":"2022-03-31T23:14:30Z","timestamp":1648768470982},"reference-count":54,"publisher":"MIT Press - Journals","issue":"4","license":[{"start":{"date-parts":[[2021,12,7]],"date-time":"2021-12-07T00:00:00Z","timestamp":1638835200000},"content-version":"vor","delay-in-days":706,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc\/4.0\/"}],"content-domain":{"domain":["direct.mit.edu"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2020,12,1]]},"abstract":"<jats:title>Abstract<\/jats:title>\n               <jats:p>This article presents a method for programming musical signal-processing circuits visually, using expressive idioms and abstractions from functional programming. Special attention is paid to the creative workflow, framing the education in a constructionist context. Our aim is to empower musicians in signal processing: The claim was tested in a university workshop for relatively inexperienced programmers. The participants were able to study and implement signal-processing algorithms from literature and integrate them into their preexisting workflow, and appeared to gain self-confidence while doing so.<\/jats:p>","DOI":"10.1162\/comj_a_00578","type":"journal-article","created":{"date-parts":[[2021,12,7]],"date-time":"2021-12-07T19:26:14Z","timestamp":1638905174000},"page":"8-25","update-policy":"http:\/\/dx.doi.org\/10.1162\/mitpressjournals.corrections.policy","source":"Crossref","is-referenced-by-count":0,"title":["A Visual Programming Interface for Digital Luthiery: Implementing Circuits with Veneer"],"prefix":"10.1162","volume":"44","author":[{"given":"Vesa","family":"Norilo","sequence":"first","affiliation":[{"name":"Sibelius Academy University of the Arts Helsinki PO Box 30, 00097 Taideyliopisto, Finland vno11100 vno11100@uniarts.fi"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alejandro","family":"Olarte","sequence":"additional","affiliation":[{"name":"Sibelius Academy University of the Arts Helsinki PO Box 30, 00097 Taideyliopisto, Finland vno11100 alejandro.olarte@uniarts.fi"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"281","published-online":{"date-parts":[[2020,12,1]]},"reference":[{"issue":"3","key":"2022033115310806100_B1","doi-asserted-by":"publisher","first-page":"59","DOI":"10.1162\/014892699559896","article-title":"Computer-Assisted Composition at IRCAM: From PatchWork to OpenMusic","volume":"23","author":"Assayag","year":"1999","journal-title":"Computer Music Journal"},{"key":"2022033115310806100_B2","doi-asserted-by":"crossref","first-page":"2","DOI":"10.1109\/HCC.2002.1046334","article-title":"First Steps in Programming: A Rationale for Attention Investment Models.","author":"Blackwell","year":"2002","journal-title":"Proceedings of the IEEE Symposia on Human Centric Computing Languages and Environments"},{"key":"2022033115310806100_B3","article-title":"Temporal Type Constructors for Computer Music Programming.","author":"Brandt","year":"2002"},{"key":"2022033115310806100_B4","author":"Brooks","year":"1999","journal-title":"In Search of Understanding: The Case for Constructivist Classrooms"},{"key":"2022033115310806100_B5","first-page":"1","article-title":"Beyond Coding: Back to the Future with Education Robots","author":"Catlin","year":"2019","journal-title":"Smart Learning with Educational Robotics"},{"key":"2022033115310806100_B6","first-page":"47","article-title":"Expressing Temporal Behavior Declaratively.","author":"Dannenberg","year":"1991","journal-title":"CMU Computer Science: A 25th Anniversary Commemorative"},{"issue":"3","key":"2022033115310806100_B7","doi-asserted-by":"publisher","first-page":"71","DOI":"10.2307\/3681015","article-title":"The Implementation of Nyquist, a Sound Synthesis Language.","volume":"21","author":"Dannenberg","year":"1997","journal-title":"Computer Music Journal"},{"issue":"3","key":"2022033115310806100_B8","doi-asserted-by":"publisher","first-page":"83","DOI":"10.2307\/3681016","article-title":"Real-Time Software Synthesis on Superscalar Architectures.","volume":"21","author":"Dannenberg","year":"1997","journal-title":"Computer Music Journal"},{"key":"2022033115310806100_B9","doi-asserted-by":"publisher","DOI":"10.3389\/fdigh.2018.00026","article-title":"Languages for Computer Music","volume":"5","author":"Dannenberg","year":"2018","journal-title":"Frontiers in Digital Humanities"},{"key":"2022033115310806100_B10","first-page":"213","article-title":"Faust Architectures Design and OSC Support.","author":"Fober","year":"2011","journal-title":"Proceedings of the International Conference on Digital Audio Effects"},{"issue":"3","key":"2022033115310806100_B11","first-page":"234","article-title":"Constructionism and De-Constructionism: Opposite Yet Complementary Pedagogies.","volume":"14","author":"Griffin","year":"2019","journal-title":"Constructivist Foundations"},{"key":"2022033115310806100_B12","article-title":"Real-Time Programming and the Big Ideas of Computational Literacy","author":"Hancock","year":"2003"},{"issue":"3","key":"2022033115310806100_B13","doi-asserted-by":"publisher","first-page":"359","DOI":"10.1145\/72551.72554","article-title":"Conception, Evolution, and Application of Functional Programming Languages","volume":"21","author":"Hudak","year":"1989","journal-title":"ACM Computing Surveys"},{"issue":"11","key":"2022033115310806100_B14","doi-asserted-by":"publisher","first-page":"176","DOI":"10.1145\/62084.62100","article-title":"Fabrik: A Visual Programming Environment","volume":"23","author":"Ingalls","year":"1988","journal-title":"ACM SIGPLAN Notices"},{"key":"2022033115310806100_B15","doi-asserted-by":"publisher","DOI":"10.1155\/2011\/434378","article-title":"Feedback Amplitude Modulation Synthesis.","volume":"2011","author":"Kleimola","year":"2011","journal-title":"EURASIP Journal on Advances in Signal Processing"},{"issue":"3","key":"2022033115310806100_B16","doi-asserted-by":"crossref","DOI":"10.1145\/2872521","article-title":"Heuristic Evaluation for Novice Programming Systems","volume":"16","author":"K\u00f6lling","year":"2016","journal-title":"ACM Transactions on Computing Education"},{"issue":"2","key":"2022033115310806100_B17","doi-asserted-by":"publisher","first-page":"221","DOI":"10.1080\/07494460903322505","article-title":"ENP: A System for Contemporary Music Notation.","volume":"28","author":"Kuuskankare","year":"2009","journal-title":"Contemporary Music Review"},{"key":"2022033115310806100_B18","doi-asserted-by":"crossref","first-page":"75","DOI":"10.1109\/CGO.2004.1281665","article-title":"LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation.","author":"Lattner","year":"2004","journal-title":"Proceedings of the International Symposium on Code Generation and Optimization"},{"issue":"1","key":"2022033115310806100_B19","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1162\/comj.2009.33.1.19","article-title":"An Overview of PWGL, a Visual Programming Environment for Music.","volume":"33","author":"Laurson","year":"2009","journal-title":"Computer Music Journal"},{"issue":"3","key":"2022033115310806100_B20","doi-asserted-by":"publisher","first-page":"29","DOI":"10.1162\/0148926054798223","article-title":"PWGLSynth: A Visual Synthesis Language for Virtual Instrument Design and Control.","volume":"29","author":"Laurson","year":"2005","journal-title":"Computer Music Journal"},{"issue":"1","key":"2022033115310806100_B21","doi-asserted-by":"publisher","first-page":"97","DOI":"10.1080\/09298215.2013.778890","article-title":"The Development of Computer Music Programming Systems.","volume":"42","author":"Lazzarini","year":"2013","journal-title":"Journal of New Music Research"},{"key":"2022033115310806100_B22","first-page":"77","volume-title":"Proceedings of the Linux Audio Conference","author":"Lazzarini","year":"2014"},{"key":"2022033115310806100_B23","doi-asserted-by":"crossref","first-page":"139","DOI":"10.1007\/978-3-319-45370-5_7","article-title":"User-Defined Opcodes.","author":"Lazzarini","year":"2016","journal-title":"Csound"},{"issue":"4","key":"2022033115310806100_B24","doi-asserted-by":"publisher","first-page":"61","DOI":"10.1162\/014892602320991383","article-title":"Rethinking the Computer Music Language: SuperCollider.","volume":"26","author":"McCartney","year":"2002","journal-title":"Computer Music Journal"},{"issue":"1","key":"2022033115310806100_B25","doi-asserted-by":"publisher","first-page":"53","DOI":"10.1017\/S1355771819000463","article-title":"Idiomatic Patterns and Aesthetic Influence in Computer Music Languages.","volume":"25","author":"McPherson","year":"2020","journal-title":"Organised Sound"},{"key":"2022033115310806100_B26","first-page":"111","article-title":"The Faust Online Compiler: A Web-based IDE for the Faust Programming Language.","author":"Michon","year":"2012","journal-title":"Proceedings of the Linux Audio Conference"},{"issue":"4","key":"2022033115310806100_B27","doi-asserted-by":"publisher","first-page":"59","DOI":"10.1145\/22339.22349","article-title":"Visual Programming, Programming by Example, and Program Visualization: A Taxonomy.","volume":"17","author":"Myers","year":"1986","journal-title":"ACM SIGCHI Bulletin"},{"issue":"2","key":"2022033115310806100_B28","doi-asserted-by":"publisher","first-page":"111","DOI":"10.1080\/01449299108924276","article-title":"The Learnability of HyperCard as an Object-Oriented Programming System.","volume":"10","author":"Nielsen","year":"1991","journal-title":"Behaviour and Information Technology"},{"key":"2022033115310806100_B29","first-page":"148","article-title":"Unit-Generators Considered Harmful (for Microsound Synthesis): A Novel Programming Model for Microsound Synthesis in LCSynth.","author":"Nishino","year":"2013","journal-title":"Proceedings of the International Computer Music Conference"},{"key":"2022033115310806100_B30","first-page":"15","article-title":"Visualization of Signals and Algorithms in Kronos.","author":"Norilo","year":"2012","journal-title":"Proceedings of the International Conference on Digital Audio Effects"},{"issue":"4","key":"2022033115310806100_B31","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1162\/COMJ_a_00330","article-title":"Kronos: A Declarative Metaprogramming Language for Digital Signal Processing.","volume":"39","author":"Norilo","year":"2015","journal-title":"Computer Music Journal"},{"key":"2022033115310806100_B32","first-page":"319","article-title":"Veneer: Visual and Touch-based Programming for Audio.","author":"Norilo","year":"2019","journal-title":"Proceedings of the International Conference on New Interfaces for Musical Expression"},{"issue":"3","key":"2022033115310806100_B33","first-page":"285","article-title":"Reconstructing Constructionism.","volume":"10","author":"Noss","year":"2015","journal-title":"Constructivist Foundations"},{"issue":"9","key":"2022033115310806100_B34","doi-asserted-by":"publisher","first-page":"623","DOI":"10.1007\/s00500-004-0388-1","article-title":"Syntactical and Semantical Aspects of Faust.","volume":"8","author":"Orlarey","year":"2004","journal-title":"Soft Computing"},{"key":"2022033115310806100_B35","article-title":"Signal Rate Inference for Multidimensional Faust.","author":"Orlarey","year":"2016","journal-title":"Proceedings of the Symposium on the Implementation and Application of Functional Programming Languages"},{"key":"2022033115310806100_B36","author":"Papert","year":"1980","journal-title":"Mindstorms: Children, Computers, and Powerful Ideas"},{"key":"2022033115310806100_B37","first-page":"79","article-title":"Microworlds: Transforming Education.","author":"Papert","year":"1987","journal-title":"Artificial Intelligence and Education"},{"key":"2022033115310806100_B38","author":"Papert","year":"1993","journal-title":"The Children's Machine: Rethinking School in the Age of the Computer"},{"issue":"1","key":"2022033115310806100_B39","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1177\/0255761411433727","article-title":"Cosmopolitan Musicianship under Construction: Digital Musicians Illuminating Emerging Values in Music Education.","volume":"32","author":"Partti","year":"2014","journal-title":"International Journal of Music Education"},{"key":"2022033115310806100_B40","article-title":"Project Jupyter: Computational Narratives as the Engine of Collaborative Data Science.","author":"Perez","year":"2015"},{"key":"2022033115310806100_B41","first-page":"269","article-title":"Pure Data: Another Integrated Computer Music Environment.","author":"Puckette","year":"1996","journal-title":"Proceedings of the International Computer Music Conference"},{"key":"2022033115310806100_B42","author":"Roads","year":"1996","journal-title":"The Computer Music Tutorial"},{"key":"2022033115310806100_B43","first-page":"64","article-title":"Gibber: Live Coding Audio in the Browser.","author":"Roberts","year":"2012","journal-title":"Proceedings of the International Computer Music Conference"},{"issue":"9","key":"2022033115310806100_B44","doi-asserted-by":"publisher","first-page":"252","DOI":"10.1109\/97.623041","article-title":"Maximally Diffusive Yet Efficient Feedback Delay Networks for Artificial Reverberation.","volume":"4","author":"Rocchesso","year":"1997","journal-title":"IEEE Signal Processing Letters"},{"key":"2022033115310806100_B45","first-page":"60","article-title":"Chugens, Chubgraphs, ChuGins: Three Tiers for Extending ChucK.","author":"Salazar","year":"2012","journal-title":"Proceedings of the International Computer Music Conference"},{"key":"2022033115310806100_B46","author":"Schr\u00f6der","year":"2002","journal-title":"Ordered Sets: An Introduction"},{"key":"2022033115310806100_B47","doi-asserted-by":"crossref","first-page":"80","DOI":"10.1145\/2818314.2818315","article-title":"Relationships: Computational Thinking, Pedagogy of Programming, and Bloom's Taxonomy.","author":"Selby","year":"2015","journal-title":"Proceedings of the Workshop in Primary and Secondary Computing Education"},{"issue":"10","key":"2022033115310806100_B48","doi-asserted-by":"publisher","first-page":"822","DOI":"10.1145\/1932682.1869526","article-title":"Programming with Time Cyber: Physical Programming with Impromptu.","volume":"45","author":"Sorensen","year":"2010","journal-title":"ACM SIGPLAN Notices"},{"key":"2022033115310806100_B49","first-page":"214","article-title":"Systems Level Liveness with Extempore.","author":"Sorensen","year":"2017","journal-title":"Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software"},{"issue":"5","key":"2022033115310806100_B50","first-page":"3","article-title":"Sketchpad: A Man\u2013Machine Graphical Communication System.","volume":"2","author":"Sutherland","year":"1964","journal-title":"Transactions of the Society for Computer Simulation"},{"issue":"4","key":"2022033115310806100_B51","doi-asserted-by":"publisher","first-page":"786","DOI":"10.1109\/TASL.2009.2026507","article-title":"Alias-Suppressed Oscillators Based on Differentiated Polynomial Waveforms","volume":"18","author":"Valimaki","year":"2009","journal-title":"IEEE Transactions on Audio, Speech, and Language Processing"},{"issue":"4","key":"2022033115310806100_B52","doi-asserted-by":"publisher","first-page":"10","DOI":"10.1162\/COMJ_a_00324","article-title":"ChucK: A Strongly Timed Computer Music Language.","volume":"39","author":"Wang","year":"2015","journal-title":"Computer Music Journal"},{"key":"2022033115310806100_B53","first-page":"219","article-title":"ChucK: A Concurrent, On-the-Fly, Audio Programming Language.","author":"Wang","year":"2003","journal-title":"Proceedings of the International Computer Music Conference"},{"key":"2022033115310806100_B54","doi-asserted-by":"crossref","first-page":"170","DOI":"10.4324\/9780429281440-10","article-title":"The Browser as a Platform for Ubiquitous Music.","author":"Yi","year":"2020","journal-title":"Ubiquitous Music Ecologies"}],"container-title":["Computer Music Journal"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/direct.mit.edu\/comj\/article-pdf\/44\/4\/8\/2005884\/comj_a_00578.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/direct.mit.edu\/comj\/article-pdf\/44\/4\/8\/2005884\/comj_a_00578.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,3,31]],"date-time":"2022-03-31T22:38:20Z","timestamp":1648766300000},"score":1,"resource":{"primary":{"URL":"https:\/\/direct.mit.edu\/comj\/article\/44\/4\/8\/108548\/A-Visual-Programming-Interface-for-Digital"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"references-count":54,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2020,12,1]]},"published-print":{"date-parts":[[2020,12,1]]}},"URL":"https:\/\/doi.org\/10.1162\/comj_a_00578","relation":{},"ISSN":["0148-9267","1531-5169"],"issn-type":[{"value":"0148-9267","type":"print"},{"value":"1531-5169","type":"electronic"}],"subject":[],"published-other":{"date-parts":[[2020]]},"published":{"date-parts":[[2020]]}}}