Music and Visual Art Libraries

Home Forums Browsing the Hexes Music and Visual Art Libraries

This topic contains 16 replies, has 3 voices, and was last updated by  DigitalFabric 2 months ago.

Viewing 15 posts - 1 through 15 (of 17 total)
  • Author
    Posts
  • #192 Reply

    Wilf Shaw

    Hello everyone.

    I was just thinking whether, with the same (or a similar) algorithm and current technological capacity, libraries of music (done on say a randomized octave of semitones (so equivalent of 24 characters, 25 including a rest as a character) with some additional code to select which octave) and libraries of visual art (random combinations of pixels, though the colour of the pixels would have to be significanty limited) could be created. Would the data required to encode music and imagery be far too much for current technology to handle?

    Either way the possibilities of such infinite combinations of different things (and different alphabets as has already been mentioned several times) are fascinating. Perhaps the music could have some form in sheet music if actual creation of music isn’t possible with technology. Voice to speech programmes applied to the text of the current library is also quite interesting, simply for the variety of chaos.

    Any information on the capacity of the programming is much appreciated.

    #193 Reply

    Jonathan Basile
    Keymaster

    I’ve been thinking about this one as well – I hope to experiment with music and images when I finish work on the present library – but I’d love input from other programmers who’ve worked with either before.

    Any advice about manipulating images and sound? My preferred language is C++.

    #206 Reply

    Manuel Reinsperger

    I actually created something for music in the last ten minutes. It is a simple JavaScript Bookmarklet so it works by adding the displayed link at the very bottom of my post to your bookmarks and clicking on it when on any libraryofbabel.info page site.
    I tested that this works in Firefox, Chrome and Safari, but the bookmarking is more complicated in anything other than Firefox. If you google for “How to add a bookmarklet in XXXX” where XXXX is the browser of your choice and follow the steps you should get the same results everywhere. Enjoy!

    Clean Code, just for understanding:

    
    function () {
    
                    var audio = new window.webkitAudioContext(),
                        position = 0,
                        scale = { // Frequencies for each character, everything not declared it pause
    a:196.00,b:207.65,c:220.00,d:233.08,e:246.94,f:261.63,g:277.18,h:293.66,i:311.13,j:329.63,k:349.23,l:369.99,m:392.00,n:415.30,o:440.00,p:466.16,q:493.88,r:523.25,s:554.37,t:587.33,u:622.25,v:659.25,w:698.46,x:739.99,y:783.99,z:830.61
                        },
                        song = document.getElementById("textblock").innerHTML.replace(/\n/gi, "");
    
                    setInterval(play, 1000 / 4);
    
                    function createOscillator(freq) {
                        var attack = 100, // Increase for more washed out sounds, decrease for more sharp sounds
                            decay = 500, // Increase for longer notes, decrease for shorter ones
                            gain = audio.createGain(),
                            osc = audio.createOscillator();
    
                        gain.connect(audio.destination);
                        gain.gain.setValueAtTime(0, audio.currentTime);
                        gain.gain.linearRampToValueAtTime(1, audio.currentTime + attack / 1000);
                        gain.gain.linearRampToValueAtTime(0, audio.currentTime + decay / 1000);
    
                        osc.frequency.value = freq;
                        osc.type = "square";
                        osc.connect(gain);
                        osc.start(0);
    
                        setTimeout(function () {
                            osc.stop(0);
                            osc.disconnect(gain);
                            gain.disconnect(audio.destination);
                        }, decay);
                    }
    
                    function play() {
                        var note = song.charAt(position),
                            freq = scale[note];
                        position += 1;
                        if (position >= song.length) {
                            position = 0;
                        }
                        if (freq) {
                            createOscillator(freq);
                        }
                    }
                };
    

    Bookmarklet:
    =song.length){position=0;}if(freq){createOscillator(freq);}}})();’>Save this as Bookmark

    #207 Reply

    Manuel Reinsperger

    Well never mind the Bookmarklet as the forum decided to kill my URL. If you follow this link to http://www.icetee.org/OTHER/bookmarklets/libraryofbabel.html you will find what I tried to post earlier with some additional information.

    I hope you like the idea, any suggestions are welcome.

    Cheers

    #210 Reply

    Jonathan Basile
    Keymaster

    This is incredible, Manuel!

    I’ll elaborate on your instructions so they’re all in one place:

    1) follow this link to a page Manuel has set up for copying the bookmarklet

    The instructions may be different based on your browser at this point, but for Chrome:

    2) right click the “Bookmarklet Here!” link and copy the link, then open a new tab, right click the bookmark bar, and select add page.

    3) Where it says URL paste what you have copied – the javascript code will show up there. Then give it any name and add the bookmark

    4) Go to any page of the library and select the bookmarklet from your bookmarks – it creates tones based on the letters on the page!

    If it’s all right with you, Manuel, I’d love to add a link to it elsewhere on the site. Well done!

    #215 Reply

    Manuel Reinsperger

    Thanks for the Summary Jonathan, you are of course more than welcome to put the Bookmarklet on your website.
    I would only suggest you to wait a day or two, because I will still do some tweaks.

    #224 Reply

    Manuel Reinsperger

    I finished it, for all that use my music bookmarklet, please go to my webpage and renew your link.
    Different new functionalities, like changing sound mode and two other parameters to put the experience to your liking have been added.

    I hope that at least some find use in this little experiment and wish you much fun listening!

    #232 Reply

    Jonathan Basile
    Keymaster

    Hey Manuel,

    I really love this program. I’d like to get in touch with you to discuss it more – can we communicate by email? I can be reached at jonathan [dot] e [dot] basile [at] gmail [dot] com

    #236 Reply

    Manuel Reinsperger

    Hello Johnathan,

    I wrote you, my email is mani [.] reini [aet] gmail [dot] com.

    I look forward to hearing from you

    #28897 Reply

    Penultimate-Panacea

    Hello,
    I was just about to embark on my own attempt at the music side of things and was wondering if any progress has been made on it. If so, I would rather help with expanding an existing project rather than creating a new one.
    Thanks,
    PenPan

    #28905 Reply

    Palladium

    Pen-Pan, the only musical endeavor I think has been made so far is Manuel’s musical bookmarklet… which I’m not sure even works anymore? I think the nature of your project is probably not a bookmarklet, so you should start a new project? We’d all benefit if you could post the details of your project on the forum. It’s exciting that people continue to build on the fundamentals of the Library.

    #28908 Reply

    Delengroth
    Participant

    Manuel’s bookmarklet worked for me on Chrome. In the URL bar you should get a shield icon warning you about loading unsafe scripts. I’ve checked the code, and it looks clean, so you can allow it for now. I would advise against doing so all of the time, however. Should Manuel ever turn malicious, he could change the script on his page to do harm. I don’t think he’d do that, but it would be better to just include all of the code on his page into the bookmarklet so it would be static. Not only would it be safer, but should Manuel’s site ever go offline, it will still work as the above method currently loads the script from his page. I’ve converted his script to a self-contained bookmarklet here:

    http://jsfiddle.net/s72xuzgL/

    #28955 Reply

    Palladium

    Manuel’s bookmarklet in Chrome is still not working, despite me loading the scripts directly into the URL of the bookmark. There is no shield warning that’s coming up when I do that, and the bookmark does nothing when it’s activated on a Babel page. Can I use your self contained bookmarklet somehow instead of Manuel’s bookmarklet? How do I do that?

    #28962 Reply

    Delengroth
    Participant

    Yes, I would recommend using my link instead. Just click on the link I posted above and it takes you to a new page. There should be 4 panels, and the one on the bottom right should have a “Bookmark this link!” that you can use. Just follow the same steps as Manuel’s page, depending on your browser.

    #28964 Reply

    Palladium

    Ok with Manuel’s it didn’t work, but yours did work, so thanks! I would recommend though having a “pause” button so that the music doesn’t keep playing until the only way you can stop it is to refresh the page. Also side thought, does this mean we can search up tailor made texts in the library which when played produce pleasing melodies?

Viewing 15 posts - 1 through 15 (of 17 total)
Reply To: Music and Visual Art Libraries
Your information: