{"id":2206,"date":"2020-11-22T16:06:43","date_gmt":"2020-11-22T10:36:43","guid":{"rendered":"https:\/\/www.rangakrish.com\/?p=2206"},"modified":"2020-11-22T16:06:43","modified_gmt":"2020-11-22T10:36:43","slug":"a-library-for-algorithmic-music-composition","status":"publish","type":"post","link":"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/","title":{"rendered":"A Library for Algorithmic Music Composition"},"content":{"rendered":"<p>I have recently started implementing a library for <em><strong>algorithmic music composition<\/strong><\/em>. It provides higher-level algorithms and abstractions for composing multi-track music, and works with <a href=\"https:\/\/opusmodus.com\" target=\"_blank\" rel=\"noopener noreferrer\"><em><strong>Opusmodus<\/strong><\/em><\/a>\u00a0software. <em><strong>Opusmodus<\/strong><\/em> is a great platform for music composition and has excellent support for <em><strong>MIDI<\/strong><\/em>-based music. My library is an attempt to enrich the <em><strong>Opusmodus<\/strong><\/em> platform with features that facilitate easier composition. The implementation is in a rudimentary stage, and I am excited by the possibilities it offers. The preview that I shared with some of my friends has attracted positive comments already!<\/p>\n<p>This post is a sneak preview for the benefit of my readers. I am also sharing the links for a couple of song snippets (8-bar phrases) for download.<\/p>\n<p>Let me start off with a simple app that I built on <em><strong>Windows<\/strong><\/em>. It provides a convenient UI for adjusting the key parameters used in the synthesis example. The app remotely connects to my <em><strong>iMac<\/strong><\/em> that runs <em><strong>Opusmodus<\/strong><\/em> as a server application for generating the music.<\/p>\n<figure id=\"attachment_2208\" aria-describedby=\"caption-attachment-2208\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?ssl=1\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" data-attachment-id=\"2208\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/screen1\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg\" data-orig-size=\"1085,504\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Admin&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1606051841&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"App for Controlling Opusmodus\" data-image-description=\"&lt;p&gt;App for Controlling Opusmodus&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;App for Controlling Opusmodus&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1-1024x476.jpg\" class=\"wp-image-2208\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?resize=500%2C232&#038;ssl=1\" alt=\"App for Controlling Opusmodus\" width=\"500\" height=\"232\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?resize=300%2C139&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?resize=1024%2C476&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?resize=768%2C357&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Screen1.jpg?w=1085&amp;ssl=1 1085w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2208\" class=\"wp-caption-text\"><strong>App for Controlling Opusmodus<\/strong><\/figcaption><\/figure>\n<p>A brief explanation of the UI follows. The <em><strong>IP address<\/strong><\/em> and <em><strong>Port<\/strong><\/em> number are required for the app to communicate with the music server. The algorithms internally rely on six random numbers. These can be configured in the UI. The three buttons next to the seeds help in selecting the random values. You will see some examples later.<\/p>\n<p>We can customise the <em><strong>pitch generation strategy<\/strong><\/em> by choosing an appropriate <em><strong>generator<\/strong><\/em> (five are supported at present). We can also choose the <em><strong>scales<\/strong><\/em> (along with the <em><strong>root<\/strong><\/em>) used in the melody as well as chord. Finally, we can define the <em><strong>Time Signature<\/strong><\/em> (2\/4 and 4\/4 are supported as of now) and the <em><strong>Beats-per-Minute<\/strong><\/em>.<\/p>\n<p>When the <em><strong>\u201cGenerate\u201d<\/strong><\/em> button is clicked, the app communicates with <em><strong>Opusmodus<\/strong><\/em> server, passes on the parameters for synthesis, and causes the music to be emitted. At present, the program only plays <em><strong>8<\/strong><\/em> bars (it is trivial to extend it to longer bars).<\/p>\n<p>To make things interesting, I am routing the generated <em><strong>MIDI<\/strong><\/em> output from <em><strong>Opusmodus<\/strong><\/em> to <a href=\"https:\/\/www.reaper.fm\" target=\"_blank\" rel=\"noopener noreferrer\"><em><strong>Reaper DAW<\/strong><\/em><\/a>. There are 4 tracks as you can see.<\/p>\n<figure id=\"attachment_2210\" aria-describedby=\"caption-attachment-2210\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"2210\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/reaper\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png\" data-orig-size=\"813,865\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Reaper DAW\" data-image-description=\"&lt;p&gt;Reaper DAW&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Reaper DAW&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png\" class=\"wp-image-2210\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png?resize=400%2C426&#038;ssl=1\" alt=\"Reaper DAW\" width=\"400\" height=\"426\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png?resize=282%2C300&amp;ssl=1 282w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png?resize=768%2C817&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Reaper.png?w=813&amp;ssl=1 813w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-2210\" class=\"wp-caption-text\"><strong>Reaper DAW<\/strong><\/figcaption><\/figure>\n<p>For the different instruments, I am using <a href=\"https:\/\/www.reasonstudios.com\/shop\/product\/reason-11\/\" target=\"_blank\" rel=\"noopener noreferrer\"><em><strong>Reason<\/strong><\/em><\/a>\u00a0<em><strong>Rack Plugins<\/strong><\/em> for <em><strong>Guitar<\/strong><\/em>, <em><strong>Piano<\/strong><\/em>, <em><strong>Lead<\/strong><\/em>, and <em><strong>Drum<\/strong><\/em>. See the images below.<\/p>\n<figure id=\"attachment_2211\" aria-describedby=\"caption-attachment-2211\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"2211\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/guitar\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png\" data-orig-size=\"796,216\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Guitar Plugin\" data-image-description=\"&lt;p&gt;Guitar Plugin&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Guitar Plugin&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png\" class=\"wp-image-2211\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png?resize=400%2C109&#038;ssl=1\" alt=\"Guitar Plugin\" width=\"400\" height=\"109\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png?resize=300%2C81&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png?resize=768%2C208&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Guitar.png?w=796&amp;ssl=1 796w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-2211\" class=\"wp-caption-text\"><strong>Guitar Plugin<\/strong><\/figcaption><\/figure>\n<figure id=\"attachment_2212\" aria-describedby=\"caption-attachment-2212\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2212\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/piano\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png\" data-orig-size=\"794,424\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Piano Plugin\" data-image-description=\"&lt;p&gt;Piano Plugin&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Piano Plugin&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png\" class=\"wp-image-2212\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png?resize=400%2C214&#038;ssl=1\" alt=\"Piano Plugin\" width=\"400\" height=\"214\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png?resize=300%2C160&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png?resize=768%2C410&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Piano.png?w=794&amp;ssl=1 794w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-2212\" class=\"wp-caption-text\"><strong>Piano Plugin<\/strong><\/figcaption><\/figure>\n<figure id=\"attachment_2213\" aria-describedby=\"caption-attachment-2213\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2213\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/lead\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png\" data-orig-size=\"795,353\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Lead Plugin\" data-image-description=\"&lt;p&gt;Lead Plugin&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Lead Plugin&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png\" class=\"wp-image-2213\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png?resize=400%2C178&#038;ssl=1\" alt=\"Lead Plugin\" width=\"400\" height=\"178\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png?resize=300%2C133&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png?resize=768%2C341&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Lead.png?w=795&amp;ssl=1 795w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-2213\" class=\"wp-caption-text\"><strong>Lead Plugin<\/strong><\/figcaption><\/figure>\n<figure id=\"attachment_2214\" aria-describedby=\"caption-attachment-2214\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2214\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/drum\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png\" data-orig-size=\"794,423\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Drum Plugin\" data-image-description=\"&lt;p&gt;Drum Plugin&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Drum Plugin&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png\" class=\"wp-image-2214\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png?resize=400%2C213&#038;ssl=1\" alt=\"Drum Plugin\" width=\"400\" height=\"213\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png?resize=300%2C160&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png?resize=768%2C409&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/Drum.png?w=794&amp;ssl=1 794w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-2214\" class=\"wp-caption-text\"><strong>Drum Plugin<\/strong><\/figcaption><\/figure>\n<p>Now listen to the snippet generated by the above set of parameters.<\/p>\n<p><strong><a href=\"https:\/\/soundcloud.com\/rangarajan-964790889\/music1\" target=\"_blank\" rel=\"noopener noreferrer\">Music Snippet-1<\/a><\/strong><\/p>\n<p>For the benefit of those who can read music notation, the above snippet looks like this:<\/p>\n<figure id=\"attachment_2215\" aria-describedby=\"caption-attachment-2215\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2215\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/xml1\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png\" data-orig-size=\"773,191\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Snippet-1 Notation\" data-image-description=\"&lt;p&gt;Snippet-1 Notation&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Snippet-1 Notation&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png\" class=\"wp-image-2215\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png?resize=500%2C124&#038;ssl=1\" alt=\"Snippet-1 Notation\" width=\"500\" height=\"124\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png?resize=300%2C74&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png?resize=768%2C190&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml1.png?w=773&amp;ssl=1 773w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2215\" class=\"wp-caption-text\"><strong>Snippet-1 Notation<\/strong><\/figcaption><\/figure>\n<p>Let us now change some parameters and generate another snippet.<\/p>\n<figure id=\"attachment_2216\" aria-describedby=\"caption-attachment-2216\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2216\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/screen2\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg\" data-orig-size=\"1085,504\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Admin&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1606053149&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Changed Parameters\" data-image-description=\"&lt;p&gt;Changed Parameters&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Changed Parameters&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2-1024x476.jpg\" class=\"wp-image-2216\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?resize=500%2C232&#038;ssl=1\" alt=\"Changed Parameters\" width=\"500\" height=\"232\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?resize=300%2C139&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?resize=1024%2C476&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?resize=768%2C357&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen2.jpg?w=1085&amp;ssl=1 1085w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2216\" class=\"wp-caption-text\"><strong>Changed Parameters<\/strong><\/figcaption><\/figure>\n<p>Here is the generated music:<\/p>\n<p><a href=\"https:\/\/soundcloud.com\/rangarajan-964790889\/music2\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Music Snippet-2<\/strong><\/a><\/p>\n<p>And here is the notation:<\/p>\n<figure id=\"attachment_2217\" aria-describedby=\"caption-attachment-2217\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2217\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/xml2\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png\" data-orig-size=\"995,372\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Notation for Snippet-2\" data-image-description=\"&lt;p&gt;Notation for Snippet-2&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Notation for Snippet-2&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png\" class=\"wp-image-2217\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png?resize=500%2C187&#038;ssl=1\" alt=\"Notation for Snippet-2\" width=\"500\" height=\"187\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png?resize=300%2C112&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png?resize=768%2C287&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml2.png?w=995&amp;ssl=1 995w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2217\" class=\"wp-caption-text\"><strong>Notation for Snippet-2<\/strong><\/figcaption><\/figure>\n<p>The above two snippets are based on <em><strong>2\/4 Time Signature<\/strong><\/em>. Let us switch to <em><strong>4\/4<\/strong><\/em> and <em><strong>100 BPM<\/strong><\/em>.<\/p>\n<p>One of the amazing features of <em><strong>Opusmodus<\/strong><\/em> is its support for over a hundred <em><strong>\u201cscales\u201d<\/strong><\/em>, including some from India! The following example uses <em><strong>\u201cmela-harikambhoji\u201d<\/strong><\/em> from Indian <em><strong>Carnatic Music<\/strong><\/em>. This time, I have changed the <em><strong>\u201cseeds\u201d<\/strong><\/em> to be all <em><strong>\u201cnil\u201d<\/strong><\/em> so the pitches generated will be more random.<\/p>\n<figure id=\"attachment_2218\" aria-describedby=\"caption-attachment-2218\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2218\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/screen3\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg\" data-orig-size=\"1085,504\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;Admin&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1606053759&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Parameters Changed Again\" data-image-description=\"&lt;p&gt;Parameters Changed Again&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Parameters Changed Again&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3-1024x476.jpg\" class=\"wp-image-2218\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?resize=500%2C232&#038;ssl=1\" alt=\"Parameters Changed Again\" width=\"500\" height=\"232\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?resize=300%2C139&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?resize=1024%2C476&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?resize=768%2C357&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/screen3.jpg?w=1085&amp;ssl=1 1085w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2218\" class=\"wp-caption-text\"><strong>Parameters Changed Again<\/strong><\/figcaption><\/figure>\n<p>Here is the music snippet:<\/p>\n<p><a href=\"https:\/\/soundcloud.com\/rangarajan-964790889\/music3\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Music Snippet-3<\/strong><\/a><\/p>\n<p>Here is the notation:<\/p>\n<figure id=\"attachment_2219\" aria-describedby=\"caption-attachment-2219\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2219\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/xml3\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png\" data-orig-size=\"998,364\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Notation for Snippet-3\" data-image-description=\"&lt;p&gt;Notation for Snippet-3&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Notation for Snippet-3&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png\" class=\"wp-image-2219\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png?resize=500%2C182&#038;ssl=1\" alt=\"Notation for Snippet-3\" width=\"500\" height=\"182\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png?resize=300%2C109&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png?resize=768%2C280&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml3.png?w=998&amp;ssl=1 998w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2219\" class=\"wp-caption-text\"><strong>Notation for Snippet-3<\/strong><\/figcaption><\/figure>\n<p>When one or more of the seeds are <em><strong>\u201cnil\u201d<\/strong><\/em>, the other parameters being fixed, we still get different music fragments each time. To demonstrate this, I am using the same parameters as the earlier one, but now listen to the music generated:<\/p>\n<p><a href=\"https:\/\/soundcloud.com\/rangarajan-964790889\/music4\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Music Snippet-4<\/strong><\/a><\/p>\n<p>The corresponding notation is this:<\/p>\n<figure id=\"attachment_2220\" aria-describedby=\"caption-attachment-2220\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"2220\" data-permalink=\"https:\/\/www.rangakrish.com\/index.php\/2020\/11\/22\/a-library-for-algorithmic-music-composition\/xml4\/\" data-orig-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png\" data-orig-size=\"997,378\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Snippet-4 Notation\" data-image-description=\"&lt;p&gt;Snippet-4 Notation&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Snippet-4 Notation&lt;\/p&gt;\n\" data-large-file=\"https:\/\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png\" class=\"wp-image-2220\" src=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png?resize=500%2C190&#038;ssl=1\" alt=\"Snippet-4 Notation\" width=\"500\" height=\"190\" srcset=\"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png?resize=300%2C114&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png?resize=768%2C291&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/11\/xml4.png?w=997&amp;ssl=1 997w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><figcaption id=\"caption-attachment-2220\" class=\"wp-caption-text\"><strong>Snippet-4 Notation<\/strong><\/figcaption><\/figure>\n<p>For further variety, I can change the instruments mapped to different tracks. Or even play the same set of tracks through multiple DAWs such as <a href=\"https:\/\/www.ableton.com\" target=\"_blank\" rel=\"noopener noreferrer\"><em><strong>Ableton<\/strong><\/em>\u00a0<em><strong>Live<\/strong><\/em><\/a> and <a href=\"https:\/\/www.reaper.fm\" target=\"_blank\" rel=\"noopener noreferrer\"><em><strong>Reaper<\/strong><\/em><\/a> simultaneously (I have tried this and it sounds great.)<\/p>\n<p>I hope the above samples give you an idea of the capabilities of the library as of now. There is quite a bit of work to do and I will share the updates at regular intervals.<\/p>\n<p>The UI is implemented in <em><strong>C++<\/strong><\/em> on <em><strong>Windows 10<\/strong><\/em> (64 bit) using <em><strong>RAD Studio 10.3.2<\/strong><\/em>.<\/p>\n<p>Have a nice weekend and great week ahead!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have recently started implementing a library for algorithmic music composition. It provides higher-level algorithms and abstractions for composing multi-track music, and works with Opusmodus\u00a0software. Opusmodus is a great platform for music composition and has excellent support for MIDI-based music. My library is an attempt to enrich the Opusmodus platform with features that facilitate easier [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[18,5,17],"tags":[255,256,37],"class_list":["post-2206","post","type-post","status-publish","format-standard","hentry","category-lisp","category-music","category-programming","tag-algorithmic-composition","tag-music-composition","tag-opusmodus"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9OLnF-zA","jetpack-related-posts":[{"id":3525,"url":"https:\/\/www.rangakrish.com\/index.php\/2024\/10\/13\/using-chatgpt-for-algorithmic-music-composition\/","url_meta":{"origin":2206,"position":0},"title":"Using ChatGPT for Algorithmic Music Composition","author":"admin","date":"October 13, 2024","format":false,"excerpt":"Algorithmic music composition is one of my favourite areas. And in terms of tools, as several of my past articles\u00a0show, OpusModus software is the main choice.\u00a0 Recently I have been spending some time checking if ChatGPT could be cajoled into writing some good OpusModus code. But the experience has not\u2026","rel":"","context":"In &quot;Music&quot;","block_context":{"text":"Music","link":"https:\/\/www.rangakrish.com\/index.php\/category\/music\/"},"img":{"alt_text":"SonicPi Code for Twinkle Twinkle Lite Star","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2024\/10\/twinkle-300x280.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2024\/10\/twinkle-300x280.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2024\/10\/twinkle-300x280.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2242,"url":"https:\/\/www.rangakrish.com\/index.php\/2020\/12\/20\/jfugue-a-java-library-for-music-synthesis\/","url_meta":{"origin":2206,"position":1},"title":"JFugue: A Java Library for Music Synthesis","author":"admin","date":"December 20, 2020","format":false,"excerpt":"JFugue\u00a0is an open-source Java library that can be used for algorithmic music composition. Developed by David Koelle, currently it is in its fifth major version. You can get the library from here. I had downloaded the library some time ago, but could not spend much time since my primary focus\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"Simple Java Program","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/12\/java-2-300x142.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/12\/java-2-300x142.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/12\/java-2-300x142.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2224,"url":"https:\/\/www.rangakrish.com\/index.php\/2020\/12\/06\/using-falcon-2-with-opusmodus\/","url_meta":{"origin":2206,"position":2},"title":"Using Falcon 2 with Opusmodus","author":"admin","date":"December 6, 2020","format":false,"excerpt":"The recently concluded Black Friday sale by UVI\u00a0was an irresistible temptation for me and I ended up investing in Falcon 2 and a few other instruments. Although I have the latest versions of Ableton Live, Propellerheads Reason, Renoise, and Reaper, I felt Falcon 2 would be a good addition to\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"Sample Code in Opusmodus","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/12\/code-248x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2174,"url":"https:\/\/www.rangakrish.com\/index.php\/2020\/10\/24\/using-random-walk-principle-to-generate-music\/","url_meta":{"origin":2206,"position":3},"title":"Using Random Walk Principle to Generate Music","author":"admin","date":"October 24, 2020","format":false,"excerpt":"In mathematics, the simplest example of Random Walk\u00a0is a random process along a one-dimensional plane of integers, starting at 0 and moving in the positive or negative direction in steps of +1 or -1, with equal probability. The Random Walk\u00a0theory has been applied in many domains including Physics and even\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"Random Walk Example in Mathematica","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2020\/10\/Mathematica-RandomWalk-300x135.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":169,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/03\/04\/a-gui-front-end-for-cellular-automata-generator\/","url_meta":{"origin":2206,"position":4},"title":"A GUI Front-end for Cellular Automata Generator","author":"admin","date":"March 4, 2016","format":false,"excerpt":"In my last post, I explained how we can use Cellular Automata (CA) in Opusmodus\u00a0to create music. For today\u2019s post, I wanted to build a simple UI to control the parameters used in the CA example. This posed a practical difficulty. Opusmodus does not yet provide a GUI library. Even\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"Opusmodus GUI Driver","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/03\/Opusmodus-Driver.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/03\/Opusmodus-Driver.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/03\/Opusmodus-Driver.png?resize=525%2C300 1.5x"},"classes":[]},{"id":124,"url":"https:\/\/www.rangakrish.com\/index.php\/2016\/01\/08\/how-to-use-reaktor-with-opusmodus\/","url_meta":{"origin":2206,"position":5},"title":"How to Use Reaktor with Opusmodus","author":"admin","date":"January 8, 2016","format":false,"excerpt":"For those of you who do not know about Opusmodus (OM), it is a very powerful and flexible algorithmic music composition environment built in Lisp. It is available for the Mac. Today I wanted to understand how to make Opusmodus communicate with Reaktor 6 to play some tunes. The built-in\u2026","rel":"","context":"In &quot;LISP&quot;","block_context":{"text":"LISP","link":"https:\/\/www.rangakrish.com\/index.php\/category\/lisp\/"},"img":{"alt_text":"IAC Driver","src":"https:\/\/i0.wp.com\/www.rangakrish.com\/wp-content\/uploads\/2016\/01\/IAC-Driver-283x300.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/2206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/comments?post=2206"}],"version-history":[{"count":0,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/posts\/2206\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/media?parent=2206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/categories?post=2206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rangakrish.com\/index.php\/wp-json\/wp\/v2\/tags?post=2206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}