development release newLISP v.9.3.14

Started by Lutz, May 28, 2008, 12:19:12 PM

Previous topic - Next topic

Lutz

• improved algorithm for 'randomize'.



• newLISP-GS with multitrack MIDI interface for internal synthesizer, see midi-demo.lsp and midi2-demo.lsp.





On Win32 a sound-bank file has to be downloaded from Sun Micro Systems. See link and description for the function gs:play-note for details. This is an easy, quick installation of only one file into the current Java runtime installation on Win32. On Mac OS X a sound-bank is installed by default. The current Win32 development release has been tested with the medium size sound-bank (Sun offers 3 sizes) and produces identical results on Win32 compared to Mac OS X default installed sound-bank.



Depending on the interest newLISP-GS could support multiple external sound-banks and MIDI devices in the future.



The current midi2-demo.lsp file demoing multitrack synthesizer music is very simple. Perhaps one of the composers / musicians users can produce something more sophisticated (it should be short, 10-15 seconds max) ;-)



For files and changes notes: http://www.newlisp.org/download/development/">http://www.newlisp.org/download/development/

newdep

#1
Aaaa that is great Lutz, really nice... !



play-note, exactly what i seeked, that saves me lots of work creating

pre-recorded notes! thanks a lot!



and this is even better !!! ->

(map set '(C C# D D# E F F# G G# A A# B c c# d e f f# g g# a a# b) (sequence 60 83))



Wow... yes yes nice nice..thanks..





Creating Guitar/Piano Tabs can now be done in newlisp,

this opens new perspectives in newlisp.. I like this..
-- (define? (Cornflakes))

hsmyers

#2
You should put the h in http for the link...



--hsm
\"Censeo Toto nos in Kansa esse decisse.\"—D. Gale \"[size=117]ℑ♥λ[/size]\"—Toto

newBert

#3
Quote from: "Lutz"
• newLISP-GS with multitrack MIDI interface for internal synthesizer, see midi-demo.lsp and midi2-demo.lsp.

Super on WinXP with the appropriate soundbank !

Thanks Lutz
<r><I>>Bertrand<e></e></I> − <COLOR color=\"#808080\">><B>newLISP<e></e></B> v.10.7.6 64-bit <B>>on Linux<e></e></B> (<I>>Linux Mint 20.1<e></e></I>)<e></e></COLOR></r>

cormullion

#4
The music stuff is great! Thanks Lutz. I'm going to abandon all other projects and work with this for a while... :)



I'm thinking about the way that notated music is passed into add-track. Your phrase "(map set '(C C# D D# E F F# G G# A A# B c c# d e f f# g g# a a# b) (sequence 60 83))" is excellent. However, it would also be good if it was possible to use a cut-down version of one of the available music notation mark-up formats - a quick looks suggests Lilypond or Guido, with Lilypond looking the most likely. Lilypond is this sort of thing:


    {
     d f a g c b f d
     a2' a4 a8 a
     cs4, d e df2
     }


The numbers are the durations (reciprocal) and both the octave and duration are 'sticky', and stay till changed.



So I'm going to have a go at writing a function or two that reads this type of notation and generates the numbers suitable for add-track. Has anyone done something similar?

newdep

#5
Lilypond? I realy never have heard of that befor but its just what i seeked, thanks for the hint!
-- (define? (Cornflakes))

hsmyers

#6
There is a standard of sorts for this kind of thing. See: http://www.walshaw.plus.com/abc/">//http://www.walshaw.plus.com/abc/



–hsm
\"Censeo Toto nos in Kansa esse decisse.\"—D. Gale \"[size=117]ℑ♥λ[/size]\"—Toto

cormullion

#7
There do seem to be lots of standards... :( it seems that abc guido lilypond are aimed at different things; lilypond is more concerned with music engraving, abc and guido with notating melodies. There's also MusicXML - which looks useful but you certainly wouldn't want to use it to write music directly.



Most musicians would prefer to an interactive graphical approach using Finale or Sibelius for writing music, but I wonder which of the text formats would be a good choice for quickly marking up tunes for gs:add-track?

Lutz

#8
Ted Walther (joined this board as TedWalther 2/4/2007) seems to use newLISP in this area:



http://hymns.reactor-core.org/newlisp/marigold">http://hymns.reactor-core.org/newlisp/marigold



perhaps somebody wants to contact him

hsmyers

#9
The advantages of ABC are that it is text, there is a large amount of music available written in it and it is a well know standard. There are a large number of utilities available to cross check your newLisp implementation. Further it is typically importable by the big guns, Finale, Sibelius etc. When it comes to a ascii format for music I think ABC is the standard. At least from my research into music representation.



–hsm
\"Censeo Toto nos in Kansa esse decisse.\"—D. Gale \"[size=117]ℑ♥λ[/size]\"—Toto

TedWalther

#10
This is really great; I love the idea of generating MIDI directly from newlisp.



I am using Lilypond because it does nice engraving, and my project is all about making nice PDF's of sheet music.  But another part is generating music for people to sing to.



Another goal is to keep the PDF and the MIDI in sync, so they mirror each other.  Music notation has so many ways to compress itself, this is becoming tricky, since most of what I do is in four part harmony.



I have been practicing my newlisp skills, and almost feel ready to tackle marigold again; I bogged down previously due to unclear design spec etc.



Thanks for thinking of me.  I have used newlisp recently for some quick projects and it let me do what I wanted extremely quickly.  I am very happy with newlisp.



Oh, one killer feature for the MIDI support in newlisp; can you provide a function to adjust the tuning, so I can try different tunings like just temperament, etc?



Ted
Cavemen in bearskins invaded the ivory towers of Artificial Intelligence.  Nine months later, they left with a baby named newLISP.  The women of the ivory towers wept and wailed.  \"Abomination!\" they cried.

Lutz

#11
QuoteOh, one killer feature for the MIDI support in newlisp; can you provide a function to adjust the tuning, so I can try different tunings like just temperament, etc?


There is 'gs:channel-bend' to adjust the tuning of the whole channel up or down. Not sure if that is what you mean?

TedWalther

#12
This page explains it:



http://www.xs4all.nl/~huygensf/scala/">http://www.xs4all.nl/~huygensf/scala/



In midi, you can use pitch-bend commands to bend a note up or down.  If you prefix each note with an appropriate pitch bend, you can simulate various tunings and musical temperaments.



There is a format for tunings called "Scala".  It would be nice to be able to import a scala tuning, and then have that tuning used when outputting midi; for every midi note output, the proper pitch-bend specified in the scala file would be used.



I think that is how it works; it may turn out to be even simpler.



Ted
Cavemen in bearskins invaded the ivory towers of Artificial Intelligence.  Nine months later, they left with a baby named newLISP.  The women of the ivory towers wept and wailed.  \"Abomination!\" they cried.

Lutz

#13
In development version 9.3.17 (due later today) you have individual note pich-bend as an additional note parameter in either gs:play-note or gs:add-track.



This can be used to produce different tuned scales, e.g: by puting a scale function as fourth parameter, which takes the note value as input and tunes it to a different scale.



When making the note one tick at standard 120 BPM, the notes melt together and a continous changing sound can be produced:



http://www.newlisp.org/extremeAlarm.mid">http://www.newlisp.org/extremeAlarm.mid



for source of this see gs:add-track in the docs of 9.3.17



ps: small children and animals should be removed from the room, before listening to this track!