pages beginner setup information

  • pages: http://monome.org/docs/app:pages

    hey all, i got an email from a user trying to set everything up and wrote him up a nice long reply on how to get all the little bits of pages going with some explanation as to how they work. i figured i'd share in case it helps anybody else out:

    "one time setup" steps that need to take place:

    0) follow modern monome setup instructions including installing serialosc.

    1) IAC midi devices. these are virtual midi devices, like plugging an app into another app with a midi cable. they are built into osx and you will want to enable at least 2 of these. these are used to send midi commands between pages and ableton, or max and ableton, or max and pages. i'm going to focus on pages/ableton. first let's turn them on:

    A) spotlight -> Audio MIDI Setup
    B) Window -> Show MIDI Window
    C) double click IAC Driver
    D) click the [+] next to Add and Remove Ports and create two ports
    E) rename one of them to Clock and one of them to Pages MIDI

    2) LiveOSC. this is a python script that lets you use Ableton's controller integration via OSC messages. the Ableton* pages use this integration so no midi mapping is needed to control your set. pages includes a LiveOSC-OSX folder with a LiveOSC folder under it and .py files contained in the LiveOSC folder. we want to copy the LiveOSC folder (not LiveOSC-OSX) to the Ableton application package. to do this:

    A) open finder
    B) click Application
    C) find Ableton, control-click, Show Package Contents
    D) navigate to Contents / App-Resources / MIDI Remote Scripts
    E) copy the LiveOSC folder here -- the path should be like this: App-Resources/MIDI Remote Scripts/LiveOSC/__init__.py

    3) mmj. this makes Java MIDI behave on OSX, without it you can have random dropouts.

    A) go here and click "download mmj": http://www.humatic.de/htools/mmj.htm
    B) unzip mmj.zip it and locate mmj.jar and libmmj.jnilib in the zip file
    C) copy these files to /Library/Java/Extensions (note the /Library folder on the root of your hard drive, not in your user folder)

    4) serialosc-zeroconf max patch. this is optional if you want to be able to use external applications.

    see the steps here: http://monome.org/docs/app:pages i'll repeat below:
    Follow the setup guide as normal.
    In step 4, replace the serialosc.maxpat with the zeroconf-serialosc.maxpat (unzip the file, find serialosc.maxpat and copy it to your Max6/patches folder)
    Install the Max5 zeroconf externals, see this page:http://monome.org/docs/app:serialosc:zeroconf

    ok, phew, that's a lot of steps. it's unfortunate but it's also all one-time setup. now to use the application. you seem to have figured out how to discover a monome and create a page, so here's a few tips on the individual pages:

    1) midi clock sync. this is a good idea on any page, as most of them use it for something. this is what keeps pages in sync with ableton. to set this up you're going to:

    A) go into ableton midi preferences
    B) find the IAC Driver (Clock) device, notice that there are two entries for it, Input and Output
    C) make sure the Input buttons (Track, Sync Remote) are all *disabled*
    D) enable the Output Sync button for IAC Driver (Clock)
    E) click the little > arrow to the far left of the Output: IAC Driver (Clock) line in midi preferences to open the sync options
    F) set the MIDI Clock Sync Delay to *negative* your "Overall Latency" value in the audio tab, mine is -7.5 currently

    now in pages there are two MIDI menus, one in the main program window and one in the device sub-window. the main program window's menu enables the MIDI device for the program as a whole, and the sub-window enables the device for the current page you have selected. you'll want to turn on MIDI In: IAC Driver (Clock) in pages in both menus and again for each page you create. if you create a midi sequencer page and turn on clock sync you should see that it starts running when you push play in ableton now.

    2) external application page. you'll want to click "Update Preferences" once to turn on the mdns advertisement and get the external application page to show up in polygome (or other apps). this also would not have worked until serialosc.maxpat was replaced in the steps above with the zeroconf version.

    the external app should appear as any other monome device at this point except it will be named something like "extapp-12345-m2560123". just select it and click connect and you should be up and running. the only app i'm aware of that doesn't work is 7up and i'm really not sure why, but others seem fine.

    3) groovy pages. this is a whole other set of pages in various stages of completion that you can load up. they're in script form and can be easily edited. i can provide api doc or at least point you to the appropriate interface if you're interested in customizing your own. i would recommend midi channeler and midi loop page in particular and can provide additional doc on those as needed. these are much more 'experimental' but hit me up if you have problems/questions.

    4) midi output, many pages including midi keyboard are going to send some sort of midi output back to ableton. to set this up you take similar steps as setting up sync, but in reverse. what i mean by that is you'll find the IAC Driver (Pages MIDI) *Input* device in ableton, turn on track/remote, and disable all *Output* buttons for that device. similarly you'll enable it as a MIDI Out in pages in both MIDI menus -- main and per page. i want to stress that it's important not to enable a "side" of a virtual midi device in two applications at the same time. what i mean is don't turn on the Input for Pages MIDI in Ableton and pages or else it probably won't work (or worse, it will seemingly work for awhile and then just stop).

    5) pattern recorders. a fun feature built into every page and in external application as well, if you hold down the page change button (bottom right) and, while held, push a button on the top row, you'll see it turns on. now release the page change button. from here any button presses you make will be recorded in a buffer and looped. you can set the "Pattern Recorder" options per page in the config menu (quantization, length, etc). the midi channeler page (groovy page) bottom row is dedicated pattern recorder buttons (no page change button necessary), so you can just toggle those on and off. pattern recorders require midi sync to work.

  • Hey Pho, thank you for posting (!) and very timely for me as I would really like to get my old friend pages werkin' again.

    I use to use it regularly with Ableton 7-8 including a few live shows in the past but unfortunately the setup this time around has been painful and I'm not able to get the latest version working on mac with my 128 and Ableton 9.

    Mlrv, polygome and other apps are working for me without issue and I'm able to trigger midi in Ableton but I get no love when I try to run pages-0.2a48.jar. After updating to the latest version of mmj and carefully following all steps required, meditating and coming back to it, I am guessing what is still needed is to update the version of Java I'm running.

    I am hesitant to upgrade to the latest 64-bit version for several reasons but is there something else that I might be missing? Apparently it is possible to re-enable 32-bit Java after updating so that things like Chrome still work properly (http://support.apple.com/kb/HT5559) but it seems Apple and Oracle really aren't playing so nicely together these days. :-/

  • hi lauer303! welcome back! :) you are using serialosc? that's one thing i forgot to mention in the post!

    A) make a new configuration
    B) go to the configuration menu -> serialosc setup
    C) click detect devices, your monome should show up
    D) click the Add button

    this much seems to work pretty well on OSX, never really had much of an issue or heard of many issues here. just make sure only serialosc and not monomeserial are running! you can still use old monomeserial apps via the external application page.

  • thanks for the reply, yes I am using serialosc but have not uninstalled monomeserial.

    trying a few more things before updating Java and thinking it could also be security related as I'm not able to run the pages-0.2a48.jar from a command prompt either hmmm.

    happy to be back!

  • interesting, yeah i guess go for the java update! just to clarify for others, you can run pages from a terminal via:

    $ java -jar pages-0.2a48.jar

    keep me updated!

  • Unable to access jarfile pages-0.2a48.jar

  • sounds like you might not be in the right folder? use the ls and cd commands to get into the right place. if it's in Downloads for example:

    $ cd Downloads
    $ ls
    < file list >
    $ cd pages-0.2a48
    $ ls
    < file list >

    etc. keep going down until you find the jar file and then run the command.

  • i was trying from root but here is what I get from the correct working directory below.

    looks like missing classes among them mmj which it's trying to find in $/Users/xxx/Library/Java/Extensions/libmmj.jnilib instead of $/Library/Java/Extensions/libmmj.jnilib

    could very well could be java acting quirky, thank u for helping me troubleshoot...

    $ java -jar pages-0.2a48.jar
    log4j:WARN No appenders could be found for logger (socketLogger).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /Users/lauer303/Library/Java/Extensions/libmmj.jnilib: no suitable image found. Did find: /Users/lauer303/Library/Java/Extensions/libmmj.jnilib: no matching architecture in universal wrapper
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1716)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at de.humatic.mmj.MidiSystem.loadLibrary(MidiSystem.java:79)
    at de.humatic.mmj.MidiSystem.getDevices(MidiSystem.java:287)
    at de.humatic.mmj.spi.CoreMidiProvider.getDeviceInfo(CoreMidiProvider.java:37)
    at javax.sound.midi.MidiSystem.getMidiDeviceInfo(MidiSystem.java:173)
    at org.monome.pages.gui.MainGUI.getMidiInMenu(Unknown Source)
    at org.monome.pages.gui.MainGUI.getMidiMenu(Unknown Source)
    at org.monome.pages.gui.MainGUI.getMainMenuBar(Unknown Source)
    at org.monome.pages.gui.MainGUI.initialize(Unknown Source)
    at org.monome.pages.gui.MainGUI.(Unknown Source)
    at org.monome.pages.Main$1.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1716)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at de.humatic.mmj.MidiSystem.loadLibrary(MidiSystem.java:79)
    at de.humatic.mmj.MidiSystem.getDevices(MidiSystem.java:287)
    at de.humatic.mmj.spi.CoreMidiProvider.getDeviceInfo(CoreMidiProvider.java:37)
    at javax.sound.midi.MidiSystem.getMidiDeviceInfo(MidiSystem.java:173)
    at org.monome.pages.gui.MainGUI.getMidiInMenu(Unknown Source)
    at org.monome.pages.gui.MainGUI.getMidiMenu(Unknown Source)
    at org.monome.pages.gui.MainGUI.getMainMenuBar(Unknown Source)
    at org.monome.pages.gui.MainGUI.initialize(Unknown Source)
    at org.monome.pages.gui.MainGUI.(Unknown Source)
    at org.monome.pages.Main$1.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
    at java.awt.EventQueue.access$400(EventQueue.java:82)
    at java.awt.EventQueue$2.run(EventQueue.java:676)
    at java.awt.EventQueue$2.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

  • hey phortran, awesome guide my friend!! Thanks, have got Ableton as the master tempo at least. When I launch ext apps and have my midi channels set to MIDI FROM: IAC DRIVER PAGES and my MIDI To (one of my external synths) in Ableton I have no led in midi channel on Ableton, therefore doesn't seem to record my output? From each ext app, (polygome as an example) i get sound when i select my midi output to a module? It just doesn't show up in Ableton's midi channels are picking up any midi signal?
    I am using pages 0.2a37 (never had any joy at all with 48)

  • thanks @photran I havent set up pages yet but I plan to soon and will be following this as I do so!

  • @lauer303 thanks for posting that! this right here:

    Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: /Users/lauer303/Library/Java/Extensions/libmmj.jnilib: no suitable image found. Did find: /Users/lauer303/Library/Java/Extensions/libmmj.jnilib: no matching architecture in universal wrapper

    says that mmj is preventing it from starting up due to the wrong architecture (ie 32 vs 64 bit). so maybe you need that java update to 64 bit, or, if you're running a 32 bit machine, you might try the 32 bit version of mmj. it's included in the mmj.zip file under a subfolder "mmj_088 (32bit)". just delete your /Library/Java/Extensions/mmj.jar and libmmj.jnilib and copy the 32 bit ones in.

    @fluxsta thanks glad it helps! this sounds like what happens without mmj, try installing that library and give it another shot!

  • @phortran

    Done and done mate. Installed as outlined and no joy, same results ? Java update maybe?

  • @fluxsta dang, that would've been too easy huh? :) my best advice is to try very simple "test" setups and try to figure where the breakdown is. i'd say as a first test:

    1) create a midi sequencer page
    2) get clock going in, make sure that's solid
    3) set a midi output from midi sequencer to ableton and see if you can get the notes to come in somewhere

    let me know how that goes.. you could try a java update as well!

  • hey guys!
    first of all thanks phortran for this wonderful setup information!
    this is what i needed to start with pages!
    i went through your manual and did everything, but after installing (replacing the normal serialosc) the zeroconf-serialosc my monome didn't show in the test_app anymore... is that normal? what did i wrong? and how to get midi notes in ableton via monome? :D

    thank you in advance!

  • hi birdster, did you also install the zeroconf externals for max? they're labeled max5 but they have worked for me (so far) in max6. also be sure you're running a 32 bit version of max for the externals to work. check the max window for error messages.

  • hey! thanks for your answer! yeah, it was my fault...
    i didn't install all externals... you were so right : )
    so now i'll mess around a little bit, but i'm quite sure that a
    few more questions will show up in the next days : )
    i'll let you know ;D

    good night from germany!

  • Has anyone had success using pages in Live 9?

    Ok just giving this another shot tonite and not quite out of the woods yet... Still not able to get a java window of any sort to open whether double clicking on the .jar file or using terminal to navigate to the correct directory and running java -jar pages-0.2a48.jar and get the same message above. >_<<br />
    Doesn't matter which version of mmj I put under Java/Extensions I've tried both with the same result now before and after installing Java latest 64 bit version/updates. I did notice I'm using the 32-bit version of max/msp 5/6 so assuming everything needs to line up either 32 or 64, I could try installing the 64-bit version there if that might make a difference?

    Other thing I noticed is that after I enable LiveOSC in Live prefs, the program takes significantly longer to load. Haven't seen the log files but Live is not happy about something as long as I leave LiveOSC enabled.

  • live 9 works fine for me, i haven't noticed a slowness but it could be making it load a little slower.

    try going to the apple menu -> system preferences -> java. then go to the java tab and click View..., try adjusting the order of the java installations if you have more than one. also check the security tab and adjust that and see if it helps, i adjusted mine to 'very high' and pages .jar still ran for me but i don't know if it needs a reboot or something.

    i think the zeroconf externals are 32-bit only so you'd need 32 bit max for that (external app integration) but otherwise i think you're free to choose. i'm pretty sure if you want to use max for live w/ external app page you'll have to have 32 bit max/msp for the externals which probably means 32-bit live as well. 64-bit java should be fine however. this is the version that runs when i double click the pages jar:

    $ ./java -version
    java version "1.7.0_25"
    Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

  • @phortran
    Had some joy with basic midi sequencer and getting signal into ableton. Any apps don't get signal though? All drop downs in terms of midi in and outs are the same as when I use midi seq pages page. My midi out sends signal via motu interface to my hardware and settings seem to be ok in apps? Maybe I have to set the 'out' on an extapp to route the signal to my external hardware? Although that still doesn't solve the lack of midi signal showing up! Sure my midi routing is screwed and I am missing something basic? Any ideas while I keep trying? Bit vague description I know :-)

  • @phortran Can't get the Ableton pages to work for some reason. I have gotten midi pages and even external apps to work but I can't seem to get it to sync with Ableton. I am using midi yoke and I know its working fine because it is working well with the external app routing to ableton. I have turned the output of midi yoke 1 to sync and I changed the clock sync delay minus my overall latency and I set an input from midi yoke 1 in pages to the external app page. I also don't have any inputs on for midi yoke in ableton. I got it to work once but I don't think I did anything differently. In addition to midi yoke I tried using loopbe1 but it didn't really seem to work so I got midi yoke and idk if those could be conflicting? However, I don't have anything turned on for loop be1. I don't know what's wrong :/

  • the website to download the mmj.jar and libmmj.jnilib files does'nt work anymore.. at least for me..?! http://www.humatic.de/webapps/php/download/pick.php?app=mmj
    can anyone upload these files for me?

  • http://www.humatic.de/htools/mmj.htm

    theres a change in the url i believe. The mmj file still available on the page above. Have attached the mmj file here as well, just in case

    151K
  • hey sorry i lost track of this thread... in case it's still helpful:

    @fluxsta midi not being seen on OSX is usually mmj library needed, on windows i've found 32 bit midi yoke / 64 bit ableton causes problems.

    @BillyL you may need LiveOSC to use the clip launcher pages for example, they use more than just midi

    @birdster welcome!

    @si thank you! i will update setup guide with new url.

  • ha! thanks guys! now i can work further^^

  • @phortran

    how do you open pages?

    i got everything set up in ableton.

    i have java (32bit)

    *ableton9 64bit
    windows 7 64bit

    edit***
    i read the manual lulz

  • did an erase and install to declutter my mac and now im reinstalling all my monome related software. there is only one problem i seem to be having and that is pages wont recognize any of the midi busses i created in the audio midi setup. tried adding the mmj to java and lost my ability to see the main pages window, took it away again and im left with the not recognizing midi problem...ableton 9 sees my busses but pages only offers me "MIDI input: Real time sequencer, MIDI output: real time sequencer or java sound synthesizer...any ideas? i wanna get jamming again!

  • running OSX 10.6...srry with the newest version of pages

  • weeeeird.. don't have a 10.6 to try :( you may want to try one of the older versions of mmj in the zipfile? i think there's 3 different versions in there

  • @phortran thanks i'll give that a try see if it works. im running java64bit...woud that make a difference...it used to work just fine till I wiped my HD...can I downdate java back to 32bit?...srry im more music savvy than tech savvy :(

  • not totally sure :( i'd say try a few things and update the thread if you get it figured out!

  • @phortran : I can't get mash2 to cooperate as an external app, while others seem to work (although I haven't tested this extensively). Any idea why? I've followed the install instructions, running win7, latest java and max 6.1.8 32-bit... perhaps if you could simply give it a shot on your system and let me know if it works... I'd really appreciate any feedback.