Page 1 of 1

development release newLISP v.9.3.14

Posted: Wed May 28, 2008 7:19 pm
by 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/

Posted: Wed May 28, 2008 7:42 pm
by newdep
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..

Small nit...

Posted: Wed May 28, 2008 7:52 pm
by hsmyers
You should put the h in http for the link...

--hsm

Re: development release newLISP v.9.3.14

Posted: Thu May 29, 2008 4:55 pm
by newBert
Lutz wrote: • 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

Music notation

Posted: Sat May 31, 2008 8:14 am
by cormullion
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:

Code: Select all

     {
     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?

Posted: Sat May 31, 2008 8:32 am
by newdep
Lilypond? I realy never have heard of that befor but its just what i seeked, thanks for the hint!

Posted: Sat May 31, 2008 9:14 am
by hsmyers
There is a standard of sorts for this kind of thing. See: http://www.walshaw.plus.com/abc/

–hsm

Posted: Sat May 31, 2008 9:53 am
by cormullion
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?

Posted: Sat May 31, 2008 11:31 am
by Lutz
Ted Walther (joined this board as TedWalther 2/4/2007) seems to use newLISP in this area:

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

perhaps somebody wants to contact him

Posted: Sat May 31, 2008 5:56 pm
by hsmyers
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

Lilypond and Newlisp

Posted: Fri Jun 20, 2008 7:08 pm
by TedWalther
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

Posted: Fri Jun 20, 2008 7:51 pm
by Lutz
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?
There is 'gs:channel-bend' to adjust the tuning of the whole channel up or down. Not sure if that is what you mean?

more about equal, just, and mean temperaments in midi

Posted: Sat Jun 21, 2008 8:50 am
by TedWalther
This page explains it:

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

Posted: Mon Jun 23, 2008 1:49 pm
by Lutz
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

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!